59
59
from .trace import Span
60
60
from .trace import Trace
61
61
from .trace import TraceMap
62
+ from .trace import decode_v1 as trace_decode_v1
62
63
from .trace import decode_v04 as trace_decode_v04
63
64
from .trace import decode_v05 as trace_decode_v05
64
65
from .trace import decode_v07 as trace_decode_v07
@@ -264,6 +265,7 @@ def __init__(self) -> None:
264
265
"/v0.4/traces" ,
265
266
"/v0.5/traces" ,
266
267
"/v0.7/traces" ,
268
+ "/v1.0/traces" ,
267
269
"/v0.6/stats" ,
268
270
"/v0.7/config" ,
269
271
"/telemetry/proxy/api/v2/apmtelemetry" ,
@@ -445,6 +447,8 @@ async def _traces_from_request(self, req: Request) -> List[List[Span]]:
445
447
return self ._decode_v05_traces (req )
446
448
elif req .match_info .handler == self .handle_v07_traces :
447
449
return self ._decode_v07_traces (req )
450
+ elif req .match_info .handler == self .handle_v1_traces :
451
+ return self ._decode_v1_traces (req )
448
452
return []
449
453
450
454
async def _traces_by_session (self , token : Optional [str ]) -> List [Trace ]:
@@ -599,6 +603,10 @@ def _decode_v07_traces(self, request: Request) -> v04TracePayload:
599
603
raw_data = self ._request_data (request )
600
604
return trace_decode_v07 (raw_data )
601
605
606
+ def _decode_v1_traces (self , request : Request ) -> v04TracePayload :
607
+ raw_data = self ._request_data (request )
608
+ return trace_decode_v1 (raw_data )
609
+
602
610
def _decode_v06_tracestats (self , request : Request ) -> v06StatsPayload :
603
611
raw_data = self ._request_data (request )
604
612
return tracestats_decode_v06 (raw_data )
@@ -628,6 +636,9 @@ async def handle_v05_traces(self, request: Request) -> web.Response:
628
636
async def handle_v07_traces (self , request : Request ) -> web .Response :
629
637
return await self ._handle_traces (request , version = "v0.7" )
630
638
639
+ async def handle_v1_traces (self , request : Request ) -> web .Response :
640
+ return await self ._handle_traces (request , version = "v1" )
641
+
631
642
async def handle_v06_tracestats (self , request : Request ) -> web .Response :
632
643
stats = self ._decode_v06_tracestats (request )
633
644
nstats = len (stats ["Stats" ])
@@ -823,7 +834,7 @@ async def handle_info(self, request: Request) -> web.Response:
823
834
headers = {"Datadog-Agent-State" : "03e868b3ecdd62a91423cc4c3917d0d151fb9fa486736911ab7f5a0750c63824" },
824
835
)
825
836
826
- async def _handle_traces (self , request : Request , version : Literal ["v0.4" , "v0.5" , "v0.7" ]) -> web .Response :
837
+ async def _handle_traces (self , request : Request , version : Literal ["v0.4" , "v0.5" , "v0.7" , "v1" ]) -> web .Response :
827
838
token = request ["session_token" ]
828
839
checks : Checks = request .app ["checks" ]
829
840
headers = request .headers
@@ -844,6 +855,8 @@ async def _handle_traces(self, request: Request, version: Literal["v0.4", "v0.5"
844
855
traces = self ._decode_v05_traces (request )
845
856
elif version == "v0.7" :
846
857
traces = self ._decode_v07_traces (request )
858
+ elif version == "v1" :
859
+ traces = self ._decode_v1_traces (request )
847
860
log .info (
848
861
"received trace for token %r payload with %r trace chunks" ,
849
862
token ,
@@ -1365,6 +1378,8 @@ def make_app(
1365
1378
web .put ("/v0.5/traces" , agent .handle_v05_traces ),
1366
1379
web .post ("/v0.7/traces" , agent .handle_v07_traces ),
1367
1380
web .put ("/v0.7/traces" , agent .handle_v07_traces ),
1381
+ web .post ("/v1.0/traces" , agent .handle_v1_traces ),
1382
+ web .put ("/v1.0/traces" , agent .handle_v1_traces ),
1368
1383
web .post ("/v0.6/stats" , agent .handle_v06_tracestats ),
1369
1384
web .post ("/v0.1/pipeline_stats" , agent .handle_v01_pipelinestats ),
1370
1385
web .put ("/v0.6/stats" , agent .handle_v06_tracestats ),
0 commit comments