@@ -95,17 +95,25 @@ def send_event(self, request: Dict) -> Optional[httplib.HTTPResponse]:
9595 conn = get_connection (self ._telemetry_url )
9696 conn .request ("POST" , self ._endpoint , rb_json , headers )
9797 resp = conn .getresponse ()
98+ request_types = request ["request_type" ]
99+ if request_types == "message-batch" :
100+ request_types = ", " .join ([event ["request_type" ] for event in request ["payload" ]])
98101 if resp .status < 300 :
99102 log .debug (
100- "Instrumentation Telemetry sent %d bytes in %.5fs to %s. Event: %s. Response: %s" ,
103+ "Instrumentation Telemetry sent %d bytes in %.5fs to %s. Event(s) : %s. Response: %s" ,
101104 len (rb_json ),
102105 sw .elapsed (),
103106 self .url ,
104- request [ "request_type" ] ,
107+ request_types ,
105108 resp .status ,
106109 )
107110 else :
108- log .debug ("Failed to send Instrumentation Telemetry to %s. response: %s" , self .url , resp .status )
111+ log .debug (
112+ "Failed to send Instrumentation Telemetry to %s. Event(s): %s. Response: %s" ,
113+ self .url ,
114+ request_types ,
115+ resp .status ,
116+ )
109117 except Exception as e :
110118 log .debug ("Failed to send Instrumentation Telemetry to %s. Error: %s" , self .url , str (e ))
111119 finally :
@@ -630,20 +638,22 @@ def _flush_log_metrics(self):
630638 self ._logs = set ()
631639 return log_metrics
632640
633- def _generate_metrics_event (self , namespace_metrics ):
634- # type: (Dict[str, Dict[str, List[Dict[str, Any]]]]) -> Optional[Dict[str, Any]]
641+ def _generate_metrics_events (self , namespace_metrics ):
642+ # type: (Dict[str, Dict[str, List[Dict[str, Any]]]]) -> List[Dict[str, Any]]
643+ metric_payloads = []
635644 for payload_type , namespaces in namespace_metrics .items ():
636645 for namespace , metrics in namespaces .items ():
637646 if metrics :
638- log .debug ("%s request payload, namespace %s" , payload_type , namespace )
639- return {
640- "payload" : {
641- "namespace" : namespace ,
642- "series" : metrics ,
643- },
644- "request_type" : payload_type ,
645- }
646- return None
647+ metric_payloads .append (
648+ {
649+ "payload" : {
650+ "namespace" : namespace ,
651+ "series" : metrics ,
652+ },
653+ "request_type" : payload_type ,
654+ }
655+ )
656+ return metric_payloads
647657
648658 def _generate_logs_event (self , logs ):
649659 # type: (Set[Dict[str, str]]) -> Dict[str, Any]
@@ -689,8 +699,8 @@ def periodic(self, force_flush=False, shutting_down=False):
689699 # Collect metrics and logs that have accumulated since last batch
690700 events = []
691701 if namespace_metrics := self ._namespace .flush (float (self .interval )):
692- if metrics_event := self ._generate_metrics_event (namespace_metrics ):
693- events .append ( metrics_event )
702+ if metrics_events := self ._generate_metrics_events (namespace_metrics ):
703+ events .extend ( metrics_events )
694704
695705 if logs_metrics := self ._flush_log_metrics ():
696706 events .append (self ._generate_logs_event (logs_metrics ))
0 commit comments