Created
June 15, 2022 18:51
-
-
Save akiross/22d7ebe7f4936408efa6f306cc73b95c to your computer and use it in GitHub Desktop.
Opentelemetry with Django
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
receivers: | |
otlp: | |
protocols: | |
grpc: | |
processors: | |
# Did not test without this batch, yet. Might be unnecessary. | |
batch: | |
exporters: | |
otlp: | |
endpoint: "api.honeycomb.io:443" | |
headers: | |
"x-honeycomb-team": "MY KEY" | |
logging: | |
loglevel: warn | |
service: | |
pipelines: | |
traces: | |
receivers: [otlp] | |
processors: [batch] | |
exporters: [otlp, logging] | |
metrics: | |
receivers: [otlp] | |
processors: [batch] | |
exporters: [otlp, logging] | |
logs: | |
receivers: [otlp] | |
processors: [batch] | |
exporters: [otlp, logging] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
"""Django's command-line utility for administrative tasks.""" | |
import os | |
import sys | |
from opentelemetry.instrumentation.django import DjangoInstrumentor | |
def main(): | |
"""Run administrative tasks.""" | |
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings") | |
DjangoInstrumentor().instrument() | |
try: | |
from django.core.management import execute_from_command_line | |
except ImportError as exc: | |
raise ImportError( | |
"Couldn't import Django. Are you sure it's installed and " | |
"available on your PYTHONPATH environment variable? Did you " | |
"forget to activate a virtual environment?" | |
) from exc | |
execute_from_command_line(sys.argv) | |
if __name__ == "__main__": | |
main() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
opentelemetry-api = "==1.11.1" | |
opentelemetry-sdk = "==1.11.1" | |
opentelemetry-exporter-otlp = "==1.11.1" | |
opentelemetry-instrumentation-django = { extras = ["asgi"], version = "==0.30b1" } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from opentelemetry import trace | |
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter | |
from opentelemetry.sdk.trace import TracerProvider | |
from opentelemetry.sdk.trace.export import BatchSpanProcessor | |
# Use otel collector agent, with grpc and insecure connection | |
# I couldn't make it work without this BatchSpanProcessor | |
span_exporter = BatchSpanProcessor( | |
OTLPSpanExporter( | |
endpoint="otel:4317", | |
insecure=True, | |
) | |
) | |
tracer_provider = TracerProvider() | |
trace.set_tracer_provider(tracer_provider) | |
tracer_provider.add_span_processor(span_exporter) | |
... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Using this collector container image:
ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.51.0