Class TracesCollector

java.lang.Object
java.util.concurrent.SubmissionPublisher<RECORD>
io.mishmash.opentelemetry.server.collector.AbstractCollector<io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,Span>
io.mishmash.opentelemetry.server.collector.TracesCollector
All Implemented Interfaces:
AutoCloseable, Flow.Publisher<Span>

public class TracesCollector extends AbstractCollector<io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,Span>
Processes incoming OpenTelemetry traces packets - extracts individual Spans from a packet and queues them to all SpansSubscribers. Also notifies the client on potential errors.
  • Constructor Details

    • TracesCollector

      public TracesCollector(io.grpc.MethodDescriptor<io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse> exportMethod, Instrumentation otel)
      Creates a new traces collector to be added to a Vert.x routing context.
      Parameters:
      exportMethod - the gRPC method to be attached to
      otel - a helper for own telemetry needs
  • Method Details

    • loadBatch

      public Batch<Span> loadBatch(io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest request, String transport, String encoding, io.opentelemetry.context.Context otelContext)
      Processes incoming packets (or batches) - extracts and publishes the contained OpenTelemetry Spans (one by one) to all SpansSubscribers.
      Specified by:
      loadBatch in class AbstractCollector<io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,Span>
      Parameters:
      request - the client's OTLP request
      transport - the OTLP transport - "grpc" or "http"
      encoding - the OTLP encoding - "protobuf" or "json"
      otelContext - the Context used for own telemetry
      Returns:
      a new Batch with all items of the request
    • getBatchResponse

      public io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse getBatchResponse(io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest request, Batch<Span> completedBatch, String transport, String encoding)
      Called to compute the correct response to the client after an entire batch (or packet) of OpenTelemetry logs, metrics or spans has been processed.
      Specified by:
      getBatchResponse in class AbstractCollector<io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,Span>
      Parameters:
      request - the original request from the client
      completedBatch - the completed batch of records
      transport - the OTLP transport used - "grpc" or "http"
      encoding - - the OTLP encoding - "protobuf" or "json"
      Returns:
      the correct OTLP reposne to be sent back to the client
    • telemetrySignalType

      protected String telemetrySignalType()
      Returns "traces" as the signal type for this collector's own telemetry.
      Specified by:
      telemetrySignalType in class AbstractCollector<io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest,io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceResponse,Span>
      Returns:
      the signal type