-
Notifications
You must be signed in to change notification settings - Fork 743
Closed
Labels
Description
Describe your environment
Mac OS X
Python 3.9.6
Steps to reproduce
- Run Collector, with OTLP gRPC receiver and debug output.
- Run example:
import logging
from opentelemetry import trace
from opentelemetry import _logs
from opentelemetry._logs import set_logger_provider
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import (
OTLPLogExporter,
)
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from opentelemetry.sdk.resources import Resource
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())
)
logger_provider = LoggerProvider(
resource=Resource.create(
{
"service.name": "shoppingcart2",
"service.instance.id": "instance-23",
},
# Set SchemaURL
"http://opentelemetry.io/schemas/1.0.0"
),
)
set_logger_provider(logger_provider)
exporter = OTLPLogExporter(insecure=True)
logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))
handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider)
# Attach OTLP handler to root logger
logging.getLogger().addHandler(handler)
# Log directly
logging.info("Jackdaws love my big sphinx of quartz.")
# Create different namespaced loggers
logger1 = logging.getLogger("myapp.area1")
logger2 = logging.getLogger("myapp.area2")
logger1.debug("Quick zephyrs blow, vexing daft Jim.")
logger1.info("How quickly daft jumping zebras vex.")
logger2.warning("Jail zesty vixen who grabbed pay from quack.")
logger2.error("The five boxing wizards jump quickly.")
# Trace context correlation
tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("foo"):
# Do something
logger2.error("Hyderabad, we have a major problem.")
logger_provider.shutdown()
What is the expected behavior?
Resource's SchemaURL should be present.
What is the actual behavior?
Resource's SchemaURL is missing:
2023-11-22T13:19:16.798-0500 info ResourceLog #0
Resource SchemaURL:
Resource attributes:
-> telemetry.sdk.language: Str(python)
-> telemetry.sdk.name: Str(opentelemetry)
-> telemetry.sdk.version: Str(1.21.0)
-> service.name: Str(shoppingcart2)
-> service.instance.id: Str(instance-23)
ScopeLogs #0
ScopeLogs SchemaURL:
InstrumentationScope opentelemetry.sdk._logs._internal
LogRecord #0
ObservedTimestamp: 1970-01-01 00:00:00 +0000 UTC
Timestamp: 2023-11-22 18:19:16.742461952 +0000 UTC
SeverityText: WARNING
SeverityNumber: Warn(13)
Body: Str(Jail zesty vixen who grabbed pay from quack.)
Trace ID:
Span ID:
Flags: 0
Additional context
Part of review open-telemetry/community#1751