gradle compile 'io.opentelemetry:opentelemetry-api:0.2.0' compile 'io.opentelemetry:opentelemetry-sdk:0.2.0' <dependency> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-api</artifactId> <version>0.2.0</version> </dependency> <dependency> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-sdk</artifactId> <version>0.2.0</version> </dependency> import io.opentelemetry.exporters.logging.LoggingSpanExporter; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.trace.export.SimpleSpansProcessor; public class OpenTelemetryConfig { public static void configureOpenTelemetry() { LoggingSpanExporter exporter = new LoggingSpanExporter(); SimpleSpansProcessor spansProcessor = SimpleSpansProcessor.newBuilder(exporter).build(); OpenTelemetrySdk.builder() .setTracerProvider(DefaultTracerProvider.builder() .addSpanProcessor(spansProcessor) .build()) .build(); } } import io.opentelemetry.api.metrics.DoubleCounter; import io.opentelemetry.api.metrics.LongCounter; import io.opentelemetry.api.metrics.Meter; import io.opentelemetry.exporters.logging.LoggingMetricExporter; public class PerformanceMetrics { private static final Meter meter = OpenTelemetrySdk.getMeterProvider().get("my-library"); public static final LongCounter requestCounter = meter.longCounterBuilder("requests") .setDescription("Total requests") .setUnit("1") .build(); public static final DoubleCounter latencyCounter = meter.doubleCounterBuilder("latency") .setDescription("Request latency") .setUnit("ms") .build(); public static void recordRequest() { requestCounter.add(1); } public static void recordLatency(double latency) { latencyCounter.add(latency); } public static void exportMetrics() { LoggingMetricExporter exporter = new LoggingMetricExporter(); meter.collectAllMetrics().forEach(exporter::export); } } public class MyLibrary { public void performOperation() { Span span = OpenTelemetrySdk.getTracerProvider() .get("my-library") .spanBuilder("performOperation") .startSpan(); try (Scope scope = span.makeCurrent()) { PerformanceMetrics.recordRequest(); } finally { span.end(); } } }


上一篇:
下一篇:
切换中文