123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /*
- * Copyright The OpenTelemetry Authors
- * SPDX-License-Identifier: Apache-2.0
- */
- package com.example.javaagent;
- import com.google.auto.service.AutoService;
- import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer;
- import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizerProvider;
- import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
- import io.opentelemetry.sdk.trace.SdkTracerProviderBuilder;
- import io.opentelemetry.sdk.trace.SpanLimits;
- import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * This is one of the main entry points for Instrumentation Agent's customizations. It allows
- * configuring the {@link AutoConfigurationCustomizer}. See the {@link
- * #customize(AutoConfigurationCustomizer)} method below.
- *
- * <p>Also see https://github.com/open-telemetry/opentelemetry-java/issues/2022
- *
- * @see AutoConfigurationCustomizerProvider
- * @see DemoPropagatorProvider
- */
- @AutoService(AutoConfigurationCustomizerProvider.class)
- public class DemoAutoConfigurationCustomizerProvider
- implements AutoConfigurationCustomizerProvider {
- @Override
- public void customize(AutoConfigurationCustomizer autoConfiguration) {
- autoConfiguration
- .addTracerProviderCustomizer(this::configureSdkTracerProvider)
- .addPropertiesSupplier(this::getDefaultProperties);
- }
- private SdkTracerProviderBuilder configureSdkTracerProvider(
- SdkTracerProviderBuilder tracerProvider, ConfigProperties config) {
- return tracerProvider
- .setIdGenerator(new DemoIdGenerator())
- .setSpanLimits(SpanLimits.builder().setMaxNumberOfAttributes(1024).build())
- .addSpanProcessor(new DemoSpanProcessor())
- .addSpanProcessor(SimpleSpanProcessor.create(new DemoSpanExporter()));
- }
- private Map<String, String> getDefaultProperties() {
- Map<String, String> properties = new HashMap<>();
- properties.put("otel.exporter.otlp.endpoint", "http://backend:8080");
- properties.put("otel.exporter.otlp.insecure", "true");
- properties.put("otel.config.max.attrs", "16");
- properties.put("otel.traces.sampler", "demo");
- return properties;
- }
- }
|