Skip to content

Commit 48f5162

Browse files
[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 ab63282 commit 48f5162

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
@@ -329,6 +329,7 @@ def __init__(self) -> None:
329329
"/evp_proxy/v2/api/v2/llmobs",
330330
"/evp_proxy/v2/api/intake/llm-obs/v1/eval-metric",
331331
"/evp_proxy/v2/api/intake/llm-obs/v2/eval-metric",
332+
"/evp_proxy/v4/api/v2/errorsintake",
332333
]
333334

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

805+
async def handle_evp_proxy_v4_api_v2_errorsintake(self, request: Request) -> web.Response:
806+
return web.HTTPOk()
807+
804808
async def handle_put_tested_integrations(self, request: Request) -> web.Response:
805809
# we need to store the request manually since this is not a real DD agent endpoint
806810
await self._store_request(request)
@@ -878,6 +882,7 @@ async def handle_info(self, request: Request) -> web.Response:
878882
"/v0.7/config",
879883
"/tracer_flare/v1",
880884
"/evp_proxy/v2/",
885+
"/evp_proxy/v4/",
881886
],
882887
"feature_flags": [],
883888
"config": {},
@@ -1124,6 +1129,7 @@ async def handle_session_requests(self, request: Request) -> web.Response:
11241129
self.handle_v1_tracer_flare,
11251130
self.handle_evp_proxy_v2_api_v2_llmobs,
11261131
self.handle_evp_proxy_v2_llmobs_eval_metric,
1132+
self.handle_evp_proxy_v4_api_v2_errorsintake,
11271133
self.handle_v1_logs,
11281134
self.handle_v1_metrics,
11291135
):
@@ -1417,6 +1423,7 @@ def _process_named_pipe_request(self, data: bytes, app: web.Application) -> byte
14171423
"/evp_proxy/v2/api/v2/llmobs": self.handle_evp_proxy_v2_api_v2_llmobs,
14181424
"/evp_proxy/v2/api/intake/llm-obs/v1/eval-metric": self.handle_evp_proxy_v2_llmobs_eval_metric,
14191425
"/evp_proxy/v2/api/intake/llm-obs/v2/eval-metric": self.handle_evp_proxy_v2_llmobs_eval_metric,
1426+
"/evp_proxy/v4/api/v2/errorsintake": self.handle_evp_proxy_v4_api_v2_errorsintake,
14201427
"/info": self.handle_info,
14211428
# Test endpoints
14221429
"/test/session/start": self.handle_session_start,
@@ -1615,6 +1622,7 @@ def make_app(
16151622
web.post("/evp_proxy/v2/api/v2/llmobs", agent.handle_evp_proxy_v2_api_v2_llmobs),
16161623
web.post("/evp_proxy/v2/api/intake/llm-obs/v1/eval-metric", agent.handle_evp_proxy_v2_llmobs_eval_metric),
16171624
web.post("/evp_proxy/v2/api/intake/llm-obs/v2/eval-metric", agent.handle_evp_proxy_v2_llmobs_eval_metric),
1625+
web.post("/evp_proxy/v4/api/v2/errorsintake", agent.handle_evp_proxy_v4_api_v2_errorsintake),
16181626
web.get("/info", agent.handle_info),
16191627
web.get("/test/session/start", agent.handle_session_start),
16201628
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)