Include the current server version in the tag list for Dropwizard metrics

This commit is contained in:
Jon Chambers 2021-08-26 17:12:03 -04:00 committed by Jon Chambers
parent b946c27a20
commit f2c6ca182d
1 changed files with 16 additions and 1 deletions

View File

@ -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<String> 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())