implementation 'io.opentelemetry:opentelemetry-api:1.4.0' implementation 'io.opentelemetry:opentelemetry-sdk:1.4.0' import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.trace.Tracer; public class Application { private static final Tracer TRACER = GlobalOpenTelemetry.getTracer("my-library"); public static void main(String[] args) { GlobalOpenTelemetry.setTracerProvider(SdkTracerProvider.builder().build()); // ... } } import io.opentelemetry.context.Scope; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.StatusCode; import io.opentelemetry.api.trace.Tracer; import io.opentelemetry.api.trace.TracerProvider; import io.opentelemetry.api.trace.attributes.SemanticAttributes; public class MyLibraryClass { private static final Tracer TRACER = GlobalOpenTelemetry.getTracer("my-library"); public void myMethod() { Span span = TRACER.spanBuilder("mySpan").setAttribute(SemanticAttributes.HTTP_METHOD, "GET").startSpan(); try (Scope ignored = TRACER.withSpan(span)) { // ... span.setStatus(StatusCode.OK); } catch (Exception e) { span.setStatus(StatusCode.ERROR); } finally { span.end(); } } } implementation 'io.opentelemetry.exporter:opentelemetry-exporter-zipkin:1.4.0' import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter; import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; import io.opentelemetry.sdk.trace.export.SpanExporter; public class Application { public static void main(String[] args) { GlobalOpenTelemetry.setTracerProvider(SdkTracerProvider.builder().build()); SpanExporter exporter = ZipkinSpanExporter.builder() .setEndpoint("http://localhost:9411/api/v2/spans") .build(); SimpleSpanProcessor spanProcessor = SimpleSpanProcessor.builder(exporter).build(); GlobalOpenTelemetry.getTracerProvider().addSpanProcessor(spanProcessor); // ... } }


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