Class MetadataGetter

java.lang.Object
io.grpc.opentelemetry.MetadataGetter
All Implemented Interfaces:
io.opentelemetry.context.propagation.TextMapGetter<io.grpc.Metadata>

final class MetadataGetter extends Object implements io.opentelemetry.context.propagation.TextMapGetter<io.grpc.Metadata>
A TextMapGetter that reads value from gRPC Metadata. Supports both text and binary headers. Supporting binary header is an optimization path for GrpcTraceBinContextPropagator to work around the lack of binary propagator API and thus avoid base64 (de)encoding when passing data between propagator API interfaces.
  • Field Details

    • logger

      private static final Logger logger
    • INSTANCE

      private static final MetadataGetter INSTANCE
  • Constructor Details

    • MetadataGetter

      MetadataGetter()
  • Method Details

    • getInstance

      public static MetadataGetter getInstance()
    • keys

      public Iterable<String> keys(io.grpc.Metadata carrier)
      Specified by:
      keys in interface io.opentelemetry.context.propagation.TextMapGetter<io.grpc.Metadata>
    • get

      @Nullable public String get(@Nullable io.grpc.Metadata carrier, String key)
      Specified by:
      get in interface io.opentelemetry.context.propagation.TextMapGetter<io.grpc.Metadata>
    • getBinary

      @Nullable public byte[] getBinary(@Nullable io.grpc.Metadata carrier, String key)