diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/SignalDatadogReporterFactory.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/SignalDatadogReporterFactory.java index 0f4664102..3338aef59 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/SignalDatadogReporterFactory.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/SignalDatadogReporterFactory.java @@ -10,6 +10,7 @@ import com.codahale.metrics.ScheduledReporter; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeName; import io.dropwizard.metrics.BaseReporterFactory; +import java.util.ArrayList; import java.util.EnumSet; import java.util.List; import javax.validation.Valid; @@ -20,6 +21,7 @@ import org.coursera.metrics.datadog.DefaultMetricNameFormatterFactory; import org.coursera.metrics.datadog.DynamicTagsCallbackFactory; import org.coursera.metrics.datadog.MetricNameFormatterFactory; import org.coursera.metrics.datadog.transport.AbstractTransportFactory; +import org.whispersystems.textsecuregcm.WhisperServerVersion; import org.whispersystems.textsecuregcm.util.HostnameUtil; @JsonTypeName("signal-datadog") @@ -58,10 +60,23 @@ public class SignalDatadogReporterFactory extends BaseReporterFactory { ); public ScheduledReporter build(MetricRegistry registry) { + final List tagsWithVersion; + + { + final String versionTag = "version:" + WhisperServerVersion.getServerVersion(); + + if (tags != null) { + tagsWithVersion = new ArrayList<>(tags); + tagsWithVersion.add(versionTag); + } else { + tagsWithVersion = List.of(versionTag); + } + } + return DatadogReporter.forRegistry(registry) .withTransport(transport.build()) .withHost(HostnameUtil.getLocalHostname()) - .withTags(tags) + .withTags(tagsWithVersion) .withPrefix(prefix) .withExpansions(EXPANSIONS) .withMetricNameFormatter(metricNameFormatter.build())