DatadogExtension
This extension adds support for tracing with Datadog.
Make sure you have ddtrace installed before using this extension.
pip install ddtrace Usage example:
import strawberryfrom strawberry.extensions.tracing import DatadogTracingExtension
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 strawberryfrom strawberry.extensions.tracing import DatadogTracingExtensionSync
schema = strawberry.Schema( Query, extensions=[ DatadogTracingExtensionSync, ],) API reference:
No arguments
Extending the extension
Overriding the create_span method
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 LifecycleStepfrom 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