Django
Django Opentelemetry Tempo 연동 - 2
kyeongjun-dev
2024. 1. 26. 00:18
Tempo로 trace 전송
Tempo는 이미 구성되어 있다고 가정 후, 진행합니다
config/wsgi.py 수정
- 수정 전 ( console exporter)
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
application = get_wsgi_application()
from django.http import HttpResponse
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import (
BatchSpanProcessor,
ConsoleSpanExporter,
)
trace.set_tracer_provider(TracerProvider())
trace.get_tracer_provider().add_span_processor(
BatchSpanProcessor(ConsoleSpanExporter())
)
- 수정 후 (otlp exporter - localhost:4317)
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
application = get_wsgi_application()
from django.http import HttpResponse
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,
ConsoleSpanExporter,
)
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
resource = Resource(attributes={
"service.name": "service-django"
})
trace.set_tracer_provider(
TracerProvider(resource=resource)
)
otlp_exporter = OTLPSpanExporter(endpoint=f"localhost:4317", insecure=True)
trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(otlp_exporter))
grafana에서 tempo 확인 - Resource Service Name에서 config/wsgi.py의 "service.name"에 지정한 "service-django" 선택