2828 LogRecordProcessor ,
2929 LogData ,
3030)
31+ from opentelemetry .sdk .resources import Resource , SERVICE_NAME
3132from opentelemetry .sdk ._logs .export import BatchLogRecordProcessor
3233from opentelemetry .sdk .trace import SpanProcessor , TracerProvider , Span
3334from opentelemetry .sdk .trace .export import BatchSpanProcessor
3940from opentelemetry .exporter .otlp .proto .http import Compression
4041
4142from ..utils import misc
43+ from ..log import logger
4244
4345if TYPE_CHECKING :
4446 from ..voice .report import SessionReport
@@ -123,7 +125,15 @@ def _setup_cloud_tracer(
123125 headers = (("Authorization" , f"Bearer { access_token .to_jwt ()} " ),)
124126 metadata = {"room_id" : room_id , "job_id" : job_id }
125127
126- tracer_provider = TracerProvider ()
128+ resource = Resource .create (
129+ {
130+ SERVICE_NAME : "livekit-agents" ,
131+ "room_id" : room_id ,
132+ "job_id" : job_id ,
133+ }
134+ )
135+
136+ tracer_provider = TracerProvider (resource = resource )
127137 set_tracer_provider (tracer_provider )
128138
129139 span_exporter = OTLPSpanExporter (
@@ -132,7 +142,7 @@ def _setup_cloud_tracer(
132142 compression = otlp_compression ,
133143 )
134144
135- tracer_provider .add_span_processor (_MetadataSpanProcessor (metadata ))
145+ # tracer_provider.add_span_processor(_MetadataSpanProcessor(metadata))
136146 tracer_provider .add_span_processor (BatchSpanProcessor (span_exporter ))
137147
138148 logger_provider = LoggerProvider ()
@@ -143,7 +153,7 @@ def _setup_cloud_tracer(
143153 headers = headers ,
144154 compression = otlp_compression ,
145155 )
146- logger_provider .add_log_record_processor (_MetadataLogProcessor (metadata ))
156+ # logger_provider.add_log_record_processor(_MetadataLogProcessor(metadata))
147157 logger_provider .add_log_record_processor (BatchLogRecordProcessor (log_exporter ))
148158 handler = LoggingHandler (level = logging .NOTSET , logger_provider = logger_provider )
149159
@@ -229,6 +239,7 @@ def _to_proto_chat_ctx(chat_ctx: ChatContext) -> agent_pb.agent_session.ChatCont
229239
230240 return ctx_pb
231241
242+
232243async def _upload_session_report (
233244 * ,
234245 room_id : str ,
@@ -252,29 +263,31 @@ async def _upload_session_report(
252263 chat_history_pb = _to_proto_chat_ctx (report .chat_history )
253264 chat_history_bytes = chat_history_pb .SerializeToString () if chat_history_pb is not None else b""
254265
255- mp = aiohttp .MultipartWriter (' form-data' )
266+ mp = aiohttp .MultipartWriter (" form-data" )
256267
257268 part = mp .append (header_bytes )
258- part .set_content_disposition (' form-data' , name = ' header' , filename = ' header.binpb' )
259- part .headers [' Content-Type' ] = ' application/protobuf'
260- part .headers [' Content-Length' ] = str (len (header_bytes ))
269+ part .set_content_disposition (" form-data" , name = " header" , filename = " header.binpb" )
270+ part .headers [" Content-Type" ] = " application/protobuf"
271+ part .headers [" Content-Length" ] = str (len (header_bytes ))
261272
262273 if chat_history_bytes :
263274 part = mp .append (chat_history_bytes )
264- part .set_content_disposition ('form-data' , name = 'chat_history' , filename = 'chat_history.binpb' )
265- part .headers ['Content-Type' ] = 'application/protobuf'
266- part .headers ['Content-Length' ] = str (len (chat_history_bytes ))
275+ part .set_content_disposition (
276+ "form-data" , name = "chat_history" , filename = "chat_history.binpb"
277+ )
278+ part .headers ["Content-Type" ] = "application/protobuf"
279+ part .headers ["Content-Length" ] = str (len (chat_history_bytes ))
267280
268281 if report .audio_recording_path :
269282 try :
270- async with aiofiles .open (report .audio_recording_path , 'rb' ) as f :
283+ async with aiofiles .open (report .audio_recording_path , "rb" ) as f :
271284 audio_bytes = await f .read ()
272285 except Exception :
273286 audio_bytes = b""
274287 part = mp .append (audio_bytes )
275- part .set_content_disposition (' form-data' , name = ' audio' , filename = ' recording.ogg' )
276- part .headers [' Content-Type' ] = ' audio/ogg'
277- part .headers [' Content-Length' ] = str (len (audio_bytes ))
288+ part .set_content_disposition (" form-data" , name = " audio" , filename = " recording.ogg" )
289+ part .headers [" Content-Type" ] = " audio/ogg"
290+ part .headers [" Content-Length" ] = str (len (audio_bytes ))
278291
279292 url = f"https://{ cloud_hostname } /observability/recordings/v0"
280293 headers = {
@@ -284,3 +297,5 @@ async def _upload_session_report(
284297
285298 async with http_session .post (url , data = mp , headers = headers ) as resp :
286299 resp .raise_for_status ()
300+
301+ logger .info ("uploaded" )
0 commit comments