Class OpenTelemetryLifecycleObserver
java.lang.Object
com.soklet.otel.OpenTelemetryLifecycleObserver
- All Implemented Interfaces:
LifecycleObserver, AutoCloseable
@ThreadSafe
public final class OpenTelemetryLifecycleObserver
extends Object
implements LifecycleObserver, AutoCloseable
OpenTelemetry-backed
LifecycleObserver that emits server spans for Soklet lifecycle events.
This type complements OpenTelemetryMetricsCollector: metrics remain low-cardinality aggregate telemetry,
while this observer emits per-request and per-stream spans.
- Author:
- Mark Allen
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionbuilder()voidclose()voiddidCreateMcpSession(@NonNull Request request, @NonNull Class<? extends McpEndpoint> endpointClass, @NonNull String sessionId) voidvoiddidEstablishSseConnection(@NonNull SseConnection sseConnection) voiddidFailToWriteSseComment(@NonNull SseConnection sseConnection, @NonNull SseComment sseComment, @NonNull Duration writeDuration, @NonNull Throwable throwable) voiddidFailToWriteSseEvent(@NonNull SseConnection sseConnection, @NonNull SseEvent sseEvent, @NonNull Duration writeDuration, @NonNull Throwable throwable) voiddidFinishMcpRequestHandling(@NonNull Request request, @NonNull Class<? extends McpEndpoint> endpointClass, @Nullable String sessionId, @NonNull String jsonRpcMethod, @Nullable McpJsonRpcRequestId jsonRpcRequestId, @NonNull McpRequestOutcome requestOutcome, @Nullable McpJsonRpcError jsonRpcError, @NonNull Duration duration, @NonNull List<@NonNull Throwable> throwables) voiddidFinishRequestHandling(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse, @NonNull Duration duration, @NonNull List<@NonNull Throwable> throwables) voiddidStartMcpRequestHandling(@NonNull Request request, @NonNull Class<? extends McpEndpoint> endpointClass, @Nullable String sessionId, @NonNull String jsonRpcMethod, @Nullable McpJsonRpcRequestId jsonRpcRequestId) voiddidStartRequestHandling(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod) voiddidTerminateMcpSseStream(@NonNull McpSseStream stream, @NonNull StreamTermination termination) voiddidTerminateResponseStream(@NonNull StreamingResponseHandle streamingResponse, @NonNull StreamTermination termination) voiddidTerminateSseConnection(@NonNull SseConnection sseConnection, @NonNull StreamTermination termination) voiddidWriteSseComment(@NonNull SseConnection sseConnection, @NonNull SseComment sseComment, @NonNull Duration writeDuration) voiddidWriteSseEvent(@NonNull SseConnection sseConnection, @NonNull SseEvent sseEvent, @NonNull Duration writeDuration) fromOpenTelemetry(@NonNull OpenTelemetry openTelemetry) fromTracer(@NonNull Tracer tracer) withOpenTelemetry(@NonNull OpenTelemetry openTelemetry) withTracer(@NonNull Tracer tracer) Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface LifecycleObserver
didAcceptConnection, didAcceptRequest, didFailToAcceptConnection, didFailToAcceptRequest, didFailToEstablishSseConnection, didFailToReadRequest, didFailToStartHttpServer, didFailToStartMcpServer, didFailToStartSoklet, didFailToStartSseServer, didFailToStopHttpServer, didFailToStopMcpServer, didFailToStopSoklet, didFailToStopSseServer, didFailToWriteResponse, didReadRequest, didReceiveLogEvent, didStartHttpServer, didStartMcpServer, didStartSoklet, didStartSseServer, didStopHttpServer, didStopMcpServer, didStopSoklet, didStopSseServer, didTerminateMcpSession, didWriteResponse, willAcceptConnection, willAcceptRequest, willEstablishSseConnection, willReadRequest, willStartHttpServer, willStartMcpServer, willStartSoklet, willStartSseServer, willStopHttpServer, willStopMcpServer, willStopSoklet, willStopSseServer, willTerminateMcpSseStream, willTerminateResponseStream, willTerminateSseConnection, willWriteResponse, willWriteSseComment, willWriteSseEvent
-
Method Details
-
builder
-
withOpenTelemetry
public static @NonNull OpenTelemetryLifecycleObserver.Builder withOpenTelemetry(@NonNull OpenTelemetry openTelemetry) -
withTracer
-
fromOpenTelemetry
public static @NonNull OpenTelemetryLifecycleObserver fromOpenTelemetry(@NonNull OpenTelemetry openTelemetry) -
fromTracer
-
getActiveSpanCount
-
close
- Specified by:
closein interfaceAutoCloseable
-
didStartRequestHandling
public void didStartRequestHandling(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod) - Specified by:
didStartRequestHandlingin interfaceLifecycleObserver
-
didFinishRequestHandling
public void didFinishRequestHandling(@NonNull ServerType serverType, @NonNull Request request, @Nullable ResourceMethod resourceMethod, @NonNull MarshaledResponse marshaledResponse, @NonNull Duration duration, @NonNull List<@NonNull Throwable> throwables) - Specified by:
didFinishRequestHandlingin interfaceLifecycleObserver
-
didTerminateResponseStream
public void didTerminateResponseStream(@NonNull StreamingResponseHandle streamingResponse, @NonNull StreamTermination termination) - Specified by:
didTerminateResponseStreamin interfaceLifecycleObserver
-
didEstablishSseConnection
- Specified by:
didEstablishSseConnectionin interfaceLifecycleObserver
-
didWriteSseEvent
public void didWriteSseEvent(@NonNull SseConnection sseConnection, @NonNull SseEvent sseEvent, @NonNull Duration writeDuration) - Specified by:
didWriteSseEventin interfaceLifecycleObserver
-
didFailToWriteSseEvent
public void didFailToWriteSseEvent(@NonNull SseConnection sseConnection, @NonNull SseEvent sseEvent, @NonNull Duration writeDuration, @NonNull Throwable throwable) - Specified by:
didFailToWriteSseEventin interfaceLifecycleObserver
-
didWriteSseComment
public void didWriteSseComment(@NonNull SseConnection sseConnection, @NonNull SseComment sseComment, @NonNull Duration writeDuration) - Specified by:
didWriteSseCommentin interfaceLifecycleObserver
-
didFailToWriteSseComment
public void didFailToWriteSseComment(@NonNull SseConnection sseConnection, @NonNull SseComment sseComment, @NonNull Duration writeDuration, @NonNull Throwable throwable) - Specified by:
didFailToWriteSseCommentin interfaceLifecycleObserver
-
didTerminateSseConnection
public void didTerminateSseConnection(@NonNull SseConnection sseConnection, @NonNull StreamTermination termination) - Specified by:
didTerminateSseConnectionin interfaceLifecycleObserver
-
didStartMcpRequestHandling
public void didStartMcpRequestHandling(@NonNull Request request, @NonNull Class<? extends McpEndpoint> endpointClass, @Nullable String sessionId, @NonNull String jsonRpcMethod, @Nullable McpJsonRpcRequestId jsonRpcRequestId) - Specified by:
didStartMcpRequestHandlingin interfaceLifecycleObserver
-
didFinishMcpRequestHandling
public void didFinishMcpRequestHandling(@NonNull Request request, @NonNull Class<? extends McpEndpoint> endpointClass, @Nullable String sessionId, @NonNull String jsonRpcMethod, @Nullable McpJsonRpcRequestId jsonRpcRequestId, @NonNull McpRequestOutcome requestOutcome, @Nullable McpJsonRpcError jsonRpcError, @NonNull Duration duration, @NonNull List<@NonNull Throwable> throwables) - Specified by:
didFinishMcpRequestHandlingin interfaceLifecycleObserver
-
didCreateMcpSession
public void didCreateMcpSession(@NonNull Request request, @NonNull Class<? extends McpEndpoint> endpointClass, @NonNull String sessionId) - Specified by:
didCreateMcpSessionin interfaceLifecycleObserver
-
didEstablishMcpSseStream
- Specified by:
didEstablishMcpSseStreamin interfaceLifecycleObserver
-
didTerminateMcpSseStream
public void didTerminateMcpSseStream(@NonNull McpSseStream stream, @NonNull StreamTermination termination) - Specified by:
didTerminateMcpSseStreamin interfaceLifecycleObserver
-