diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index 66b1da23de91b18ebf9162842a2a5521e47f0fc8..de95b21d761abf08782dfaa65468f16045478384 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -34,6 +34,7 @@ import io.lettuce.core.resource.ClientResources; import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Meter.Id; import io.micrometer.core.instrument.Metrics; +import io.micrometer.core.instrument.Tags; import io.micrometer.core.instrument.config.MeterFilter; import io.micrometer.core.instrument.distribution.DistributionStatisticConfig; import io.micrometer.datadog.DatadogConfig; @@ -309,16 +310,21 @@ public class WhisperServerService extends Application<WhisperServerConfiguration } }, Clock.SYSTEM); - datadogMeterRegistry.config().meterFilter(new MeterFilter() { - @Override - public DistributionStatisticConfig configure(final Id id, final DistributionStatisticConfig config) { - return defaultDistributionStatisticConfig.merge(config); - } - }) + datadogMeterRegistry.config().commonTags( + Tags.of( + "service", "chat", + "version", WhisperServerVersion.getServerVersion(), + "env", config.getDatadogConfiguration().getEnvironment())) .meterFilter(MeterFilter.denyNameStartsWith(MetricsRequestEventListener.REQUEST_COUNTER_NAME)) .meterFilter(MeterFilter.denyNameStartsWith(MetricsRequestEventListener.ANDROID_REQUEST_COUNTER_NAME)) .meterFilter(MeterFilter.denyNameStartsWith(MetricsRequestEventListener.DESKTOP_REQUEST_COUNTER_NAME)) - .meterFilter(MeterFilter.denyNameStartsWith(MetricsRequestEventListener.IOS_REQUEST_COUNTER_NAME)); + .meterFilter(MeterFilter.denyNameStartsWith(MetricsRequestEventListener.IOS_REQUEST_COUNTER_NAME)) + .meterFilter(new MeterFilter() { + @Override + public DistributionStatisticConfig configure(final Id id, final DistributionStatisticConfig config) { + return defaultDistributionStatisticConfig.merge(config); + } + }); Metrics.addRegistry(datadogMeterRegistry); } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DatadogConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DatadogConfiguration.java index 6731a2bb10014e3bfe8de2d6f2b7f283de5dd601..3642f8d6d6251ad693fced44c49499f2258bfe87 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DatadogConfiguration.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DatadogConfiguration.java @@ -20,6 +20,10 @@ public class DatadogConfiguration { @NotNull private Duration step = Duration.ofSeconds(10); + @JsonProperty + @NotBlank + private String environment; + public String getApiKey() { return apiKey; } @@ -27,4 +31,8 @@ public class DatadogConfiguration { public Duration getStep() { return step; } + + public String getEnvironment() { + return environment; + } }