Docs
General
Types
Codegen
Extensions
>Errors
>Guides
Editor integration
Concepts
Integrations
Federation
Operations
OpenTelemetryExtension
This extension adds tracing information that is compatible with Open Telemetry.
📝 Note
This extension requires additional requirements:
pip install 'strawberry-graphql[opentelemetry]'
Usage example:
import strawberryfrom strawberry.extensions.tracing import OpenTelemetryExtension schema = strawberry.Schema( Query, extensions=[ OpenTelemetryExtension, ],)
📝 Note
If you are not running in an Async context then you'll need to use the sync version:
import strawberryfrom strawberry.extensions.tracing import OpenTelemetryExtensionSync schema = strawberry.Schema( Query, extensions=[ OpenTelemetryExtensionSync, ],)
API reference:
class OpenTelemetryExtension(arg_filter=None): ...
arg_filter: Optional[ArgFilter]
A function to filter certain field arguments from being included in the tracing data.
ArgFilter = Callable[[Dict[str, Any], GraphQLResolveInfo], Dict[str, Any]]
More examples:
Using arg_filter
import strawberryfrom strawberry.extensions.tracing import OpenTelemetryExtensionSync
def arg_filter(kwargs, info): filtered_kwargs = {} for name, value in kwargs: # Never include any arguments called "password" if name == "password": continue filtered_kwargs[name] = value return filtered_kwargs schema = strawberry.Schema( Query, extensions=[ OpenTelemetryExtensionSync( arg_filter=arg_filter, ), ],)