in continuous_load_testing/src/main/java/com/google/net/grpc/testing/directpath/continuous_load_testing/Client.java [142:169]
private static GrpcOpenTelemetry initializeOpenTelemetry() {
MetricExporter cloudMonitoringExporter =
GoogleCloudMetricExporter.createWithConfiguration(
MetricConfiguration.builder()
.setUseServiceTimeSeries(true)
.setInstrumentationLibraryLabelsEnabled(false)
.setPrefix("directpathgrpctesting-pa.googleapis.com/client")
.build()
);
Resource resource = ResourceConfiguration.createEnvironmentResource();
GCPResourceProvider resourceProvider = new GCPResourceProvider();
SdkMeterProviderBuilder providerBuilder = SdkMeterProvider.builder()
.setResource(resource.merge(Resource.create(resourceProvider.getAttributes())))
.registerMetricReader(
PeriodicMetricReader.builder(cloudMonitoringExporter)
.setInterval(java.time.Duration.ofSeconds(90))
.build());
// Replaces the dots with slashes in each metric, which is needed by stackdriver.
for (String metric : METRICS) {
providerBuilder.registerView(
InstrumentSelector.builder().setName(metric).build(),
View.builder().setName(metric.replace(".", "/")).build());
}
OpenTelemetrySdk openTelemetrySdk = OpenTelemetrySdk.builder()
.setMeterProvider(providerBuilder.build()).build();
return GrpcOpenTelemetry.newBuilder().sdk(openTelemetrySdk)
.addOptionalLabel("grpc.lb.locality").enableMetrics(METRICS).build();
}