diff --git a/service/pom.xml b/service/pom.xml index 0dfbeaa5a..233429282 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -222,6 +222,10 @@ io.micrometer micrometer-registry-wavefront + + io.micrometer + micrometer-registry-datadog + com.fasterxml.jackson.core diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java index 428838940..640004e7a 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerConfiguration.java @@ -21,6 +21,7 @@ import org.whispersystems.textsecuregcm.configuration.AppConfigConfiguration; import org.whispersystems.textsecuregcm.configuration.AwsAttachmentsConfiguration; import org.whispersystems.textsecuregcm.configuration.CdnConfiguration; import org.whispersystems.textsecuregcm.configuration.DatabaseConfiguration; +import org.whispersystems.textsecuregcm.configuration.DatadogConfiguration; import org.whispersystems.textsecuregcm.configuration.DirectoryConfiguration; import org.whispersystems.textsecuregcm.configuration.DonationConfiguration; import org.whispersystems.textsecuregcm.configuration.DynamoDbConfiguration; @@ -29,7 +30,7 @@ import org.whispersystems.textsecuregcm.configuration.GcpAttachmentsConfiguratio import org.whispersystems.textsecuregcm.configuration.MaxDeviceConfiguration; import org.whispersystems.textsecuregcm.configuration.MessageCacheConfiguration; import org.whispersystems.textsecuregcm.configuration.MessageDynamoDbConfiguration; -import org.whispersystems.textsecuregcm.configuration.MicrometerConfiguration; +import org.whispersystems.textsecuregcm.configuration.WavefrontConfiguration; import org.whispersystems.textsecuregcm.configuration.PaymentsServiceConfiguration; import org.whispersystems.textsecuregcm.configuration.PushConfiguration; import org.whispersystems.textsecuregcm.configuration.RateLimitsConfiguration; @@ -79,7 +80,12 @@ public class WhisperServerConfiguration extends Configuration { @NotNull @Valid @JsonProperty - private MicrometerConfiguration micrometer; + private WavefrontConfiguration wavefront; + + @NotNull + @Valid + @JsonProperty + private DatadogConfiguration datadog; @NotNull @Valid @@ -393,8 +399,12 @@ public class WhisperServerConfiguration extends Configuration { return cdn; } - public MicrometerConfiguration getMicrometerConfiguration() { - return micrometer; + public WavefrontConfiguration getWavefrontConfiguration() { + return wavefront; + } + + public DatadogConfiguration getDatadogConfiguration() { + return datadog; } public UnidentifiedDeliveryConfiguration getDeliveryCertificate() { diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index 6ce0718e0..4d47e029f 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -40,7 +40,10 @@ import io.dropwizard.setup.Environment; import io.lettuce.core.resource.ClientResources; import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Metrics; +import io.micrometer.core.instrument.config.MeterFilter; import io.micrometer.core.instrument.distribution.DistributionStatisticConfig; +import io.micrometer.datadog.DatadogConfig; +import io.micrometer.datadog.DatadogMeterRegistry; import io.micrometer.wavefront.WavefrontConfig; import io.micrometer.wavefront.WavefrontMeterRegistry; import java.net.http.HttpClient; @@ -251,12 +254,12 @@ public class WhisperServerService extends Application