package demo; import java.io.IOException; import java.util.EnumSet; import java.util.concurrent.TimeUnit; import com.codahale.metrics.MetricRegistry; import org.coursera.metrics.datadog.DatadogReporter; import org.coursera.metrics.datadog.DatadogReporter.Expansion; import org.coursera.metrics.datadog.transport.HttpTransport; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class OperationsCloudMetricsApplication { @Value("${datadog.apikey}") private String apiKey; @Bean public DatadogReporter datadogReporter(MetricRegistry registry) throws IOException { EnumSet<Expansion> expansions = EnumSet.of(Expansion.COUNT, Expansion.RATE_1_MINUTE, Expansion.RATE_15_MINUTE, Expansion.MEDIAN, Expansion.P95, Expansion.P99); HttpTransport httpTransport = new HttpTransport.Builder().withApiKey(this.apiKey) .build(); DatadogReporter reporter = DatadogReporter.forRegistry(registry) .withHost("livelessons").withTransport(httpTransport) .withExpansions(expansions).build(); reporter.start(10, TimeUnit.SECONDS); return reporter; } public static void main(String[] args) { SpringApplication.run(OperationsCloudMetricsApplication.class, args); } }