/* * Copyright The OpenTelemetry Authors * SPDX-License-Identifier: Apache-2.0 */ package com.example.javaagent; import io.opentelemetry.context.Context; import io.opentelemetry.sdk.common.CompletableResultCode; import io.opentelemetry.sdk.trace.ReadWriteSpan; import io.opentelemetry.sdk.trace.ReadableSpan; import io.opentelemetry.sdk.trace.SpanProcessor; import org.apache.commons.lang3.RandomStringUtils; /** * See * OpenTelemetry Specification for more information about {@link SpanProcessor}. * * @see DemoAutoConfigurationCustomizerProvider */ public class DemoSpanProcessor implements SpanProcessor { @Override public void onStart(Context parentContext, ReadWriteSpan span) { /* The sole purpose of this attribute is to introduce runtime dependency on some external library. We need this to demonstrate how extension can use them. */ span.setAttribute("random", RandomStringUtils.random(10)); span.setAttribute("custom", "demo"); } @Override public boolean isStartRequired() { return true; } @Override public void onEnd(ReadableSpan span) {} @Override public boolean isEndRequired() { return false; } @Override public CompletableResultCode shutdown() { return CompletableResultCode.ofSuccess(); } @Override public CompletableResultCode forceFlush() { return CompletableResultCode.ofSuccess(); } }