import datetime import json import boto3 from moto import mock_aws @mock_aws def test_put_telemetry(): client = boto3.client("xray", region_name="us-east-1") client.put_telemetry_records( TelemetryRecords=[ { "Timestamp": datetime.datetime(2015, 1, 1), "SegmentsReceivedCount": 123, "SegmentsSentCount": 123, "SegmentsSpilloverCount": 123, "SegmentsRejectedCount": 123, "BackendConnectionErrors": { "TimeoutCount": 123, "ConnectionRefusedCount": 123, "HTTPCode4XXCount": 123, "HTTPCode5XXCount": 123, "UnknownHostCount": 123, "OtherCount": 123, }, } ], EC2InstanceId="string", Hostname="string", ResourceARN="string", ) @mock_aws def test_put_trace_segments(): client = boto3.client("xray", region_name="us-east-1") client.put_trace_segments( TraceSegmentDocuments=[ json.dumps( { "name": "example.com", "id": "70de5b6f19ff9a0a", "start_time": 1.478293361271e9, "trace_id": "1-581cf771-a006649127e371903a2de979", "end_time": 1.478293361449e9, } ) ] ) @mock_aws def test_trace_summary(): client = boto3.client("xray", region_name="us-east-1") client.put_trace_segments( TraceSegmentDocuments=[ json.dumps( { "name": "example.com", "id": "70de5b6f19ff9a0a", "start_time": 1.478293361271e9, "trace_id": "1-581cf771-a006649127e371903a2de979", "in_progress": True, } ), json.dumps( { "name": "example.com", "id": "70de5b6f19ff9a0b", "start_time": 1478293365, "trace_id": "1-581cf771-a006649127e371903a2de979", "end_time": 1478293385, } ), ] ) client.get_trace_summaries( StartTime=datetime.datetime(2014, 1, 1), EndTime=datetime.datetime(2017, 1, 1) ) @mock_aws def test_batch_get_trace(): client = boto3.client("xray", region_name="us-east-1") client.put_trace_segments( TraceSegmentDocuments=[ json.dumps( { "name": "example.com", "id": "70de5b6f19ff9a0a", "start_time": 1.478293361271e9, "trace_id": "1-581cf771-a006649127e371903a2de979", "in_progress": True, } ), json.dumps( { "name": "example.com", "id": "70de5b6f19ff9a0b", "start_time": 1478293365, "trace_id": "1-581cf771-a006649127e371903a2de979", "end_time": 1478293385, } ), ] ) resp = client.batch_get_traces( TraceIds=[ "1-581cf771-a006649127e371903a2de979", "1-581cf772-b006649127e371903a2de979", ] ) assert len(resp["UnprocessedTraceIds"]) == 1 assert len(resp["Traces"]) == 1 # Following are not implemented, just testing it returns what boto expects @mock_aws def test_batch_get_service_graph(): client = boto3.client("xray", region_name="us-east-1") client.get_service_graph( StartTime=datetime.datetime(2014, 1, 1), EndTime=datetime.datetime(2017, 1, 1) ) @mock_aws def test_batch_get_trace_graph(): client = boto3.client("xray", region_name="us-east-1") client.batch_get_traces( TraceIds=[ "1-581cf771-a006649127e371903a2de979", "1-581cf772-b006649127e371903a2de979", ] )