| title | summary | tags |
|---|---|---|
Datadog |
Add Datadog tracing to your GraphQL server. |
tracing |
This extension adds support for tracing with Datadog.
Make sure you have ddtrace installed before using this extension.
pip install ddtraceimport strawberry
from strawberry.extensions.tracing import DatadogTracingExtension
@strawberry.type
class Query:
@strawberry.field
def hello(self) -> str:
return "Hello, world!"
schema = strawberry.Schema(
Query,
extensions=[
DatadogTracingExtension,
],
)If you are not running in an Async context then you'll need to use the sync version:
import strawberry
from strawberry.extensions.tracing import DatadogTracingExtensionSync
@strawberry.type
class Query:
@strawberry.field
def hello(self) -> str:
return "Hello, world!"
schema = strawberry.Schema(
Query,
extensions=[
DatadogTracingExtensionSync,
],
)No arguments
You can customize any of the spans or add tags to them by overriding the
create_span method.
Example:
from ddtrace import Span
from strawberry.extensions import LifecycleStep
from strawberry.extensions.tracing import DatadogTracingExtension
class DataDogExtension(DatadogTracingExtension):
def create_span(
self,
lifecycle_step: LifecycleStep,
name: str,
**kwargs,
) -> Span:
span = super().create_span(lifecycle_step, name, **kwargs)
if lifecycle_step == LifecycleStep.OPERATION:
span.set_tag("graphql.query", self.execution_context.query)
return span