Solves. #6991 This PR implements the request portion of the new gRPC metadata instrumentation spec: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/rpc.md#grpc-request-and-response-metadata The changes include: - new CommonConfig entry for desired gRPC metadata values: 'otel.instrumentation.grpc.capture-metadata.request' (Similar to http headers) - setting the desired metadata values in GrpcTelemetry - new property in GrpcAttributesExtractor that holds a reference to the GrpcRpcAttributesGetter - new property in GrpcAttributesExtractor that stores the desired values so it can iterate them and extract each one from the request - inject the GrpcRpcAttributesGetter to GrpcAttributesExtractor (in GrpcTelemetryBuilder) - logic in GrpcRpcAttributesGetter to safely extract the gRPC metadata value - A new test in GrpcTest that makes sure that when a certain metadata key name is inserted, it also ends up in the span attributes ** Doesn't take care of the response because gRPC response is not implemented in java-instrumentation yet. (This is absolutely necessary but out of scope for this PR) ** "metadataValue" is only implemented inside GrpcRpcAttributesGetter and not in RpcAttributesGetter to avoid providing implementations for every RpcAttributesGetter in the repo as this PR only focuses on gRPC. Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com> |
||
---|---|---|
.. | ||
src | ||
build.gradle.kts |