DemoAutoConfigurationCustomizerProvider.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * Copyright The OpenTelemetry Authors
  3. * SPDX-License-Identifier: Apache-2.0
  4. */
  5. package com.example.javaagent;
  6. import com.google.auto.service.AutoService;
  7. import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
  8. import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
  9. import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
  10. import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder;
  11. import io.opentelemetry.sdk.trace.SpanLimits;
  12. import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
  13. import java.util.HashMap;
  14. import java.util.Map;
  15. /**
  16. * This is one of the main entry points for Instrumentation Agent's customizations. It allows
  17. * configuring the {@link AutoConfigurationCustomizer}. See the {@link
  18. * #customize(AutoConfigurationCustomizer)} method below.
  19. *
  20. * <p>Also see https://github.com/open-telemetry/opentelemetry-java/issues/2022
  21. *
  22. * @see AutoConfigurationCustomizerProvider
  23. * @see DemoPropagatorProvider
  24. */
  25. @AutoService(AutoConfigurationCustomizerProvider.class)
  26. public class DemoAutoConfigurationCustomizerProvider
  27. implements AutoConfigurationCustomizerProvider {
  28. @Override
  29. public void customize(AutoConfigurationCustomizer autoConfiguration) {
  30. autoConfiguration
  31. .addTracerProviderCustomizer(this::configureSdkTracerProvider)
  32. .addPropertiesSupplier(this::getDefaultProperties);
  33. }
  34. private SdkTracerProviderBuilder configureSdkTracerProvider(
  35. SdkTracerProviderBuilder tracerProvider, ConfigProperties config) {
  36. return tracerProvider
  37. .setIdGenerator(new DemoIdGenerator())
  38. .setSpanLimits(SpanLimits.builder().setMaxNumberOfAttributes(1024).build())
  39. .addSpanProcessor(new DemoSpanProcessor())
  40. .addSpanProcessor(SimpleSpanProcessor.create(new DemoSpanExporter()));
  41. }
  42. private Map<String, String> getDefaultProperties() {
  43. Map<String, String> properties = new HashMap<>();
  44. properties.put("otel.exporter.otlp.endpoint", "http://backend:8080");
  45. properties.put("otel.exporter.otlp.insecure", "true");
  46. properties.put("otel.config.max.attrs", "16");
  47. properties.put("otel.traces.sampler", "demo");
  48. return properties;
  49. }
  50. }