-
Notifications
You must be signed in to change notification settings - Fork 735
Closed
Labels
Description
Describe your environment
Mac OS X
Python 3.9.6
Steps to reproduce
Try to use LogRecord described here: https://opentelemetry-python.readthedocs.io/en/latest/api/_logs.html#opentelemetry._logs.LogRecord
The docs don't say how to construct the LogRecord. I tried this:
logger_provider = LoggerProvider(
resource=Resource.create(
{
"service.name": "shoppingcart",
"service.instance.id": "instance-12",
}
),
)
set_logger_provider(logger_provider)
_logger = _logs.get_logger("bridge-logger")
logRecord = _logs.LogRecord()
_logger.emit(logRecord)
What is the expected behavior?
An empty log record outputed.
What is the actual behavior?
Exception while exporting logs.
Traceback (most recent call last):
File "/Users/tnajaryan/work/experiments/otel-python/lib/python3.9/site-packages/opentelemetry/sdk/_logs/_internal/export/__init__.py", line 312, in _export_batch
self._exporter.export(self._log_records[:idx]) # type: ignore
File "/Users/tnajaryan/work/experiments/otel-python/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/grpc/_log_exporter/__init__.py", line 108, in export
return self._export(batch)
File "/Users/tnajaryan/work/experiments/otel-python/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/grpc/exporter.py", line 263, in _export
request=self._translate_data(data),
File "/Users/tnajaryan/work/experiments/otel-python/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/grpc/_log_exporter/__init__.py", line 105, in _translate_data
return encode_logs(data)
File "/Users/tnajaryan/work/experiments/otel-python/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py", line 38, in encode_logs
return ExportLogsServiceRequest(resource_logs=_encode_resource_logs(batch))
File "/Users/tnajaryan/work/experiments/otel-python/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py", line 59, in _encode_resource_logs
sdk_resource = sdk_log.log_record.resource
AttributeError: 'LogRecord' object has no attribute 'resource'
I can't see a way to supply the 'resource', the LogRecord() constructor does not accept one. Besides, I should not need to, it should use the one given to LoggerProvider
.
Additional context
Part of review open-telemetry/community#1751
luccabbjordivilaseca
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done
Status
Done