Python library for tracing graphql calls with Datadog
Project description
Python library to trace graphql calls with Datadog.
Compatibility
ddtrace-graphql is tested with:
Python versions: 3.5, 3.6, nightly
graphql-core: 2.0, 1.1.0, latest
ddtrace: 0.11.1, 0.10.1, latest
Screenshots for pyramid app serving GraphQL with tracing enabled:
Installation
Using pip
$ pip install ddtrace-graphql
From source
$ git clone https://github.com/beezz/ddtrace-graphql.git
$ cd ddtrace-graphql && python setup.py install
Usage
To trace all GraphQL requests patch the library. Put this snippet to your application main entry point.
__import__('ddtrace_graphql').patch()
# OR
from ddtrace_graphql import patch
patch()
Check out the datadog trace client for all supported libraries and frameworks.
# app/__init__.py
__import__('ddtrace_graphql').patch()
# from that point all calls to graphql are traced
from graphql import graphql
result = graphql(schema, query)
Trace only certain calls with traced_graphql function
from ddtrace_graphql import traced_graphql
traced_graphql(schema, query)
Configuration
Environment variables
- DDTRACE_GRAPHQL_SERVICE:
Define service name under which traces are shown in Datadog. Default value is graphql
$ export DDTRACE_GRAPHQL_SERVICE=foobar.graphql
span_kwargs
Default arguments passed to the tracing context manager can be updated using span_kwargs argument of ddtrace_graphql.patch or ddtrace_graphql.traced_graphql functions.
Default values:
- name:
Wrapped resource name. Default graphql.graphql.
- span_type:
Span type. Default graphql.
- service:
Service name. Defaults to DDTRACE_GRAPHQL_SERVICE environment variable if present, else graphql.
- resource:
Processed resource. Defaults to query / mutation signature.
For more information visit ddtrace.Tracer.trace documentation.
from ddtrace_graphql import patch
patch(span_kwargs=dict(service='foo.graphql'))
from ddtrace_graphql import traced_graphql
traced_graphql(schema, query, span_kwargs=dict(resource='bar.resource'))
Development
Install from source in development mode
$ git clone https://github.com/beezz/ddtrace-graphql.git
$ pip install --editable ddtrace-graphql[test]
Run tests
$ cd ddtrace-graphql
$ tox
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ddtrace_graphql-0.0.9-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60518ed89776fd0f3d649b0dc11f2058fe2da69cef6b251766a819c98f9193ac |
|
MD5 | 71e361e7510e1bc3beaee46ff0cc196e |
|
BLAKE2b-256 | 953a27b820e67f1fdd4342e5bfae6dcd33c37dd9e9fb28a16bfe492b14d8871e |