How to prevent OpenTelemtry traces from being printed to console?

100 Views Asked by At

I setup otel traces in my django app, by overriding Gunicorn's post_fork:

import os

from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.http.trace_exporter import \
    OTLPSpanExporter
from opentelemetry.instrumentation.django import DjangoInstrumentor
from opentelemetry.instrumentation.logging import LoggingInstrumentor
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor


def post_fork(server, worker):
    """Configue OpenTelemetry traces."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'solutions.settings')

    resource = Resource.create(attributes={
        "service.name": "solutions"
    })

    trace.set_tracer_provider(TracerProvider(resource=resource))
    span_processor = BatchSpanProcessor(
        OTLPSpanExporter(endpoint="http://grafana-agent-traces.prometheus:4318/v1/traces")
    )
    trace.get_tracer_provider().add_span_processor(span_processor)
    DjangoInstrumentor().instrument()
    LoggingInstrumentor().instrument(set_logging_format=True)

Traces are successfully exported but are also printed to console. How to avoid that?

I have tried to add this, but it has no effect:

logging.getLogger("opentelemetry").setLevel(logging.WARNING)
0

There are 0 best solutions below