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, ), ])