Support DataDog Reporting.
This commit is contained in:
parent
6aaca59020
commit
67e5794722
6
pom.xml
6
pom.xml
|
@ -114,6 +114,12 @@
|
||||||
<artifactId>jetty-websocket</artifactId>
|
<artifactId>jetty-websocket</artifactId>
|
||||||
<version>8.1.14.v20131031</version>
|
<version>8.1.14.v20131031</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.coursera</groupId>
|
||||||
|
<artifactId>metrics-datadog</artifactId>
|
||||||
|
<version>0.1.5</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -20,6 +20,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.yammer.dropwizard.config.Configuration;
|
import com.yammer.dropwizard.config.Configuration;
|
||||||
import com.yammer.dropwizard.db.DatabaseConfiguration;
|
import com.yammer.dropwizard.db.DatabaseConfiguration;
|
||||||
import org.whispersystems.textsecuregcm.configuration.ApnConfiguration;
|
import org.whispersystems.textsecuregcm.configuration.ApnConfiguration;
|
||||||
|
import org.whispersystems.textsecuregcm.configuration.DataDogConfiguration;
|
||||||
import org.whispersystems.textsecuregcm.configuration.FederationConfiguration;
|
import org.whispersystems.textsecuregcm.configuration.FederationConfiguration;
|
||||||
import org.whispersystems.textsecuregcm.configuration.GcmConfiguration;
|
import org.whispersystems.textsecuregcm.configuration.GcmConfiguration;
|
||||||
import org.whispersystems.textsecuregcm.configuration.GraphiteConfiguration;
|
import org.whispersystems.textsecuregcm.configuration.GraphiteConfiguration;
|
||||||
|
@ -84,6 +85,10 @@ public class WhisperServerConfiguration extends Configuration {
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private GraphiteConfiguration graphite = new GraphiteConfiguration();
|
private GraphiteConfiguration graphite = new GraphiteConfiguration();
|
||||||
|
|
||||||
|
@Valid
|
||||||
|
@JsonProperty
|
||||||
|
private DataDogConfiguration datadog = new DataDogConfiguration();
|
||||||
|
|
||||||
@Valid
|
@Valid
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
private WebsocketConfiguration websocket = new WebsocketConfiguration();
|
private WebsocketConfiguration websocket = new WebsocketConfiguration();
|
||||||
|
@ -135,4 +140,8 @@ public class WhisperServerConfiguration extends Configuration {
|
||||||
public GraphiteConfiguration getGraphiteConfiguration() {
|
public GraphiteConfiguration getGraphiteConfiguration() {
|
||||||
return graphite;
|
return graphite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DataDogConfiguration getDataDogConfiguration() {
|
||||||
|
return datadog;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,9 @@ import com.yammer.dropwizard.config.HttpConfiguration;
|
||||||
import com.yammer.dropwizard.db.DatabaseConfiguration;
|
import com.yammer.dropwizard.db.DatabaseConfiguration;
|
||||||
import com.yammer.dropwizard.jdbi.DBIFactory;
|
import com.yammer.dropwizard.jdbi.DBIFactory;
|
||||||
import com.yammer.dropwizard.migrations.MigrationsBundle;
|
import com.yammer.dropwizard.migrations.MigrationsBundle;
|
||||||
|
import com.yammer.metrics.core.Clock;
|
||||||
|
import com.yammer.metrics.core.MetricPredicate;
|
||||||
|
import com.yammer.metrics.reporting.DatadogReporter;
|
||||||
import com.yammer.metrics.reporting.GraphiteReporter;
|
import com.yammer.metrics.reporting.GraphiteReporter;
|
||||||
import net.spy.memcached.MemcachedClient;
|
import net.spy.memcached.MemcachedClient;
|
||||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||||
|
@ -164,6 +167,13 @@ public class WhisperServerService extends Service<WhisperServerConfiguration> {
|
||||||
config.getGraphiteConfiguration().getHost(),
|
config.getGraphiteConfiguration().getHost(),
|
||||||
config.getGraphiteConfiguration().getPort());
|
config.getGraphiteConfiguration().getPort());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.getDataDogConfiguration().isEnabled()) {
|
||||||
|
new DatadogReporter.Builder().withApiKey(config.getDataDogConfiguration().getApiKey())
|
||||||
|
.withVmMetricsEnabled(true)
|
||||||
|
.build()
|
||||||
|
.start(15, TimeUnit.SECONDS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Optional<NexmoSmsSender> initializeNexmoSmsSender(NexmoConfiguration configuration) {
|
private Optional<NexmoSmsSender> initializeNexmoSmsSender(NexmoConfiguration configuration) {
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package org.whispersystems.textsecuregcm.configuration;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
public class DataDogConfiguration {
|
||||||
|
|
||||||
|
@JsonProperty
|
||||||
|
private String apiKey;
|
||||||
|
|
||||||
|
@JsonProperty
|
||||||
|
private boolean enabled = false;
|
||||||
|
|
||||||
|
public String getApiKey() {
|
||||||
|
return apiKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled && apiKey != null;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue