diff --git a/docs/admin/deployment.md b/docs/admin/deployment.md
index 908ff9f48ca..5a11d8cf41e 100644
--- a/docs/admin/deployment.md
+++ b/docs/admin/deployment.md
@@ -831,16 +831,16 @@ subject=CN = wolf-170
Getting CA Private Key
Required Server Certificate Files:
.//daosTelemetryCA.crt
- .//telemetryserver.key
- .//telemetryserver.crt
+ .//telemetry.key
+ .//telemetry.crt
$ ls -l
total 20
-rw-r--r-- 1 root daos_daemons 1460 Sep 27 17:18 daosTelemetryCA.crt
-rw-r--r-- 1 root root 41 Sep 27 17:19 daosTelemetryCA.srl
-rw-r--r-- 1 root root 0 Sep 27 17:18 index.txt
-rw-r--r-- 1 root root 3 Sep 27 17:18 serial.txt
--rw-r--r-- 1 daos_agent daos_agent 1302 Sep 27 17:19 telemetryserver.crt
--r-------- 1 daos_agent daos_agent 1675 Sep 27 17:19 telemetryserver.key
+-rw-r--r-- 1 daos_agent daos_agent 1302 Sep 27 17:19 telemetry.crt
+-r-------- 1 daos_agent daos_agent 1675 Sep 27 17:19 telemetry.key
```
Below example is ran with daos_server user on server node
@@ -858,16 +858,16 @@ subject=CN = wolf-173
Getting CA Private Key
Required Server Certificate Files:
.//daosTelemetryCA.crt
- .//telemetryserver.key
- .//telemetryserver.crt
+ .//telemetry.key
+ .//telemetry.crt
$ ls -l
total 20
-rw-r--r-- 1 root daos_daemons 1460 Sep 27 17:24 daosTelemetryCA.crt
-rw-r--r-- 1 root root 41 Sep 27 17:24 daosTelemetryCA.srl
-rw-r--r-- 1 root root 0 Sep 27 17:24 index.txt
-rw-r--r-- 1 root root 3 Sep 27 17:24 serial.txt
--rw-r--r-- 1 daos_server daos_server 1302 Sep 27 17:24 telemetryserver.crt
--r-------- 1 daos_server daos_server 1679 Sep 27 17:24 telemetryserver.key
+-rw-r--r-- 1 daos_server daos_server 1302 Sep 27 17:24 telemetry.crt
+-r-------- 1 daos_server daos_server 1679 Sep 27 17:24 telemetry.key
```
You can copy this certificates on /etc/daos/certs/ or someother secure location
@@ -884,9 +884,9 @@ telemetry_config:
# Set the server telemetry endpoint port number
port: 9191
# Server certificate for use in TLS handshakes
- server_cert: /etc/daos/certs/telemetryserver.crt
+ https_cert: /etc/daos/certs/telemetry.crt
# Key portion of Server Certificate
- server_key: /etc/daos/certs/telemetryserver.key
+ https_key: /etc/daos/certs/telemetry.key
```
```yaml
@@ -901,9 +901,9 @@ telemetry_config:
# Retain client telemetry for a period of time after the client process exits.
retain: 30s
# Server certificate for use in TLS handshakes
- server_cert: /etc/daos/certs/telemetryserver.crt
+ https_cert: /etc/daos/certs/telemetry.crt
# Key portion of Server Certificate
- server_key: /etc/daos/certs/telemetryserver.key
+ https_key: /etc/daos/certs/telemetry.key
```
```yaml
diff --git a/src/control/cmd/daos_agent/config.go b/src/control/cmd/daos_agent/config.go
index 7c86677ff25..f604cd5a1a7 100644
--- a/src/control/cmd/daos_agent/config.go
+++ b/src/control/cmd/daos_agent/config.go
@@ -58,6 +58,10 @@ type Config struct {
FabricInterfaces []*NUMAFabricConfig `yaml:"fabric_ifaces,omitempty"`
ProviderIdx uint // TODO SRS-31: Enable with multiprovider functionality
TelemetryConfig *security.TelemetryConfig `yaml:"telemetry_config"`
+ // Support Old config options.
+ TelemetryPort int `yaml:"telemetry_port,omitempty"`
+ TelemetryEnabled bool `yaml:"telemetry_enabled,omitempty"`
+ TelemetryRetain time.Duration `yaml:"telemetry_retain,omitempty"`
}
// TelemetryExportEnabled returns true if client telemetry export is enabled.
@@ -97,6 +101,19 @@ func LoadConfig(cfgPath string) (*Config, error) {
return nil, fmt.Errorf("invalid system name: %s", cfg.SystemName)
}
+ // Support Old config options and copy it to the underline new structure value.
+ if cfg.TelemetryRetain > 0 {
+ cfg.TelemetryConfig.Retain = cfg.TelemetryRetain
+ }
+
+ if cfg.TelemetryPort != 0 {
+ cfg.TelemetryConfig.Port = cfg.TelemetryPort
+ }
+
+ if cfg.TelemetryEnabled {
+ cfg.TelemetryConfig.Enabled = cfg.TelemetryEnabled
+ }
+
if cfg.TelemetryConfig.Retain > 0 && cfg.TelemetryConfig.Port == 0 {
return nil, errors.New("telemetry_retain requires telemetry_port")
}
@@ -105,9 +122,9 @@ func LoadConfig(cfgPath string) (*Config, error) {
return nil, errors.New("telemetry_enabled requires telemetry_port")
}
- if cfg.TelemetryConfig.AllowInsecure == false {
- if cfg.TelemetryConfig.ServerCert == "" || cfg.TelemetryConfig.ServerKey == "" {
- return nil, errors.New("For secure mode, server_cert and server_key required under telemetry_config")
+ if !cfg.TelemetryConfig.AllowInsecure {
+ if cfg.TelemetryConfig.HttpsCert == "" || cfg.TelemetryConfig.HttpsKey == "" {
+ return nil, errors.New("For secure mode, https_cert and https_key required under telemetry_config")
}
}
diff --git a/src/control/cmd/daos_agent/config_test.go b/src/control/cmd/daos_agent/config_test.go
index 06280d7d844..32ff3b7f157 100644
--- a/src/control/cmd/daos_agent/config_test.go
+++ b/src/control/cmd/daos_agent/config_test.go
@@ -98,8 +98,8 @@ control_log_mask: debug
transport_config:
allow_insecure: true
telemetry_config:
- retain: 1
- port: 0
+ telemetry_retain: 1m
+ telemetry_port: 0
`)
telemetryEnabledWithBadPort := test.CreateTestFile(t, dir, `
@@ -112,11 +112,11 @@ control_log_mask: debug
transport_config:
allow_insecure: true
telemetry_config:
- enabled: true
- port: 0
+ telemetry_enabled: true
+ telemetry_port: 0
`)
- telemetryWithoutServerCert := test.CreateTestFile(t, dir, `
+ telemetryWithoutHttpsCert := test.CreateTestFile(t, dir, `
name: shire
access_points: ["one:10001", "two:10001"]
port: 4242
@@ -127,10 +127,10 @@ transport_config:
allow_insecure: true
telemetry_config:
allow_insecure: false
- server_cert: ""
+ https_cert: ""
`)
- telemetryWithoutServerKey := test.CreateTestFile(t, dir, `
+ telemetryWithoutHttpsKey := test.CreateTestFile(t, dir, `
name: shire
access_points: ["one:10001", "two:10001"]
port: 4242
@@ -141,7 +141,7 @@ transport_config:
allow_insecure: true
telemetry_config:
allow_insecure: false
- server_key: ""
+ https_key: ""
`)
for name, tc := range map[string]struct {
@@ -173,12 +173,12 @@ telemetry_config:
expErr: errors.New("telemetry_enabled requires telemetry_port"),
},
"telemetry with secure mode with no server certificate": {
- path: telemetryWithoutServerCert,
- expErr: errors.New("For secure mode, server_cert and server_key required under telemetry_config"),
+ path: telemetryWithoutHttpsCert,
+ expErr: errors.New("For secure mode, https_cert and https_key required under telemetry_config"),
},
"telemetry with secure mode with no server key": {
- path: telemetryWithoutServerKey,
- expErr: errors.New("For secure mode, server_cert and server_key required under telemetry_config"),
+ path: telemetryWithoutHttpsKey,
+ expErr: errors.New("For secure mode, https_cert and https_key required under telemetry_config"),
},
"without optional items": {
path: withoutOptCfg,
diff --git a/src/control/cmd/daos_agent/telemetry.go b/src/control/cmd/daos_agent/telemetry.go
index df222d108b4..60bd83d0b33 100644
--- a/src/control/cmd/daos_agent/telemetry.go
+++ b/src/control/cmd/daos_agent/telemetry.go
@@ -20,8 +20,8 @@ func startPrometheusExporter(ctx context.Context, log logging.Logger, cs *promex
Port: cfg.TelemetryConfig.Port,
Title: "DAOS Client Telemetry",
AllowInsecure: cfg.TelemetryConfig.AllowInsecure,
- HttpsCert: cfg.TelemetryConfig.ServerCert,
- HttpsKey: cfg.TelemetryConfig.ServerKey,
+ HttpsCert: cfg.TelemetryConfig.HttpsCert,
+ HttpsKey: cfg.TelemetryConfig.HttpsKey,
Register: func(ctx context.Context, log logging.Logger) error {
c, err := promexp.NewClientCollector(ctx, log, cs, &promexp.CollectorOpts{
RetainDuration: cfg.TelemetryConfig.Retain,
diff --git a/src/control/cmd/dmg/auto_test.go b/src/control/cmd/dmg/auto_test.go
index a2c7ace937e..b1b26eb7d7f 100644
--- a/src/control/cmd/dmg/auto_test.go
+++ b/src/control/cmd/dmg/auto_test.go
@@ -593,9 +593,9 @@ disable_hugepages: false
control_log_mask: INFO
control_log_file: /tmp/daos_server.log
telemetry_config:
- allow_insecure: false
- server_cert: /etc/daos/certs/telemetryserver.crt
- server_key: /etc/daos/certs/telemetryserver.key
+ allow_insecure: true
+ https_cert: /etc/daos/certs/telemetry.crt
+ https_key: /etc/daos/certs/telemetry.key
ca_cert: /etc/daos/certs/daosTelemetryCA.crt
core_dump_filter: 19
name: daos_server
diff --git a/src/control/lib/control/http.go b/src/control/lib/control/http.go
index d93085056c6..6f4b80d135f 100644
--- a/src/control/lib/control/http.go
+++ b/src/control/lib/control/http.go
@@ -39,16 +39,16 @@ type httpGetter interface {
retryer
getURL() *url.URL
getBody(context.Context) ([]byte, error)
- getAllowInsecure() *bool
+ getAllowInsecure() bool
getCaCertPath() *string
}
type httpReq struct {
url *url.URL
getFn httpGetFn
- allowInsecure *bool
+ allowInsecure bool
cacertpath *string
- getBodyFn func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error)
+ getBodyFn func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error)
}
func (r *httpReq) canRetry(err error, cur uint) bool {
@@ -83,7 +83,7 @@ func (r *httpReq) getURL() *url.URL {
return r.url
}
-func (r *httpReq) getAllowInsecure() *bool {
+func (r *httpReq) getAllowInsecure() bool {
return r.allowInsecure
}
@@ -152,7 +152,7 @@ func httpsGetFunc(cert []byte) (httpGetFn, error) {
// httpGetBody executes a simple HTTP GET request to a given URL and returns the
// content of the response body.
-func httpGetBody(ctx context.Context, url *url.URL, get httpGetFn, timeout time.Duration, allowInsecure *bool, cacertpath *string) ([]byte, error) {
+func httpGetBody(ctx context.Context, url *url.URL, get httpGetFn, timeout time.Duration, allowInsecure bool, cacertpath *string) ([]byte, error) {
if url == nil {
return nil, errors.New("nil URL")
}
@@ -165,7 +165,7 @@ func httpGetBody(ctx context.Context, url *url.URL, get httpGetFn, timeout time.
return nil, errors.New("nil get function")
}
- if *allowInsecure == false {
+ if !allowInsecure {
if cacertpath == nil {
return nil, errors.New("Provide the CA certificate path")
}
diff --git a/src/control/lib/control/http_test.go b/src/control/lib/control/http_test.go
index c15ba079753..1ed2224c62a 100644
--- a/src/control/lib/control/http_test.go
+++ b/src/control/lib/control/http_test.go
@@ -133,7 +133,7 @@ func TestControl_httpGetBody(t *testing.T) {
timeout time.Duration
cancelCtx bool
getFn httpGetFn
- allowInsecure *bool
+ allowInsecure bool
caCertPath *string
expResult []byte
expErr error
@@ -143,17 +143,17 @@ func TestControl_httpGetBody(t *testing.T) {
},
"empty URL": {
url: &url.URL{},
- allowInsecure: &defaultAllowInsecure,
+ allowInsecure: defaultAllowInsecure,
expErr: errors.New("host address is required"),
},
"nil getFn": {
url: defaultURL,
- allowInsecure: &defaultAllowInsecure,
+ allowInsecure: defaultAllowInsecure,
expErr: errors.New("nil get function"),
},
"getFn error": {
url: defaultURL,
- allowInsecure: &defaultAllowInsecure,
+ allowInsecure: defaultAllowInsecure,
getFn: func(_ string) (*http.Response, error) {
return nil, errors.New("mock getFn")
},
@@ -161,7 +161,7 @@ func TestControl_httpGetBody(t *testing.T) {
},
"http.Response error": {
url: defaultURL,
- allowInsecure: &defaultAllowInsecure,
+ allowInsecure: defaultAllowInsecure,
getFn: func(_ string) (*http.Response, error) {
return &http.Response{
StatusCode: http.StatusNotFound,
@@ -172,7 +172,7 @@ func TestControl_httpGetBody(t *testing.T) {
},
"empty body": {
url: defaultURL,
- allowInsecure: &defaultAllowInsecure,
+ allowInsecure: defaultAllowInsecure,
getFn: func(_ string) (*http.Response, error) {
return &http.Response{
StatusCode: http.StatusOK,
@@ -183,7 +183,7 @@ func TestControl_httpGetBody(t *testing.T) {
},
"success with body": {
url: defaultURL,
- allowInsecure: &defaultAllowInsecure,
+ allowInsecure: defaultAllowInsecure,
getFn: func(_ string) (*http.Response, error) {
return &http.Response{
StatusCode: http.StatusOK,
@@ -194,7 +194,7 @@ func TestControl_httpGetBody(t *testing.T) {
},
"failure with body in secure mode without CA certificate path": {
url: defaultURL,
- allowInsecure: &falseAllowInsecure,
+ allowInsecure: falseAllowInsecure,
getFn: func(_ string) (*http.Response, error) {
return &http.Response{
StatusCode: http.StatusOK,
@@ -205,7 +205,7 @@ func TestControl_httpGetBody(t *testing.T) {
},
"failure with body in secure mode with bad CA certificate": {
url: defaultURL,
- allowInsecure: &falseAllowInsecure,
+ allowInsecure: falseAllowInsecure,
caCertPath: &badCertPerm,
getFn: func(_ string) (*http.Response, error) {
return &http.Response{
@@ -217,7 +217,7 @@ func TestControl_httpGetBody(t *testing.T) {
},
"failure with body in secure mode with bad CA certificate path": {
url: defaultURL,
- allowInsecure: &falseAllowInsecure,
+ allowInsecure: falseAllowInsecure,
caCertPath: &badCertPath,
getFn: func(_ string) (*http.Response, error) {
return &http.Response{
@@ -229,7 +229,7 @@ func TestControl_httpGetBody(t *testing.T) {
},
"reading body fails": {
url: defaultURL,
- allowInsecure: &defaultAllowInsecure,
+ allowInsecure: defaultAllowInsecure,
getFn: func(_ string) (*http.Response, error) {
return &http.Response{
StatusCode: http.StatusOK,
@@ -240,7 +240,7 @@ func TestControl_httpGetBody(t *testing.T) {
},
"request times out": {
url: defaultURL,
- allowInsecure: &defaultAllowInsecure,
+ allowInsecure: defaultAllowInsecure,
timeout: 5 * time.Millisecond,
getFn: func(_ string) (*http.Response, error) {
time.Sleep(1 * time.Second)
@@ -253,7 +253,7 @@ func TestControl_httpGetBody(t *testing.T) {
},
"request canceled": {
url: defaultURL,
- allowInsecure: &defaultAllowInsecure,
+ allowInsecure: defaultAllowInsecure,
cancelCtx: true,
getFn: func(_ string) (*http.Response, error) {
time.Sleep(1 * time.Second)
@@ -324,9 +324,8 @@ func (r *mockHTTPGetter) getURL() *url.URL {
}
}
-func (r *mockHTTPGetter) getAllowInsecure() *bool {
- allowInsecure := true
- return &allowInsecure
+func (r *mockHTTPGetter) getAllowInsecure() bool {
+ return true
}
func (r *mockHTTPGetter) getCaCertPath() *string {
diff --git a/src/control/lib/control/telemetry.go b/src/control/lib/control/telemetry.go
index 0916b496795..9c4dea20e23 100644
--- a/src/control/lib/control/telemetry.go
+++ b/src/control/lib/control/telemetry.go
@@ -114,7 +114,7 @@ func MetricsList(ctx context.Context, req *MetricsListReq) (*MetricsListResp, er
}
req.url = getMetricsURL(req.Host, req.Port, req.AllowInsecure)
- req.allowInsecure = &req.AllowInsecure
+ req.allowInsecure = req.AllowInsecure
req.cacertpath = &req.CaCertPath
scraped, err := scrapeMetrics(ctx, req)
@@ -176,7 +176,7 @@ func MetricsQuery(ctx context.Context, req *MetricsQueryReq) (*MetricsQueryResp,
}
req.url = getMetricsURL(req.Host, req.Port, req.AllowInsecure)
- req.allowInsecure = &req.AllowInsecure
+ req.allowInsecure = req.AllowInsecure
req.cacertpath = &req.CaCertPath
scraped, err := scrapeMetrics(ctx, req)
diff --git a/src/control/lib/control/telemetry_test.go b/src/control/lib/control/telemetry_test.go
index 906a076a230..a7720347a44 100644
--- a/src/control/lib/control/telemetry_test.go
+++ b/src/control/lib/control/telemetry_test.go
@@ -118,10 +118,10 @@ func newTestPBHistogram(numBuckets int) *pclient.Metric {
return metric
}
-func mockScrapeFnSuccess(t *testing.T, metricFam ...*pclient.MetricFamily) func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error) {
+func mockScrapeFnSuccess(t *testing.T, metricFam ...*pclient.MetricFamily) func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error) {
t.Helper()
- return func(_ context.Context, _ *url.URL, _ httpGetFn, _ time.Duration, _ *bool, _ *string) ([]byte, error) {
+ return func(_ context.Context, _ *url.URL, _ httpGetFn, _ time.Duration, _ bool, _ *string) ([]byte, error) {
var b strings.Builder
for _, mf := range metricFam {
_, err := expfmt.MetricFamilyToText(&b, mf)
@@ -147,12 +147,12 @@ func TestControl_scrapeMetrics(t *testing.T) {
for name, tc := range map[string]struct {
req httpGetter
- scrapeFn func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error)
+ scrapeFn func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error)
expResult pbMetricMap
expErr error
}{
"check scrape params": {
- scrapeFn: func(_ context.Context, url *url.URL, getter httpGetFn, timeout time.Duration, allowInsecure *bool, caCertPath *string) ([]byte, error) {
+ scrapeFn: func(_ context.Context, url *url.URL, getter httpGetFn, timeout time.Duration, allowInsecure bool, caCertPath *string) ([]byte, error) {
test.AssertEqual(t, testURL.Scheme, url.Scheme, "")
test.AssertEqual(t, testURL.Host, url.Host, "")
test.AssertEqual(t, testURL.Path, url.Path, "")
@@ -166,19 +166,19 @@ func TestControl_scrapeMetrics(t *testing.T) {
expResult: pbMetricMap{},
},
"HTTP scrape error": {
- scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error) {
+ scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error) {
return nil, errors.New("mock scrape")
},
expErr: errors.New("mock scrape"),
},
"scrape returns no content": {
- scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error) {
+ scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error) {
return []byte{}, nil
},
expResult: pbMetricMap{},
},
"scrape returns bad content": {
- scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error) {
+ scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error) {
return []byte("
Hello world
"), nil
},
expErr: errors.New("parsing error"),
@@ -217,7 +217,7 @@ func TestControl_MetricsList(t *testing.T) {
}
for name, tc := range map[string]struct {
- scrapeFn func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error)
+ scrapeFn func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error)
req *MetricsListReq
expResp *MetricsListResp
expErr error
@@ -241,7 +241,7 @@ func TestControl_MetricsList(t *testing.T) {
Port: 1066,
AllowInsecure: true,
},
- scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error) {
+ scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error) {
return nil, errors.New("mock scrape")
},
expErr: errors.New("mock scrape"),
@@ -252,7 +252,7 @@ func TestControl_MetricsList(t *testing.T) {
Port: 8888,
AllowInsecure: true,
},
- scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error) {
+ scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error) {
return []byte{}, nil
},
expResp: &MetricsListResp{
@@ -284,7 +284,7 @@ func TestControl_MetricsList(t *testing.T) {
} {
t.Run(name, func(t *testing.T) {
if tc.scrapeFn == nil {
- tc.scrapeFn = func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error) {
+ tc.scrapeFn = func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error) {
return nil, nil
}
}
@@ -432,7 +432,7 @@ func TestControl_MetricsQuery(t *testing.T) {
}
for name, tc := range map[string]struct {
- scrapeFn func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error)
+ scrapeFn func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error)
req *MetricsQueryReq
expResp *MetricsQueryResp
expErr error
@@ -456,7 +456,7 @@ func TestControl_MetricsQuery(t *testing.T) {
Port: 1066,
AllowInsecure: true,
},
- scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error) {
+ scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error) {
return nil, errors.New("mock scrape")
},
expErr: errors.New("mock scrape"),
@@ -467,7 +467,7 @@ func TestControl_MetricsQuery(t *testing.T) {
Port: 8888,
AllowInsecure: true,
},
- scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, *bool, *string) ([]byte, error) {
+ scrapeFn: func(context.Context, *url.URL, httpGetFn, time.Duration, bool, *string) ([]byte, error) {
return []byte{}, nil
},
expResp: &MetricsQueryResp{
diff --git a/src/control/lib/telemetry/promexp/httpd.go b/src/control/lib/telemetry/promexp/httpd.go
index 0f6a0920dd8..7597bc5005d 100644
--- a/src/control/lib/telemetry/promexp/httpd.go
+++ b/src/control/lib/telemetry/promexp/httpd.go
@@ -85,6 +85,7 @@ func StartExporter(ctx context.Context, log logging.Logger, cfg *ExporterConfig)
// http listener is a blocking call
go func() {
log.Infof("Listening on %s", listenAddress)
+ log.Infof("cfg.AllowInsecure %s", cfg.AllowInsecure)
if cfg.AllowInsecure {
log.Infof("Prometheus web exporter started with insecure (http) mode")
err := srv.ListenAndServe()
diff --git a/src/control/security/config.go b/src/control/security/config.go
index 5eb3c7b577f..42bb9c587c9 100644
--- a/src/control/security/config.go
+++ b/src/control/security/config.go
@@ -20,20 +20,20 @@ import (
)
const (
- certDir = "/etc/daos/certs/"
- defaultCACert = certDir + "daosCA.crt"
- defaultServerCert = certDir + "server.crt"
- defaultServerKey = certDir + "server.key"
- defaultAdminCert = certDir + "admin.crt"
- defaultAdminKey = certDir + "admin.key"
- defaultAgentCert = certDir + "agent.crt"
- defaultAgentKey = certDir + "agent.key"
- defaultTelemetryServerCert = certDir + "telemetryserver.crt"
- defaultTelemetryServerKey = certDir + "telemetryserver.key"
- defaultTelemetryCACert = certDir + "daosTelemetryCA.crt"
- defaultClientCertDir = certDir + "clients"
- defaultServer = "server"
- defaultInsecure = false
+ certDir = "/etc/daos/certs/"
+ defaultCACert = certDir + "daosCA.crt"
+ defaultServerCert = certDir + "server.crt"
+ defaultServerKey = certDir + "server.key"
+ defaultAdminCert = certDir + "admin.crt"
+ defaultAdminKey = certDir + "admin.key"
+ defaultAgentCert = certDir + "agent.crt"
+ defaultAgentKey = certDir + "agent.key"
+ defaultTelemetryCert = certDir + "telemetry.crt"
+ defaultTelemetryKey = certDir + "telemetry.key"
+ defaultTelemetryCACert = certDir + "daosTelemetryCA.crt"
+ defaultClientCertDir = certDir + "clients"
+ defaultServer = "server"
+ defaultInsecure = false
)
// MappedClientUser represents a client user that is mapped to a uid.
@@ -111,12 +111,12 @@ type TransportConfig struct {
// TelemetryConfig contains all the information on whether or not to use
// secure endpoint for telemetry and their location if their use is specified.
type TelemetryConfig struct {
- Port int `yaml:"port,omitempty"`
- AllowInsecure bool `yaml:"allow_insecure"`
- Enabled bool `yaml:"enabled,omitempty"`
- Retain time.Duration `yaml:"retain,omitempty"`
- ServerCert string `yaml:"server_cert,omitempty"`
- ServerKey string `yaml:"server_key,omitempty"`
+ Port int `yaml:"telemetry_port,omitempty"`
+ AllowInsecure bool `yaml:"allow_insecure,omitempty"`
+ Enabled bool `yaml:"telemetry_enabled,omitempty"`
+ Retain time.Duration `yaml:"telemetry_retain,omitempty"`
+ HttpsCert string `yaml:"https_cert,omitempty"`
+ HttpsKey string `yaml:"https_key,omitempty"`
CARootPath string `yaml:"ca_cert,omitempty"`
}
@@ -125,9 +125,9 @@ type TelemetryConfig struct {
func DefaultClientTelemetryConfig() *TelemetryConfig {
return &TelemetryConfig{
Enabled: false,
- AllowInsecure: defaultInsecure,
- ServerCert: defaultTelemetryServerCert,
- ServerKey: defaultTelemetryServerKey,
+ AllowInsecure: true,
+ HttpsCert: defaultTelemetryCert,
+ HttpsKey: defaultTelemetryKey,
CARootPath: defaultTelemetryCACert,
}
}
diff --git a/src/control/server/config/server.go b/src/control/server/config/server.go
index 6e0ef620247..038b322832d 100644
--- a/src/control/server/config/server.go
+++ b/src/control/server/config/server.go
@@ -61,6 +61,7 @@ type Server struct {
HelperLogFile string `yaml:"helper_log_file,omitempty"`
FWHelperLogFile string `yaml:"firmware_helper_log_file,omitempty"`
FaultPath string `yaml:"fault_path,omitempty"`
+ TelemetryPort int `yaml:"telemetry_port,omitempty"`
TelemetryConfig *security.TelemetryConfig `yaml:"telemetry_config"`
CoreDumpFilter uint8 `yaml:"core_dump_filter,omitempty"`
ClientEnvVars []string `yaml:"client_env_vars,omitempty"`
@@ -707,6 +708,9 @@ func (cfg *Server) Validate(log logging.Logger) (err error) {
return FaultConfigNoProvider
case cfg.ControlPort <= 0:
return FaultConfigBadControlPort
+ //Support old configuration option
+ case cfg.TelemetryPort < 0:
+ return FaultConfigBadTelemetryPort
}
if cfg.TelemetryConfig != nil {
diff --git a/src/control/server/config/server_test.go b/src/control/server/config/server_test.go
index 9a45070de05..51076d8d10c 100644
--- a/src/control/server/config/server_test.go
+++ b/src/control/server/config/server_test.go
@@ -249,8 +249,8 @@ func TestServerConfig_Constructed(t *testing.T) {
WithTelemetryConfig(&security.TelemetryConfig{
AllowInsecure: true,
Port: 9191,
- ServerCert: "/etc/daos/certs/telemetryserver.crt",
- ServerKey: "/etc/daos/certs/telemetryserver.key",
+ HttpsCert: "/etc/daos/certs/telemetry.crt",
+ HttpsKey: "/etc/daos/certs/telemetry.key",
CARootPath: "/etc/daos/certs/daosTelemetryCA.crt"}).
WithSystemName("daos_server").
WithSocketDir("./.daos/daos_server").
@@ -425,8 +425,8 @@ func TestServerConfig_MDonSSD_Constructed(t *testing.T) {
WithTelemetryConfig(&security.TelemetryConfig{
AllowInsecure: true,
Port: 9191,
- ServerCert: "/etc/daos/certs/telemetryserver.crt",
- ServerKey: "/etc/daos/certs/telemetryserver.key",
+ HttpsCert: "/etc/daos/certs/telemetry.crt",
+ HttpsKey: "/etc/daos/certs/telemetry.key",
CARootPath: "/etc/daos/certs/daosTelemetryCA.crt"}).
WithFabricProvider("ofi+tcp").
WithAccessPoints("example")
diff --git a/src/control/server/telemetry.go b/src/control/server/telemetry.go
index 0ccac94930b..28848f6879e 100644
--- a/src/control/server/telemetry.go
+++ b/src/control/server/telemetry.go
@@ -73,8 +73,8 @@ func startPrometheusExporter(ctx context.Context, srv *server) (func(), error) {
Port: srv.cfg.TelemetryConfig.Port,
Title: "DAOS Engine Telemetry",
AllowInsecure: srv.cfg.TelemetryConfig.AllowInsecure,
- HttpsCert: srv.cfg.TelemetryConfig.ServerCert,
- HttpsKey: srv.cfg.TelemetryConfig.ServerKey,
+ HttpsCert: srv.cfg.TelemetryConfig.HttpsCert,
+ HttpsKey: srv.cfg.TelemetryConfig.HttpsKey,
Register: func(ctx context.Context, log logging.Logger) error {
return regPromEngineSources(ctx, srv.log, srv.harness.Instances())
},
diff --git a/src/tests/ftest/config_file_gen.py b/src/tests/ftest/config_file_gen.py
index c030abc9f9e..9ab409ac533 100755
--- a/src/tests/ftest/config_file_gen.py
+++ b/src/tests/ftest/config_file_gen.py
@@ -12,14 +12,13 @@
import sys
from argparse import ArgumentParser, RawDescriptionHelpFormatter
-from util.agent_utils_params import (DaosAgentTelemetryCredentials, DaosAgentTransportCredentials,
+from util.agent_utils_params import (DaosAgentTelemetryConfig, DaosAgentTransportCredentials,
DaosAgentYamlParameters)
from util.command_utils_base import CommonConfig
-from util.dmg_utils_params import (DmgTelemetryCredentials, DmgTransportCredentials,
- DmgYamlParameters)
+from util.dmg_utils_params import DmgTelemetryConfig, DmgTransportCredentials, DmgYamlParameters
from util.exception_utils import CommandFailure
-from util.server_utils_params import (DaosServerTelemetryCredentials,
- DaosServerTransportCredentials, DaosServerYamlParameters)
+from util.server_utils_params import (DaosServerTelemetryConfig, DaosServerTransportCredentials,
+ DaosServerYamlParameters)
def generate_agent_config(args):
@@ -34,7 +33,7 @@ def generate_agent_config(args):
"""
common_cfg = CommonConfig(args.group_name, DaosAgentTransportCredentials())
config = DaosAgentYamlParameters(args.agent_file, common_cfg)
- config.telemetry_config = DaosAgentTelemetryCredentials()
+ config.telemetry_config = DaosAgentTelemetryConfig()
# Update the configuration file access points
config.other_params.access_points.value = args.node_list.split(",")
return create_config(args, config)
@@ -52,7 +51,7 @@ def generate_server_config(args):
"""
common_cfg = CommonConfig(args.group_name, DaosServerTransportCredentials())
config = DaosServerYamlParameters(args.server_file, common_cfg)
- config.telemetry_config = DaosServerTelemetryCredentials()
+ config.telemetry_config = DaosServerTelemetryConfig()
config.engine_params[0].storage.storage_tiers[0].storage_class.value = "ram"
config.engine_params[0].storage.storage_tiers[0].scm_mount.value = "/mnt/daos"
config.engine_params[0].storage.storage_tiers[0].scm_size.value = 0
@@ -73,7 +72,7 @@ def generate_dmg_config(args):
"""
config = DmgYamlParameters(
args.dmg_file, args.group_name, DmgTransportCredentials())
- config.telemetry_config = DmgTelemetryCredentials()
+ config.telemetry_config = DmgTelemetryConfig()
# Update the configuration file hostlist
config.hostlist.value = args.node_list.split(",")
return create_config(args, config)
diff --git a/src/tests/ftest/server/storage_tiers.py b/src/tests/ftest/server/storage_tiers.py
index ad946baaa72..536c1c52baf 100644
--- a/src/tests/ftest/server/storage_tiers.py
+++ b/src/tests/ftest/server/storage_tiers.py
@@ -8,7 +8,7 @@
import yaml
from apricot import TestWithServers
from command_utils_base import CommonConfig
-from server_utils import (DaosServerTelemetryCredentials, DaosServerTransportCredentials,
+from server_utils import (DaosServerTelemetryConfig, DaosServerTransportCredentials,
DaosServerYamlParameters)
@@ -68,7 +68,7 @@ def test_tiers(self):
common_config = CommonConfig("daos_server", DaosServerTransportCredentials())
config = DaosServerYamlParameters(None, common_config)
- config.telemetry_config = DaosServerTelemetryCredentials()
+ config.telemetry_config = DaosServerTelemetryConfig()
config.namespace = self.server_config_namespace
config.get_params(self)
data = config.get_yaml_data()
diff --git a/src/tests/ftest/telemetry/basic_client_telemetry.yaml b/src/tests/ftest/telemetry/basic_client_telemetry.yaml
index 82b57ba9961..71c6c361cd9 100644
--- a/src/tests/ftest/telemetry/basic_client_telemetry.yaml
+++ b/src/tests/ftest/telemetry/basic_client_telemetry.yaml
@@ -20,9 +20,9 @@ server_config:
agent_config:
telemetry_config:
allow_insecure: false
- port: 9191
- retain: 30s
- enabled: true
+ telemetry_port: 9191
+ telemetry_retain: 30s
+ telemetry_enabled: true
pool:
scm_size: 2G
diff --git a/src/tests/ftest/util/agent_utils.py b/src/tests/ftest/util/agent_utils.py
index b7762c69860..416cefdbf78 100644
--- a/src/tests/ftest/util/agent_utils.py
+++ b/src/tests/ftest/util/agent_utils.py
@@ -7,7 +7,7 @@
import re
import socket
-from agent_utils_params import (DaosAgentTelemetryCredentials, DaosAgentTransportCredentials,
+from agent_utils_params import (DaosAgentTelemetryConfig, DaosAgentTransportCredentials,
DaosAgentYamlParameters)
from ClusterShell.NodeSet import NodeSet
from command_utils import CommandWithSubCommand, SubprocessManager, YamlCommand
@@ -54,7 +54,7 @@ def get_agent_command(group, cert_dir, bin_dir, config_file, run_user, config_te
transport_config = DaosAgentTransportCredentials(cert_dir)
common_config = CommonConfig(group, transport_config)
config = DaosAgentYamlParameters(config_file, common_config)
- config.telemetry_config = DaosAgentTelemetryCredentials(cert_dir)
+ config.telemetry_config = DaosAgentTelemetryConfig(cert_dir)
command = DaosAgentCommand(bin_dir, config, run_user=run_user)
if config_temp:
# Setup the DaosAgentCommand to write the config file data to the
diff --git a/src/tests/ftest/util/agent_utils_params.py b/src/tests/ftest/util/agent_utils_params.py
index 1d80b627e1f..b6a04bf874f 100644
--- a/src/tests/ftest/util/agent_utils_params.py
+++ b/src/tests/ftest/util/agent_utils_params.py
@@ -5,7 +5,7 @@
"""
import os
-from command_utils_base import (BasicParameter, LogParameter, TelemetryCredentials,
+from command_utils_base import (BasicParameter, LogParameter, TelemetryConfig,
TransportCredentials, YamlParameters)
@@ -33,7 +33,7 @@ def _get_new(self):
return DaosAgentTransportCredentials(self._log_dir)
-class DaosAgentTelemetryCredentials(TelemetryCredentials):
+class DaosAgentTelemetryConfig(TelemetryConfig):
# pylint: disable=too-few-public-methods
"""Telemetry credentials listing certificates for secure communication."""
@@ -41,19 +41,19 @@ def __init__(self, log_dir=os.path.join(os.sep, "tmp")):
"""Initialize a TelemetryConfig object."""
super().__init__("/run/agent_config/telemetry_config/*", None, log_dir)
- self.port = BasicParameter(None, 9192)
- self.enabled = BasicParameter(None)
- self.retain = BasicParameter(None)
- self.server_cert = LogParameter(self._log_dir, None, "telemetryserver.crt")
- self.server_key = LogParameter(self._log_dir, None, "telemetryserver.key")
+ self.telemetry_port = BasicParameter(None, 9192)
+ self.telemetry_enabled = BasicParameter(None)
+ self.telemetry_retain = BasicParameter(None)
+ self.https_cert = LogParameter(self._log_dir, None, "telemetry.crt")
+ self.https_key = LogParameter(self._log_dir, None, "telemetry.key")
def _get_new(self):
"""Get a new object based upon this one.
Returns:
- DaosServerTelemetryCredentials: a new DaosServerTelemetryCredentials object
+ DaosServerTelemetryConfig: a new DaosServerTelemetryConfig object
"""
- return DaosAgentTelemetryCredentials(self._log_dir)
+ return DaosAgentTelemetryConfig(self._log_dir)
class DaosAgentYamlParameters(YamlParameters):
diff --git a/src/tests/ftest/util/command_utils_base.py b/src/tests/ftest/util/command_utils_base.py
index 2a42670ab16..5b39ca6015a 100644
--- a/src/tests/ftest/util/command_utils_base.py
+++ b/src/tests/ftest/util/command_utils_base.py
@@ -799,11 +799,11 @@ def _get_new(self):
return TransportCredentials(self.namespace, self.title, self._log_dir)
-class TelemetryCredentials(YamlParameters):
+class TelemetryConfig(YamlParameters):
"""Telemetry credentials listing certificates for secure communication."""
def __init__(self, namespace, title, log_dir):
- """Initialize a TelemetryCredentials object.
+ """Initialize a TelemetryConfig object.
Args:
namespace (str): yaml namespace (path to parameters)
@@ -816,9 +816,9 @@ def __init__(self, namespace, title, log_dir):
default_insecure = str(os.environ.get("DAOS_TEST_INSECURE_MODE", True))
default_insecure = default_insecure.lower() == "true"
self.allow_insecure = BasicParameter(None, default_insecure)
- self.port = BasicParameter(None, 9191)
- self.retain = None
- self.enabled = None
+ self.telemetry_port = BasicParameter(None, 9191)
+ self.telemetry_retain = None
+ self.telemetry_enabled = None
def get_yaml_data(self):
"""Convert the parameters into a dictionary to use to write a yaml file.
@@ -864,9 +864,9 @@ def _get_new(self):
"""Get a new object based upon this one.
Returns:
- TelemetryCredentials: a new TelemetryCredentials object
+ TelemetryConfig: a new TelemetryConfig object
"""
- return TelemetryCredentials(self.namespace, self.title, self._log_dir)
+ return TelemetryConfig(self.namespace, self.title, self._log_dir)
class CommonConfig(YamlParameters):
diff --git a/src/tests/ftest/util/dmg_utils.py b/src/tests/ftest/util/dmg_utils.py
index 4d731db7eb4..51e324ea937 100644
--- a/src/tests/ftest/util/dmg_utils.py
+++ b/src/tests/ftest/util/dmg_utils.py
@@ -10,7 +10,7 @@
from pwd import getpwuid
from dmg_utils_base import DmgCommandBase
-from dmg_utils_params import DmgTelemetryCredentials, DmgTransportCredentials, DmgYamlParameters
+from dmg_utils_params import DmgTelemetryConfig, DmgTransportCredentials, DmgYamlParameters
from exception_utils import CommandFailure
from general_utils import dict_to_str, get_numeric_list
@@ -39,7 +39,7 @@ def get_dmg_command(group, cert_dir, bin_dir, config_file, config_temp=None, hos
"""
transport_config = DmgTransportCredentials(cert_dir)
- telemetry_config = DmgTelemetryCredentials(cert_dir)
+ telemetry_config = DmgTelemetryConfig(cert_dir)
config = DmgYamlParameters(config_file, group, transport_config, telemetry_config)
command = DmgCommand(bin_dir, config, hostlist_suffix)
if config_temp:
diff --git a/src/tests/ftest/util/dmg_utils_params.py b/src/tests/ftest/util/dmg_utils_params.py
index 5d6cea72f38..32b7ec022b6 100644
--- a/src/tests/ftest/util/dmg_utils_params.py
+++ b/src/tests/ftest/util/dmg_utils_params.py
@@ -4,7 +4,7 @@
SPDX-License-Identifier: BSD-2-Clause-Patent
"""
-from command_utils_base import (BasicParameter, LogParameter, TelemetryCredentials,
+from command_utils_base import (BasicParameter, LogParameter, TelemetryConfig,
TransportCredentials, YamlParameters)
@@ -26,11 +26,11 @@ def _get_new(self):
return DmgTransportCredentials(self._log_dir)
-class DmgTelemetryCredentials(TelemetryCredentials):
+class DmgTelemetryConfig(TelemetryConfig):
"""Telemetry credentials listing certificates for secure communication."""
def __init__(self, log_dir="/tmp"):
- """Initialize a TelemetryCredentials object."""
+ """Initialize a TelemetryConfig object."""
super().__init__("/run/dmg/telemetry_config/*", None, log_dir)
self.ca_cert = LogParameter(self._log_dir, None, "daosTelemetryCA.crt")
@@ -38,9 +38,9 @@ def _get_new(self):
"""Get a new object based upon this one.
Returns:
- DmgTelemetryCredentials: a new DmgTelemetryCredentials object
+ DmgTelemetryConfig: a new DmgTelemetryConfig object
"""
- return DmgTelemetryCredentials(self._log_dir)
+ return DmgTelemetryConfig(self._log_dir)
class DmgYamlParameters(YamlParameters):
@@ -54,7 +54,7 @@ def __init__(self, filename, name, transport, telemetry=None):
name (str): The DAOS system name.
transport (DmgTransportCredentials): dmg security
configuration settings.
- telemetry (DmgTelemetryCredentials): dmg telemetry
+ telemetry (DmgTelemetryConfig): dmg telemetry
configuration settings.
"""
super().__init__("/run/dmg/*", filename, None, transport)
diff --git a/src/tests/ftest/util/server_utils.py b/src/tests/ftest/util/server_utils.py
index 90639206ea5..e444b0c78aa 100644
--- a/src/tests/ftest/util/server_utils.py
+++ b/src/tests/ftest/util/server_utils.py
@@ -21,7 +21,7 @@
from host_utils import get_local_host
from run_utils import run_remote, stop_processes
from server_utils_base import DaosServerCommand, DaosServerInformation, ServerFailed
-from server_utils_params import (DaosServerTelemetryCredentials, DaosServerTransportCredentials,
+from server_utils_params import (DaosServerTelemetryConfig, DaosServerTransportCredentials,
DaosServerYamlParameters)
from user_utils import get_chown_command
@@ -46,7 +46,7 @@ def get_server_command(group, cert_dir, bin_dir, config_file, config_temp=None):
transport_config = DaosServerTransportCredentials(cert_dir)
common_config = CommonConfig(group, transport_config)
config = DaosServerYamlParameters(config_file, common_config)
- config.telemetry_config = DaosServerTelemetryCredentials(cert_dir)
+ config.telemetry_config = DaosServerTelemetryConfig(cert_dir)
command = DaosServerCommand(bin_dir, config, None)
diff --git a/src/tests/ftest/util/server_utils_params.py b/src/tests/ftest/util/server_utils_params.py
index 909a3d83b9b..d9b33f61701 100644
--- a/src/tests/ftest/util/server_utils_params.py
+++ b/src/tests/ftest/util/server_utils_params.py
@@ -5,7 +5,7 @@
"""
import os
-from command_utils_base import (BasicParameter, LogParameter, TelemetryCredentials,
+from command_utils_base import (BasicParameter, LogParameter, TelemetryConfig,
TransportCredentials, YamlParameters)
MAX_STORAGE_TIERS = 5
@@ -57,30 +57,30 @@ def _get_new(self):
return DaosServerTransportCredentials(self._log_dir)
-class DaosServerTelemetryCredentials(TelemetryCredentials):
+class DaosServerTelemetryConfig(TelemetryConfig):
# pylint: disable=too-few-public-methods
"""Telemetry credentials listing certificates for secure communication."""
def __init__(self, log_dir=os.path.join(os.sep, "tmp")):
- """Initialize a DaosServerTelemetryCredentials object."""
+ """Initialize a DaosServerTelemetryConfig object."""
super().__init__("/run/server_config/telemetry_config/*", None, log_dir)
# Additional daos_server telemetry credential parameters:
# - port: : Telemetry endpoint port number
- # - server_cert: : Server certificate
- # - server_key: : Server Key portion
+ # - https_cert: : Server certificate
+ # - https_key: : Server Key portion
#
- self.port = BasicParameter(None, 9191)
- self.server_cert = LogParameter(self._log_dir, None, "telemetryserver.crt")
- self.server_key = LogParameter(self._log_dir, None, "telemetryserver.key")
+ self.telemetry_port = BasicParameter(None, 9191)
+ self.https_cert = LogParameter(self._log_dir, None, "telemetry.crt")
+ self.https_key = LogParameter(self._log_dir, None, "telemetry.key")
def _get_new(self):
"""Get a new object based upon this one.
Returns:
- DaosServerTelemetryCredentials: a new DaosServerTelemetryCredentials object
+ DaosServerTelemetryConfig: a new DaosServerTelemetryConfig object
"""
- return DaosServerTelemetryCredentials(self._log_dir)
+ return DaosServerTelemetryConfig(self._log_dir)
class DaosServerYamlParameters(YamlParameters):
diff --git a/utils/certs/gen_telemetry_server_certificate.sh b/utils/certs/gen_telemetry_server_certificate.sh
index 3670a92afec..f1de56da85e 100755
--- a/utils/certs/gen_telemetry_server_certificate.sh
+++ b/utils/certs/gen_telemetry_server_certificate.sh
@@ -52,33 +52,33 @@ subjectAltName = DNS:${HOSTNAME}
function generate_server_cert () {
echo "Generating Server Certificate"
# Generate Private key and set its permissions
- openssl genrsa -out "${CA_HOME}/telemetryserver.key" 2048
- [[ $EUID -eq 0 ]] && chown "${USER}"."${USER}" "${CA_HOME}/telemetryserver.key"
- chmod 0400 "${CA_HOME}/telemetryserver.key"
+ openssl genrsa -out "${CA_HOME}/telemetry.key" 2048
+ [[ $EUID -eq 0 ]] && chown "${USER}"."${USER}" "${CA_HOME}/telemetry.key"
+ chmod 0400 "${CA_HOME}/telemetry.key"
# Generate a Certificate Signing Request (CRS)
- openssl req -new -key "${CA_HOME}/telemetryserver.key" \
- -out "${CA_HOME}/telemetryserver.csr" -config "${CA_HOME}/telemetry.cnf"
+ openssl req -new -key "${CA_HOME}/telemetry.key" \
+ -out "${CA_HOME}/telemetry.csr" -config "${CA_HOME}/telemetry.cnf"
# Create Certificate from request
- openssl x509 -req -in "${CA_HOME}/telemetryserver.csr" -CA "${CA_HOME}/daosTelemetryCA.crt" \
- -CAkey "${CA_HOME}/daosTelemetryCA.key" -CAcreateserial -out "${CA_HOME}/telemetryserver.crt" \
+ openssl x509 -req -in "${CA_HOME}/telemetry.csr" -CA "${CA_HOME}/daosTelemetryCA.crt" \
+ -CAkey "${CA_HOME}/daosTelemetryCA.key" -CAcreateserial -out "${CA_HOME}/telemetry.crt" \
-days ${DAYS} -sha256 -extfile "$CA_HOME/telemetry.cnf" -extensions v3_ext
- [[ $EUID -eq 0 ]] && chown "${USER}"."${USER}" "${CA_HOME}/telemetryserver.crt"
- chmod 0644 "${CA_HOME}/telemetryserver.crt"
+ [[ $EUID -eq 0 ]] && chown "${USER}"."${USER}" "${CA_HOME}/telemetry.crt"
+ chmod 0644 "${CA_HOME}/telemetry.crt"
echo "Required Server Certificate Files:
${CA_HOME}/daosTelemetryCA.crt
- ${CA_HOME}/telemetryserver.key
- ${CA_HOME}/telemetryserver.crt"
+ ${CA_HOME}/telemetry.key
+ ${CA_HOME}/telemetry.crt"
}
function cleanup () {
- # Remove this key as it's not required after creating the telemetryserver.key
+ # Remove this key as it's not required after creating the telemetry.key
rm -f "${CA_HOME}/daosTelemetryCA.key"
- rm -f "${CA_HOME}/telemetryserver.csr"
+ rm -f "${CA_HOME}/telemetry.csr"
rm -f "${CA_HOME}/telemetry.cnf"
}
diff --git a/utils/config/daos_agent.yml b/utils/config/daos_agent.yml
index 304550cdfef..7315ecb3bb6 100644
--- a/utils/config/daos_agent.yml
+++ b/utils/config/daos_agent.yml
@@ -31,18 +31,18 @@
#telemetry_config:
# # Set the client telemetry endpoint port number
# # default: 9192
-# port: 9192
+# telemetry_port: 9192
#
# # Enable client telemetry for all DAOS clients.
# # If false, clients will need to optionally enable telemetry by setting
# # the D_CLIENT_METRICS_ENABLE environment variable to true.
# # default: false
-# enabled: true
+# telemetry_enabled: true
#
# # Retain client telemetry for a period of time after the client
# # process exits.
# # default 0 (do not retain telemetry after client exit)
-# retain: 1m
+# telemetry_retain: 1m
#
# # In order to disable transport security, uncomment and set allow_insecure
# # to true. Not recommended for production configurations.
@@ -50,11 +50,11 @@
#
# # Server certificate for use in TLS handshakes
# # DAOS client is the HTTPS server to open secure telemetry endpoint.
-# server_cert: /etc/daos/certs/telemetryserver.crt
+# https_cert: /etc/daos/certs/telemetry.crt
#
# # Key portion of Server Certificate
# # DAOS client is the HTTPS server to open secure telemetry endpoint.
-# server_key: /etc/daos/certs/telemetryserver.key
+# https_key: /etc/daos/certs/telemetry.key
## Configuration for user credential management.
#credential_config:
diff --git a/utils/config/daos_control.yml b/utils/config/daos_control.yml
index ea2da17066e..076168b35e2 100644
--- a/utils/config/daos_control.yml
+++ b/utils/config/daos_control.yml
@@ -39,12 +39,12 @@
# # Key portion of Admin Certificate
# key: /etc/daos/certs/admin.key
-## Enable Telemetry HTTP/HTTPS endpoint for remote client telemetry collection.
+## Configuration for telemetry collection commands.
#
#telemetry_config:
-# # In order to disable transport security, uncomment and set allow_insecure
-# # to true. Not recommended for production configurations.
-# allow_insecure: false
+# # In order to enabled transport security, uncomment and set allow_insecure
+# # to false.
+# allow_insecure: true
#
# # Custom CA Root certificate for generated telemetry certs
# ca_cert: /etc/daos/certs/daosTelemetryCA.crt
diff --git a/utils/config/daos_server.yml b/utils/config/daos_server.yml
index 0d56afbd589..cdb2a2bd61e 100644
--- a/utils/config/daos_server.yml
+++ b/utils/config/daos_server.yml
@@ -259,18 +259,18 @@
## Enable Telemetry HTTP/HTTPS endpoint for remote telemetry collection.
#
#telemetry_config:
-# # In order to disable telemetry security, uncomment and set allow_insecure to false
+# # In order to enabled telemetry security, uncomment and set allow_insecure to false
# allow_insecure: true
#
# # Set the server telemetry endpoint port number
# # default: 9191
-# port: 9191
+# telemetry_port: 9191
#
# # Server certificate for use in TLS handshakes
-# server_cert: /etc/daos/certs/telemetryserver.crt
+# https_cert: /etc/daos/certs/telemetry.crt
#
# # Key portion of Server Certificate
-# server_key: /etc/daos/certs/telemetryserver.key
+# https_key: /etc/daos/certs/telemetry.key
#
#
## If desired, a set of client-side environment variables may be
diff --git a/utils/config/examples/daos_server_local.yml b/utils/config/examples/daos_server_local.yml
index fa797a92d2f..e23ef691ffe 100644
--- a/utils/config/examples/daos_server_local.yml
+++ b/utils/config/examples/daos_server_local.yml
@@ -9,7 +9,7 @@ transport_config:
telemetry_config:
allow_insecure: true
- port: 9191
+ telemetry_port: 9191
engines:
-
diff --git a/utils/config/examples/daos_server_mdonssd.yml b/utils/config/examples/daos_server_mdonssd.yml
index 8052681fdf4..7ea5267de64 100644
--- a/utils/config/examples/daos_server_mdonssd.yml
+++ b/utils/config/examples/daos_server_mdonssd.yml
@@ -28,7 +28,7 @@ control_metadata:
telemetry_config:
allow_insecure: true
- port: 9191
+ telemetry_port: 9191
engines:
-
diff --git a/utils/config/examples/daos_server_tcp.yml b/utils/config/examples/daos_server_tcp.yml
index e2fdc4af0d4..39459d412e6 100644
--- a/utils/config/examples/daos_server_tcp.yml
+++ b/utils/config/examples/daos_server_tcp.yml
@@ -9,7 +9,7 @@ control_log_file: /tmp/daos_server.log
telemetry_config:
allow_insecure: true
- port: 9191
+ telemetry_port: 9191
## Transport Credentials Specifying certificates to secure communications
##
diff --git a/utils/config/examples/daos_server_ucx.yml b/utils/config/examples/daos_server_ucx.yml
index cd76ad6dd05..8b0b5c4c7d2 100644
--- a/utils/config/examples/daos_server_ucx.yml
+++ b/utils/config/examples/daos_server_ucx.yml
@@ -18,7 +18,7 @@ control_log_file: /tmp/daos_server.log
telemetry_config:
allow_insecure: true
- port: 9191
+ telemetry_port: 9191
## Transport Credentials Specifying certificates to secure communications
##
diff --git a/utils/config/examples/daos_server_verbs.yml b/utils/config/examples/daos_server_verbs.yml
index d48a2d1330b..c5b416faa0f 100644
--- a/utils/config/examples/daos_server_verbs.yml
+++ b/utils/config/examples/daos_server_verbs.yml
@@ -9,7 +9,7 @@ control_log_file: /tmp/daos_server.log
telemetry_config:
allow_insecure: true
- port: 9191
+ telemetry_port: 9191
## Transport Credentials Specifying certificates to secure communications
##