try:
...
except Exception as e:
logging.warning(e)
{"body":"Exception while exporting logs.","severity":"ERROR","attributes":{"exception.message":"Invalid type \u003cclass 'ValueError'\u003e of value invalid literal for int() with base 10: ''","exception.stacktrace":"Traceback (most recent call last):
File \"/usr/local/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 \"/usr/local/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/grpc/_log_exporter/__init__.py\", line 108, in export
return self._export(batch)
File \"/usr/local/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/grpc/exporter.py\", line 276, in _export
request=self._translate_data(data),
File \"/usr/local/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/grpc/_log_exporter/__init__.py\", line 105, in _translate_data
return encode_logs(data)
File \"/usr/local/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 \"/usr/local/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py\", line 61, in _encode_resource_logs
pb2_log = _encode_log(sdk_log)
File \"/usr/local/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/common/_internal/_log_encoder/__init__.py\", line 47, in _encode_log
body=_encode_value(log_data.log_record.body),
File \"/usr/local/lib/python3.9/site-packages/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py\", line 79, in _encode_value
raise Exception(f\"Invalid type {type(value)} of value {value}\")
Exception: Invalid type \u003cclass 'ValueError'\u003e of value invalid literal for int() with base 10: ''
","exception.type":"Exception"},"resources":{"telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.19.0"},"instrumentation_scope":{"name":"opentelemetry.sdk._logs._internal"}}
to string explicitly and only raise if conversion fails.
Steps to reproduce
What is the expected behavior?
No "Exception while exporting logs" errors in log
What is the actual behavior?
"Exception while exporting logs" error in log
Additional info
I think
_encode_valueatopentelemetry-python/exporter/opentelemetry-exporter-otlp-proto-common/src/opentelemetry/exporter/otlp/proto/common/_internal/__init__.py
Line 79 in 8378db9
valueto string explicitly and only raise if conversion fails.