1919import certifi
2020import grpc
2121import sentry_sdk
22- from google .protobuf .json_format import MessageToDict , MessageToJson , ParseDict
22+ from google .protobuf .json_format import MessageToJson , ParseDict
2323from opentelemetry .proto .collector .logs .v1 import (
2424 logs_service_pb2 ,
2525 logs_service_pb2_grpc ,
@@ -555,14 +555,14 @@ def ingest(
555555 """Export entities as OTLP logs."""
556556 stream = stream or _DEFAULT_STREAM
557557 log_records = [
558- self ._entity_to_log_record (entity , stream )
558+ self ._entity_to_log_record (entity )
559559 for entity in self ._normalize_entities (entities )
560560 ]
561561
562562 if not log_records :
563563 return ingester_pb2 .IngestResponse ()
564564
565- request = self ._build_export_request (log_records )
565+ request = self ._build_export_request (log_records , stream )
566566
567567 try :
568568 self ._stub .Export (
@@ -588,11 +588,15 @@ def _normalize_entities(
588588 return normalized
589589
590590 def _build_export_request (
591- self , log_records : list [logs_pb2 .LogRecord ]
591+ self ,
592+ log_records : list [logs_pb2 .LogRecord ],
593+ stream : str | None ,
592594 ) -> logs_service_pb2 .ExportLogsServiceRequest :
593595 resource_logs = logs_pb2 .ResourceLogs ()
594596 resource_logs .resource .attributes .extend (self ._resource_attributes ())
595-
597+ resource_logs .resource .attributes .append (
598+ self ._string_kv ("diode.stream" , stream )
599+ )
596600 scope_logs = resource_logs .scope_logs .add ()
597601 scope_logs .scope .CopyFrom (
598602 common_pb2 .InstrumentationScope (
@@ -608,19 +612,17 @@ def _build_export_request(
608612
609613 def _resource_attributes (self ) -> list [common_pb2 .KeyValue ]:
610614 return [
611- self ._string_kv ("sdk.name" , self ._name ),
612- self ._string_kv ("sdk.version" , self ._version ),
613- self ._string_kv ("producer.app_name" , self ._app_name ),
614- self ._string_kv ("producer.app_version" , self ._app_version ),
615+ self ._string_kv ("service.name" , self ._app_name ),
616+ self ._string_kv ("service.version" , self ._app_version ),
615617 self ._string_kv ("os.description" , self ._platform ),
616618 self ._string_kv ("process.runtime.version" , self ._python_version ),
617619 ]
618620
619621 def _entity_to_log_record (
620- self , entity : ingester_pb2 .Entity , stream : str
622+ self ,
623+ entity : ingester_pb2 .Entity ,
621624 ) -> logs_pb2 .LogRecord :
622- entity_dict = MessageToDict (entity , preserving_proto_field_name = True )
623- body_json = json .dumps (entity_dict , separators = ("," , ":" ))
625+ body_json = MessageToJson (entity , preserving_proto_field_name = True )
624626 now = time .time_ns ()
625627 entity_type = entity .WhichOneof ("entity" ) or "unknown"
626628
0 commit comments