importjsonimportdatarobotasdrfromdatarobot.models.otelimportOtelLogEntry# Initialize DataRobot client for authenticationdr_client=dr.Client()# Provide DataRobot entity informationentity_type:str="deployment"entity_id:str="<DEPLOYMENT_ID>"# From the deployment Overview tab or URL# Set output filenameoutput_filename:str="datarobot_otel_logs.json"defexport_logs_to_json(logs:list[OtelLogEntry],filename:str)->None:"""Export logs to a JSON file"""log_entries=[]forloginlogs:log_payload=dict(log.__dict__)log_payload.update({"entity_type":entity_type,"entity_id":entity_id,"timestamp":log.timestamp.isoformat(),})log_entries.append(log_payload)withopen(filename,'w')asf:json.dump(log_entries,f,indent=2)# Get and export OTel logstry:print(f"Getting logs for {entity_type}{entity_id}...")logs:list[OtelLogEntry]=OtelLogEntry.list(entity_type,entity_id)print(f"Found {len(logs)} logs")# Preview first few logsforloginlogs[:5]:print(f"{log}")# Example: Filter for ERROR logs onlyerror_logs=[logforloginlogsiflog.level.upper()=='ERROR']print(f"Found {len(error_logs)} ERROR logs")# Export to JSON fileprint(f"Writing logs to {output_filename}...")export_logs_to_json(logs,output_filename)print(f"Exported {len(logs)} logs to {output_filename}")exceptdr.errors.ClientErrorase:print(f"API Error: {e}")exceptFileNotFoundErrorase:print(f"File Error: {e}")exceptExceptionase:print(f"Unexpected Error: {e}")