Python opentracing.InvalidCarrierException() Examples
The following are 12
code examples of opentracing.InvalidCarrierException().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
opentracing
, or try the search function
.
Example #1
Source File: lightstep_binary_propagator.py From lightstep-tracer-python with MIT License | 6 votes |
def inject(self, span_context, carrier): if type(carrier) is not bytearray: raise InvalidCarrierException() state = BinaryCarrier() basic_ctx = state.basic_ctx basic_ctx.trace_id = span_context.trace_id basic_ctx.span_id = span_context.span_id basic_ctx.sampled = span_context.sampled if span_context.baggage is not None: for key in span_context.baggage: basic_ctx.baggage_items[key] = span_context.baggage[key] serializedProto = state.SerializeToString() encoded = standard_b64encode(serializedProto) carrier.extend(encoded)
Example #2
Source File: _server.py From python-grpc with Apache License 2.0 | 6 votes |
def _start_span(self, servicer_context, method): span_context = None error = None metadata = servicer_context.invocation_metadata() try: if metadata: span_context = self._tracer.extract( opentracing.Format.HTTP_HEADERS, dict(metadata)) except (opentracing.UnsupportedFormatException, opentracing.InvalidCarrierException, opentracing.SpanContextCorruptedException) as e: logging.exception('tracer.extract() failed') error = e tags = { ot_tags.COMPONENT: 'grpc', ot_tags.SPAN_KIND: ot_tags.SPAN_KIND_RPC_SERVER } _add_peer_tags(servicer_context.peer(), tags) span = self._tracer.start_span( operation_name=method, child_of=span_context, tags=tags) if error is not None: span.log_kv({'event': 'error', 'error.object': error}) return span
Example #3
Source File: binary_propagator.py From opentracing-python with Apache License 2.0 | 5 votes |
def inject(self, span_context, carrier): if type(carrier) is not bytearray: raise InvalidCarrierException() data = pickle.dumps(span_context) carrier.extend(data)
Example #4
Source File: binary_propagator.py From opentracing-python with Apache License 2.0 | 5 votes |
def extract(self, carrier): if type(carrier) is not bytearray: raise InvalidCarrierException() try: span_context = pickle.loads(carrier) except (EOFError, pickle.PickleError): raise SpanContextCorruptedException() return span_context
Example #5
Source File: tracing.py From python-flask with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _before_request_fn(self, attributes): request = stack.top.request operation_name = request.endpoint headers = {} for k, v in request.headers: headers[k.lower()] = v try: span_ctx = self.tracer.extract(opentracing.Format.HTTP_HEADERS, headers) scope = self.tracer.start_active_span(operation_name, child_of=span_ctx) except (opentracing.InvalidCarrierException, opentracing.SpanContextCorruptedException): scope = self.tracer.start_active_span(operation_name) self._current_scopes[request] = scope span = scope.span span.set_tag(tags.COMPONENT, 'Flask') span.set_tag(tags.HTTP_METHOD, request.method) span.set_tag(tags.HTTP_URL, request.base_url) span.set_tag(tags.SPAN_KIND, tags.SPAN_KIND_RPC_SERVER) for attr in attributes: if hasattr(request, attr): payload = getattr(request, attr) if payload not in ('', b''): # python3 span.set_tag(attr, str(payload)) self._call_start_span_cb(span, request)
Example #6
Source File: lightstep_binary_propagator.py From lightstep-tracer-python with MIT License | 5 votes |
def extract(self, carrier): if type(carrier) is not bytearray: raise InvalidCarrierException() serializedProto = standard_b64decode(carrier) state = BinaryCarrier() state.ParseFromString(bytes(serializedProto)) baggage = {} for k in state.basic_ctx.baggage_items: baggage[k] = state.basic_ctx.baggage_items[k] return SpanContext( span_id=state.basic_ctx.span_id, trace_id=state.basic_ctx.trace_id, baggage=baggage, sampled=state.basic_ctx.sampled)
Example #7
Source File: binary_propagator.py From basictracer-python with Apache License 2.0 | 5 votes |
def inject(self, span_context, carrier): if type(carrier) is not bytearray: raise InvalidCarrierException() state = TracerState() state.trace_id = span_context.trace_id state.span_id = span_context.span_id state.sampled = span_context.sampled if span_context.baggage is not None: for key in span_context.baggage: state.baggage_items[key] = span_context.baggage[key] # The binary format is {uint32}{protobuf} using big-endian for the uint carrier.extend(struct.pack('>I', state.ByteSize())) carrier.extend(state.SerializeToString())
Example #8
Source File: binary_propagator.py From basictracer-python with Apache License 2.0 | 5 votes |
def extract(self, carrier): if type(carrier) is not bytearray: raise InvalidCarrierException() state = TracerState() state.ParseFromString(bytes(carrier[_proto_size_bytes:])) baggage = {} for k in state.baggage_items: baggage[k] = state.baggage_items[k] return SpanContext( span_id=state.span_id, trace_id=state.trace_id, baggage=baggage, sampled=state.sampled)
Example #9
Source File: _client.py From python-grpc with Apache License 2.0 | 5 votes |
def _inject_span_context(tracer, span, metadata): headers = {} try: tracer.inject(span.context, opentracing.Format.HTTP_HEADERS, headers) except (opentracing.UnsupportedFormatException, opentracing.InvalidCarrierException, opentracing.SpanContextCorruptedException) as e: logging.exception('tracer.inject() failed') span.log_kv({'event': 'error', 'error.object': e}) return metadata metadata = () if metadata is None else tuple(metadata) return metadata + tuple((k.lower(), v) for (k, v) in iteritems(headers))
Example #10
Source File: tracer.py From apm-agent-python with BSD 3-Clause "New" or "Revised" License | 5 votes |
def inject(self, span_context, format, carrier): if format in (Format.HTTP_HEADERS, Format.TEXT_MAP): if not isinstance(carrier, dict): raise InvalidCarrierException("carrier for {} format should be dict-like".format(format)) val = span_context.trace_parent.to_ascii() carrier[constants.TRACEPARENT_HEADER_NAME] = val if self._agent.config.use_elastic_traceparent_header: carrier[constants.TRACEPARENT_LEGACY_HEADER_NAME] = val return raise UnsupportedFormatException
Example #11
Source File: tracer.py From sofa-bolt-python with Apache License 2.0 | 5 votes |
def extract(self, format, carrier): """ return a span context :param format: :param carrier: dict: currently support: SofaHeader(dict) :return: """ if format != opentracing.Format.TEXT_MAP: raise opentracing.UnsupportedFormatException() try: d = {k.split('.', 1)[1]: carrier[k] for k in carrier if k.startswith(self._prefix)} return self.spanContextCls(None, **d) except: raise opentracing.InvalidCarrierException()
Example #12
Source File: tracing.py From python-django with BSD 3-Clause "New" or "Revised" License | 4 votes |
def _apply_tracing(self, request, view_func, attributes): ''' Helper function to avoid rewriting for middleware and decorator. Returns a new span from the request with logged attributes and correct operation name from the view_func. ''' # strip headers for trace info headers = {} for k, v in six.iteritems(request.META): k = k.lower().replace('_', '-') if k.startswith('http-'): k = k[5:] headers[k] = v # start new span from trace info operation_name = view_func.__name__ try: span_ctx = self.tracer.extract(opentracing.Format.HTTP_HEADERS, headers) scope = self.tracer.start_active_span(operation_name, child_of=span_ctx) except (opentracing.InvalidCarrierException, opentracing.SpanContextCorruptedException): scope = self.tracer.start_active_span(operation_name) # add span to current spans self._current_scopes[request] = scope # standard tags scope.span.set_tag(tags.COMPONENT, 'django') scope.span.set_tag(tags.SPAN_KIND, tags.SPAN_KIND_RPC_SERVER) scope.span.set_tag(tags.HTTP_METHOD, request.method) scope.span.set_tag(tags.HTTP_URL, request.get_full_path()) # log any traced attributes for attr in attributes: if hasattr(request, attr): payload = str(getattr(request, attr)) if payload: scope.span.set_tag(attr, payload) # invoke the start span callback, if any self._call_start_span_cb(scope.span, request) return scope