py_zipkin/encoding/_helpers.py
def build_v1_span(self):
        """Builds and returns a V1 Span.

        :return: newly generated _V1Span
        :rtype: _V1Span
        """
        # We are simulating a full two-part span locally, so set cs=sr and ss=cr
        full_annotations = OrderedDict([
            ('cs', self.timestamp),
            ('sr', self.timestamp),
            ('ss', self.timestamp + self.duration),
            ('cr', self.timestamp + self.duration),
        ])

        if self.kind != Kind.LOCAL:
            # If kind is not LOCAL, then we only want client or
            # server side annotations.
            for ann in _DROP_ANNOTATIONS_BY_KIND[self.kind]:
                del full_annotations[ann]

        # Add user-defined annotations. We write them in full_annotations
        # instead of the opposite so that user annotations will override
        # any automatically generated annotation.
        full_annotations.update(self.annotations)

        return _V1Span(
            trace_id=self.trace_id,
            name=self.name,
            parent_id=self.parent_id,
            id=self.span_id,
            timestamp=self.timestamp if self.shared is False else None,
            duration=self.duration if self.shared is False else None,
            endpoint=self.local_endpoint,
            annotations=full_annotations,
            binary_annotations=self.tags,
            remote_endpoint=self.remote_endpoint,
        )
def build_v1_span(self):
        # We are simulating a full two-part span locally, so set cs=sr and ss=cr
        full_annotations = OrderedDict([
            ('cs', self.timestamp),
            ('sr', self.timestamp),
            ('ss', self.timestamp + self.duration),
            ('cr', self.timestamp + self.duration),
        ])

        if self.kind != Kind.LOCAL:
            # If kind is not LOCAL, then we only want client or
            # server side annotations.
            for ann in _DROP_ANNOTATIONS_BY_KIND[self.kind]:
                del full_annotations[ann]

        # Add user-defined annotations. We write them in full_annotations
        # instead of the opposite so that user annotations will override
        # any automatically generated annotation.
        full_annotations.update(self.annotations)

        return _V1Span(
            trace_id=self.trace_id,
            name=self.name,
            parent_id=self.parent_id,
            id=self.span_id,
            timestamp=self.timestamp if self.shared is False else None,
            duration=self.duration if self.shared is False else None,
            endpoint=self.local_endpoint,
            annotations=full_annotations,
            binary_annotations=self.tags,
            remote_endpoint=self.remote_endpoint,
        )
def build_v1_span ( self ) : # We are simulating a full two-part span locally, so set cs=sr and ss=cr full_annotations = OrderedDict ( [ ( 'cs' , self . timestamp ) , ( 'sr' , self . timestamp ) , ( 'ss' , self . timestamp + self . duration ) , ( 'cr' , self . timestamp + self . duration ) , ] ) if self . kind != Kind . LOCAL : # If kind is not LOCAL, then we only want client or # server side annotations. for ann in _DROP_ANNOTATIONS_BY_KIND [ self . kind ] : del full_annotations [ ann ] # Add user-defined annotations. We write them in full_annotations # instead of the opposite so that user annotations will override # any automatically generated annotation. full_annotations . update ( self . annotations ) return _V1Span ( trace_id = self . trace_id , name = self . name , parent_id = self . parent_id , id = self . span_id , timestamp = self . timestamp if self . shared is False else None , duration = self . duration if self . shared is False else None , endpoint = self . local_endpoint , annotations = full_annotations , binary_annotations = self . tags , remote_endpoint = self . remote_endpoint , )
Builds and returns a V1 Span.

        :return: newly generated _V1Span
        :rtype: _V1Span
Builds and returns a V1 Span .