Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3eb3f76

Browse files
authored
Merge pull request #177 from cloudforet-io/add-span-kind-for-tracing
chore(tracing): set span kind for client and server
2 parents 24067c9 + c079f84 commit 3eb3f76

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/spaceone/core/connector/space_connector.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from typing import Any, List, Tuple
44
from google.protobuf.json_format import MessageToDict
55
from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator
6+
from opentelemetry import trace
7+
from opentelemetry.trace import SpanKind
68

79
from spaceone.core.connector import BaseConnector
810
from spaceone.core import pygrpc
@@ -13,7 +15,7 @@
1315
__all__ = ["SpaceConnector"]
1416

1517
_LOGGER = logging.getLogger(__name__)
16-
18+
_TRACER = trace.get_tracer(__name__)
1719

1820
class SpaceConnector(BaseConnector):
1921
name = "SpaceConnector"
@@ -46,7 +48,8 @@ def client(self) -> GRPCClient:
4648
return self._client
4749

4850
def dispatch(self, method: str, params: dict = None, **kwargs) -> Any:
49-
return self._call_api(method, params, **kwargs)
51+
with _TRACER.start_as_current_span(method, kind=SpanKind.CLIENT):
52+
return self._call_api(method, params, **kwargs)
5053

5154
def _call_api(
5255
self,

src/spaceone/core/service/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from typing import Generator, Union, Literal, Any
77

88
from opentelemetry import trace
9-
from opentelemetry.trace import format_trace_id
9+
from opentelemetry.trace import format_trace_id, SpanKind
1010
from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator
1111

1212
from spaceone.core.base import CoreObject
@@ -129,7 +129,9 @@ def wrapped_func(self, params: dict):
129129
_traceparent = self.metadata.get("traceparent")
130130

131131
with _TRACER.start_as_current_span(
132-
f"{self.resource}.{_verb}", context=_get_span_context(_traceparent)
132+
f"{self.resource}.{_verb}",
133+
context=_get_span_context(_traceparent),
134+
kind=SpanKind.SERVER
133135
) as span:
134136
self.current_span_context = span.get_span_context()
135137
trace_id = format_trace_id(self.current_span_context.trace_id)

0 commit comments

Comments
 (0)