@@ -53,6 +53,7 @@ const LLM_OBS_EVAL_METRIC_ENDPOINT_PATH_V2: &str =
53
53
const LLM_OBS_SPANS_ENDPOINT_PATH : & str = "/evp_proxy/v2/api/v2/llmobs" ;
54
54
const INFO_ENDPOINT_PATH : & str = "/info" ;
55
55
const DEBUGGER_ENDPOINT_PATH : & str = "/debugger/v1/input" ;
56
+ const INSTRUMENTATION_ENDPOINT_PATH : & str = "/telemetry/proxy/api/v2/apmtelemetry" ;
56
57
57
58
// Intake endpoints
58
59
const DSM_INTAKE_PATH : & str = "/api/v0.1/pipeline_stats" ;
@@ -61,6 +62,7 @@ const LLM_OBS_EVAL_METRIC_INTAKE_PATH: &str = "/api/intake/llm-obs/v1/eval-metri
61
62
const LLM_OBS_EVAL_METRIC_INTAKE_PATH_V2 : & str = "/api/intake/llm-obs/v2/eval-metric" ;
62
63
const PROFILING_INTAKE_PATH : & str = "/api/v2/profile" ;
63
64
const DEBUGGER_LOGS_INTAKE_PATH : & str = "/api/v2/logs" ;
65
+ const INSTRUMENTATION_INTAKE_PATH : & str = "/api/v2/apmtelemetry" ;
64
66
65
67
const TRACER_PAYLOAD_CHANNEL_BUFFER_SIZE : usize = 10 ;
66
68
const STATS_PAYLOAD_CHANNEL_BUFFER_SIZE : usize = 10 ;
@@ -231,6 +233,10 @@ impl TraceAgent {
231
233
)
232
234
. route ( LLM_OBS_SPANS_ENDPOINT_PATH , post ( Self :: llm_obs_spans_proxy) )
233
235
. route ( DEBUGGER_ENDPOINT_PATH , post ( Self :: debugger_logs_proxy) )
236
+ . route (
237
+ INSTRUMENTATION_ENDPOINT_PATH ,
238
+ post ( Self :: instrumentation_proxy) ,
239
+ )
234
240
. with_state ( proxy_state) ;
235
241
236
242
let info_router = Router :: new ( ) . route ( INFO_ENDPOINT_PATH , any ( Self :: info) ) ;
@@ -366,6 +372,18 @@ impl TraceAgent {
366
372
. await
367
373
}
368
374
375
+ async fn instrumentation_proxy ( State ( state) : State < ProxyState > , request : Request ) -> Response {
376
+ Self :: handle_proxy (
377
+ state. config ,
378
+ state. proxy_aggregator ,
379
+ request,
380
+ "instrumentation-telemetry-intake" ,
381
+ INSTRUMENTATION_INTAKE_PATH ,
382
+ "instrumentation" ,
383
+ )
384
+ . await
385
+ }
386
+
369
387
#[ allow( clippy:: unused_async) ]
370
388
async fn info ( ) -> Response {
371
389
let response_json = json ! (
0 commit comments