diff --git a/service/config/sample.yml b/service/config/sample.yml
index 762801921..d87c79c4e 100644
--- a/service/config/sample.yml
+++ b/service/config/sample.yml
@@ -224,10 +224,6 @@ cdn:
bucket: cdn # S3 Bucket name
region: us-west-2 # AWS region
-datadog:
- apiKey: secret://datadog.apiKey
- environment: dev
-
unidentifiedDelivery:
certificate: secret://unidentifiedDelivery.certificate
privateKey: secret://unidentifiedDelivery.privateKey
diff --git a/service/pom.xml b/service/pom.xml
index f3c27fba0..ecc6cf235 100644
--- a/service/pom.xml
+++ b/service/pom.xml
@@ -255,7 +255,7 @@
io.micrometer
- micrometer-registry-datadog
+ micrometer-registry-statsd
org.coursera
diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java
index d3279dc6e..45f322f59 100644
--- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java
+++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java
@@ -27,7 +27,7 @@ import org.whispersystems.textsecuregcm.configuration.BraintreeConfiguration;
import org.whispersystems.textsecuregcm.configuration.CdnConfiguration;
import org.whispersystems.textsecuregcm.configuration.ClientReleaseConfiguration;
import org.whispersystems.textsecuregcm.configuration.CommandStopListenerConfiguration;
-import org.whispersystems.textsecuregcm.configuration.DatadogConfiguration;
+import org.whispersystems.textsecuregcm.configuration.DogstatsdConfiguration;
import org.whispersystems.textsecuregcm.configuration.DirectoryV2Configuration;
import org.whispersystems.textsecuregcm.configuration.DynamoDbClientConfiguration;
import org.whispersystems.textsecuregcm.configuration.DynamoDbTables;
@@ -106,7 +106,7 @@ public class WhisperServerConfiguration extends Configuration {
@NotNull
@Valid
@JsonProperty
- private DatadogConfiguration datadog;
+ private DogstatsdConfiguration dogstatsd = new DogstatsdConfiguration();
@NotNull
@Valid
@@ -416,8 +416,8 @@ public class WhisperServerConfiguration extends Configuration {
return cdn;
}
- public DatadogConfiguration getDatadogConfiguration() {
- return datadog;
+ public DogstatsdConfiguration getDatadogConfiguration() {
+ return dogstatsd;
}
public UnidentifiedDeliveryConfiguration getDeliveryCertificate() {
diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DatadogConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DatadogConfiguration.java
deleted file mode 100644
index 4c2c7ac17..000000000
--- a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DatadogConfiguration.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2013 Signal Messenger, LLC
- * SPDX-License-Identifier: AGPL-3.0-only
- */
-
-package org.whispersystems.textsecuregcm.configuration;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.micrometer.datadog.DatadogConfig;
-import java.time.Duration;
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import org.whispersystems.textsecuregcm.configuration.secrets.SecretString;
-
-public class DatadogConfiguration implements DatadogConfig {
-
- @JsonProperty
- @NotNull
- private SecretString apiKey;
-
- @JsonProperty
- @NotNull
- private Duration step = Duration.ofSeconds(10);
-
- @JsonProperty
- @NotBlank
- private String environment;
-
- @JsonProperty
- @Min(1)
- private int batchSize = 5_000;
-
- @Override
- public String apiKey() {
- return apiKey.value();
- }
-
- @Override
- public Duration step() {
- return step;
- }
-
- public String getEnvironment() {
- return environment;
- }
-
- @Override
- public int batchSize() {
- return batchSize;
- }
-
- @Override
- public String hostTag() {
- return "host";
- }
-
- @Override
- public String get(final String key) {
- return null;
- }
-}
diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DogstatsdConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DogstatsdConfiguration.java
new file mode 100644
index 000000000..9103c2a32
--- /dev/null
+++ b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/DogstatsdConfiguration.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2013 Signal Messenger, LLC
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+package org.whispersystems.textsecuregcm.configuration;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.micrometer.statsd.StatsdConfig;
+import io.micrometer.statsd.StatsdFlavor;
+import java.time.Duration;
+import javax.validation.constraints.NotNull;
+
+public class DogstatsdConfiguration implements StatsdConfig {
+
+ @JsonProperty
+ @NotNull
+ private Duration step = Duration.ofSeconds(10);
+
+ @Override
+ public Duration step() {
+ return step;
+ }
+
+ @Override
+ public StatsdFlavor flavor() {
+ return StatsdFlavor.DATADOG;
+ }
+
+ @Override
+ public String get(final String key) {
+ // We have no Micrometer key/value pairs to report, so always return `null`
+ return null;
+ }
+}
diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/MetricsUtil.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/MetricsUtil.java
index 23dea4224..553f9045a 100644
--- a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/MetricsUtil.java
+++ b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/MetricsUtil.java
@@ -14,10 +14,9 @@ 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.DatadogMeterRegistry;
+import io.micrometer.statsd.StatsdMeterRegistry;
import java.util.concurrent.TimeUnit;
import org.whispersystems.textsecuregcm.WhisperServerConfiguration;
-import org.whispersystems.textsecuregcm.WhisperServerVersion;
import org.whispersystems.textsecuregcm.util.Constants;
import org.whispersystems.textsecuregcm.util.HostnameUtil;
@@ -45,17 +44,11 @@ public class MetricsUtil {
SharedMetricRegistries.add(Constants.METRICS_NAME, environment.metrics());
{
- final DatadogMeterRegistry datadogMeterRegistry = new DatadogMeterRegistry(
+ final StatsdMeterRegistry dogstatsdMeterRegistry = new StatsdMeterRegistry(
config.getDatadogConfiguration(), io.micrometer.core.instrument.Clock.SYSTEM);
- datadogMeterRegistry.config().commonTags(
- Tags.of(
- "service", "chat",
- "host", HostnameUtil.getLocalHostname(),
- "version", WhisperServerVersion.getServerVersion(),
- "env", config.getDatadogConfiguration().getEnvironment()));
- configureMeterFilters(datadogMeterRegistry.config());
- Metrics.addRegistry(datadogMeterRegistry);
+ configureMeterFilters(dogstatsdMeterRegistry.config());
+ Metrics.addRegistry(dogstatsdMeterRegistry);
}
environment.lifecycle().manage(new MicrometerRegistryManager(Metrics.globalRegistry));