Skip to content

Commit 5cd9149

Browse files
gyuheon0hbrettlangdon
authored andcommitted
[crashtracking] Add errorsintake proxy endpoint (#252)
* Add errorsintake proxy endpoint * release note * Add to exclusion? list * Update releasenotes/notes/add-errors-intake-proxy-endpoint-7e0f31d72a130f1a.yaml Co-authored-by: Brett Langdon <[email protected]> --------- Co-authored-by: Brett Langdon <[email protected]>
1 parent 3df65a0 commit 5cd9149

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

ddapm_test_agent/agent.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ def __init__(self) -> None:
330330
"/evp_proxy/v2/api/v2/llmobs",
331331
"/evp_proxy/v2/api/intake/llm-obs/v1/eval-metric",
332332
"/evp_proxy/v2/api/intake/llm-obs/v2/eval-metric",
333+
"/evp_proxy/v4/api/v2/errorsintake",
333334
]
334335

335336
# Note that sessions are not cleared at any point since we don't know
@@ -802,6 +803,9 @@ async def handle_evp_proxy_v2_api_v2_llmobs(self, request: Request) -> web.Respo
802803
async def handle_evp_proxy_v2_llmobs_eval_metric(self, request: Request) -> web.Response:
803804
return web.HTTPOk()
804805

806+
async def handle_evp_proxy_v4_api_v2_errorsintake(self, request: Request) -> web.Response:
807+
return web.HTTPOk()
808+
805809
async def handle_put_tested_integrations(self, request: Request) -> web.Response:
806810
# we need to store the request manually since this is not a real DD agent endpoint
807811
await self._store_request(request)
@@ -879,6 +883,7 @@ async def handle_info(self, request: Request) -> web.Response:
879883
"/v0.7/config",
880884
"/tracer_flare/v1",
881885
"/evp_proxy/v2/",
886+
"/evp_proxy/v4/",
882887
],
883888
"feature_flags": [],
884889
"config": {},
@@ -1125,6 +1130,7 @@ async def handle_session_requests(self, request: Request) -> web.Response:
11251130
self.handle_v1_tracer_flare,
11261131
self.handle_evp_proxy_v2_api_v2_llmobs,
11271132
self.handle_evp_proxy_v2_llmobs_eval_metric,
1133+
self.handle_evp_proxy_v4_api_v2_errorsintake,
11281134
self.handle_v1_logs,
11291135
self.handle_v1_metrics,
11301136
):
@@ -1418,6 +1424,7 @@ def _process_named_pipe_request(self, data: bytes, app: web.Application) -> byte
14181424
"/evp_proxy/v2/api/v2/llmobs": self.handle_evp_proxy_v2_api_v2_llmobs,
14191425
"/evp_proxy/v2/api/intake/llm-obs/v1/eval-metric": self.handle_evp_proxy_v2_llmobs_eval_metric,
14201426
"/evp_proxy/v2/api/intake/llm-obs/v2/eval-metric": self.handle_evp_proxy_v2_llmobs_eval_metric,
1427+
"/evp_proxy/v4/api/v2/errorsintake": self.handle_evp_proxy_v4_api_v2_errorsintake,
14211428
"/info": self.handle_info,
14221429
# Test endpoints
14231430
"/test/session/start": self.handle_session_start,
@@ -1628,6 +1635,7 @@ def make_app(
16281635
web.post("/evp_proxy/v2/api/v2/llmobs", agent.handle_evp_proxy_v2_api_v2_llmobs),
16291636
web.post("/evp_proxy/v2/api/intake/llm-obs/v1/eval-metric", agent.handle_evp_proxy_v2_llmobs_eval_metric),
16301637
web.post("/evp_proxy/v2/api/intake/llm-obs/v2/eval-metric", agent.handle_evp_proxy_v2_llmobs_eval_metric),
1638+
web.post("/evp_proxy/v4/api/v2/errorsintake", agent.handle_evp_proxy_v4_api_v2_errorsintake),
16311639
web.get("/info", agent.handle_info),
16321640
web.get("/test/session/start", agent.handle_session_start),
16331641
web.get("/test/session/clear", agent.handle_session_clear),
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
features:
3+
- |
4+
Add support for ``/evp_proxy/v4/api/v2/errorsintake`` endpoint to collect errors intake payload requests.

tests/test_agent.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ async def test_info(agent):
105105
"/v0.7/config",
106106
"/tracer_flare/v1",
107107
"/evp_proxy/v2/",
108+
"/evp_proxy/v4/",
108109
],
109110
"peer_tags": [
110111
"db.name",
@@ -514,6 +515,16 @@ async def test_post_unknown_settings(
514515
assert "dummy_setting" not in agent.app
515516

516517

518+
async def test_evp_proxy_v4_api_v2_errorsintake(agent):
519+
resp = await agent.post("/evp_proxy/v4/api/v2/errorsintake", data='{"key": "value"}')
520+
assert resp.status == 200, await resp.text()
521+
522+
resp = await agent.get("/test/session/requests")
523+
assert resp.status == 200
524+
reqs = await resp.json()
525+
assert len(reqs) == 1
526+
527+
517528
async def test_evp_proxy_v2_api_v2_llmobs(agent):
518529
resp = await agent.post("/evp_proxy/v2/api/v2/llmobs", data='{"key": "value"}')
519530
assert resp.status == 200, await resp.text()

0 commit comments

Comments
 (0)