diff --git a/pkg/process/metrics.go b/pkg/process/metrics.go index 982145e4f..8b3b57dcd 100644 --- a/pkg/process/metrics.go +++ b/pkg/process/metrics.go @@ -22,12 +22,24 @@ import ( ) var ( - metricInterval = flag.Duration("metrics.interval", telemetry.DefaultInterval, "how frequently to send up telemetry") - metricCollector = flag.String("metrics.addr", "collectora.storj.io:9000", "address to send telemetry to") - metricApp = flag.String("metrics.app", filepath.Base(os.Args[0]), "application name for telemetry identification") - metricAppSuffix = flag.String("metrics.app-suffix", "-"+cfgstruct.DefaultsType(), "application suffix") + metricInterval = flag.Duration("metrics.interval", telemetry.DefaultInterval, "how frequently to send up telemetry") + metricCollector = flag.String("metrics.addr", flagDefault("", "collectora.storj.io:9000"), "address to send telemetry to") + metricApp = flag.String("metrics.app", filepath.Base(os.Args[0]), "application name for telemetry identification") + metricAppSuffix = flag.String("metrics.app-suffix", flagDefault("-dev", "-release"), "application suffix") + metricInstancePrefix = flag.String("metrics.instance-prefix", "", "instance id prefix") ) +const ( + maxInstanceLength = 52 +) + +func flagDefault(dev, release string) string { + if cfgstruct.DefaultsType() == "release" { + return release + } + return dev +} + // InitMetrics initializes telemetry reporting. Makes a telemetry.Client and calls // its Run() method in a goroutine. func InitMetrics(ctx context.Context, r *monkit.Registry, instanceID string) (err error) { @@ -40,6 +52,10 @@ func InitMetrics(ctx context.Context, r *monkit.Registry, instanceID string) (er if instanceID == "" { instanceID = telemetry.DefaultInstanceID() } + instanceID = *metricInstancePrefix + instanceID + if len(instanceID) > maxInstanceLength { + instanceID = instanceID[:maxInstanceLength] + } c, err := telemetry.NewClient(*metricCollector, telemetry.ClientOpts{ Interval: *metricInterval, Application: *metricApp + *metricAppSuffix, diff --git a/scripts/testdata/satellite-config.yaml.lock b/scripts/testdata/satellite-config.yaml.lock index 2e795035c..302335e92 100644 --- a/scripts/testdata/satellite-config.yaml.lock +++ b/scripts/testdata/satellite-config.yaml.lock @@ -208,6 +208,9 @@ kademlia.operator.wallet: "" # application suffix # metrics.app-suffix: "-release" +# instance id prefix +# metrics.instance-prefix: "" + # how frequently to send up telemetry # metrics.interval: 1m0s