private static GrpcOpenTelemetry initializeOpenTelemetry()

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();
  }