I'm using the OpenTelemetry LoggingInstrumentor to...
# support
s
I'm using the OpenTelemetry LoggingInstrumentor to push logs to SigNoz. The traces are being captured and displayed correctly in SigNoz, but the logs are not appearing in SigNoz. I have enabled automatic logging instrumentation using LoggingInstrumentor().instrument(set_logging_format=True), but there seems to be an issue with log ingestion. I've verified that my OpenTelemetry setup is correctly configured for tracing, and the OTLP gRPC exporter is successfully sending trace data. However, it appears that the logs are not being forwarded properly to SigNoz. I suspect there might be a missing configuration, an issue with the log exporter, or an incompatibility between LoggingInstrumentor and SigNoz's log processing pipeline. Expectation: I expected that enabling OpenTelemetry's LoggingInstrumentor with LoggingInstrumentor().instrument(set_logging_format=True) would automatically capture and send logs to SigNoz, similar to how traces are being successfully pushed. I anticipated seeing both traces and logs in the SigNoz dashboard, allowing for better observability and correlation between logs and traces. What I Tried: Configured OpenTelemetry for Logging: Used LoggingInstrumentor().instrument(set_logging_format=True) to enable automatic log instrumentation. Ensured that OpenTelemetry SDK and the OTLP gRPC exporter were correctly set up. Verified Trace Data: Checked that traces were successfully being sent and displayed in SigNoz, confirming that the OTLP exporter is functioning. Checked Logging Output Locally: Ensured that logs were being generated and written to local log files or console
Copy code
Code:

from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.resources import Resource
from opentelemetry.instrumentation.logging import LoggingInstrumentor
import logging

# Configure the tracer to use OTLP exporter
resource = Resource(attributes={
    "service.name": "your_service_name"
})

provider = TracerProvider(resource=resource)
trace.set_tracer_provider(provider)

otlp_exporter = OTLPSpanExporter(
    endpoint="***********:4317",
    insecure=True
)

span_processor = BatchSpanProcessor(otlp_exporter)
provider.add_span_processor(span_processor)

# Initialize automatic logging instrumentation
LoggingInstrumentor().instrument(set_logging_format=True)

# Example of logging
logging.getLogger().setLevel(<http://logging.INFO|logging.INFO>)

def my_function():
    <http://logging.info|logging.info>("This is an info log from my_function")
Could you please help me fix this?
v
@nitya-signoz
n
I think I saw the same in stackoverflow where I replied.
s
Thanks for the update.