arize-phoenix 11.17.0__py3-none-any.whl → 11.19.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arize-phoenix might be problematic. Click here for more details.
- {arize_phoenix-11.17.0.dist-info → arize_phoenix-11.19.0.dist-info}/METADATA +2 -2
- {arize_phoenix-11.17.0.dist-info → arize_phoenix-11.19.0.dist-info}/RECORD +23 -23
- phoenix/db/helpers.py +27 -0
- phoenix/server/api/helpers/playground_clients.py +2 -0
- phoenix/server/api/queries.py +454 -7
- phoenix/server/api/routers/v1/spans.py +128 -3
- phoenix/server/api/routers/v1/traces.py +36 -15
- phoenix/server/prometheus.py +1 -0
- phoenix/server/static/.vite/manifest.json +51 -45
- phoenix/server/static/assets/{components-B7NKnJXz.js → components-C4HZjMqd.js} +529 -340
- phoenix/server/static/assets/{index-9n9lXgT6.js → index-DwyN9UfD.js} +2 -2
- phoenix/server/static/assets/{pages-CvqPVUA3.js → pages-B1S5DLvL.js} +583 -515
- phoenix/server/static/assets/vendor-BbqekBfb.js +905 -0
- phoenix/server/static/assets/vendor-arizeai-CEwHhYfL.js +168 -0
- phoenix/server/static/assets/vendor-codemirror-CHApHLLJ.js +25 -0
- phoenix/server/static/assets/{vendor-recharts-Cu431IpB.js → vendor-recharts-Bqf7C6Cm.js} +6 -6
- phoenix/server/static/assets/vendor-shiki-BQ88Q1b1.js +5 -0
- phoenix/server/static/assets/{vendor-three-C5WAXd5r.js → vendor-three-BLWp5bic.js} +154 -154
- phoenix/version.py +1 -1
- phoenix/server/static/assets/vendor-_6rG8OMg.js +0 -936
- phoenix/server/static/assets/vendor-arizeai-BznCmJFh.js +0 -168
- phoenix/server/static/assets/vendor-codemirror-29fWLPAy.js +0 -27
- phoenix/server/static/assets/vendor-shiki-Ce9e01lU.js +0 -5
- {arize_phoenix-11.17.0.dist-info → arize_phoenix-11.19.0.dist-info}/WHEEL +0 -0
- {arize_phoenix-11.17.0.dist-info → arize_phoenix-11.19.0.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-11.17.0.dist-info → arize_phoenix-11.19.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-11.17.0.dist-info → arize_phoenix-11.19.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -24,6 +24,7 @@ from strawberry.relay import GlobalID
|
|
|
24
24
|
from phoenix.db import models
|
|
25
25
|
from phoenix.db.insertion.helpers import as_kv
|
|
26
26
|
from phoenix.db.insertion.types import Precursors
|
|
27
|
+
from phoenix.server.api.types.node import from_global_id_with_expected_type
|
|
27
28
|
from phoenix.server.authorization import is_not_locked
|
|
28
29
|
from phoenix.server.bearer_auth import PhoenixUser
|
|
29
30
|
from phoenix.server.dml_event import SpanDeleteEvent, TraceAnnotationInsertEvent
|
|
@@ -228,11 +229,13 @@ async def _add_spans(req: ExportTraceServiceRequest, state: State) -> None:
|
|
|
228
229
|
|
|
229
230
|
|
|
230
231
|
@router.delete(
|
|
231
|
-
"/traces/{
|
|
232
|
+
"/traces/{trace_identifier}",
|
|
232
233
|
operation_id="deleteTrace",
|
|
233
|
-
summary="Delete a trace by
|
|
234
|
+
summary="Delete a trace by identifier",
|
|
234
235
|
description=(
|
|
235
|
-
"Delete an entire trace by its
|
|
236
|
+
"Delete an entire trace by its identifier. The identifier can be either:\n"
|
|
237
|
+
"1. A Relay node ID (base64-encoded)\n"
|
|
238
|
+
"2. An OpenTelemetry trace_id (hex string)\n\n"
|
|
236
239
|
"This will permanently remove all spans in the trace and their associated data."
|
|
237
240
|
),
|
|
238
241
|
responses=add_errors_to_responses([HTTP_404_NOT_FOUND]),
|
|
@@ -240,33 +243,51 @@ async def _add_spans(req: ExportTraceServiceRequest, state: State) -> None:
|
|
|
240
243
|
)
|
|
241
244
|
async def delete_trace(
|
|
242
245
|
request: Request,
|
|
243
|
-
|
|
246
|
+
trace_identifier: str = Path(
|
|
247
|
+
description="The trace identifier: either a relay GlobalID or OpenTelemetry trace_id"
|
|
248
|
+
),
|
|
244
249
|
) -> None:
|
|
245
250
|
"""
|
|
246
|
-
Delete a trace by trace_id.
|
|
251
|
+
Delete a trace by identifier (relay GlobalID or OpenTelemetry trace_id).
|
|
247
252
|
|
|
248
253
|
This endpoint will:
|
|
249
|
-
1.
|
|
250
|
-
2.
|
|
251
|
-
3.
|
|
254
|
+
1. Delete the trace by identifier (relay GlobalID or OpenTelemetry trace_id)
|
|
255
|
+
2. Get project_id from the deletion for cache invalidation
|
|
256
|
+
3. Trigger cache invalidation events
|
|
257
|
+
4. Return 204 No Content on success
|
|
252
258
|
|
|
253
259
|
Note: This deletes the entire trace, including all spans, which maintains data consistency
|
|
254
260
|
and avoids orphaned spans or inconsistent cached cumulative fields.
|
|
255
261
|
"""
|
|
256
262
|
async with request.app.state.db() as session:
|
|
257
|
-
#
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
+
# Try to parse as GlobalID first, then fall back to trace_id
|
|
264
|
+
try:
|
|
265
|
+
trace_rowid = from_global_id_with_expected_type(
|
|
266
|
+
GlobalID.from_id(trace_identifier),
|
|
267
|
+
"Trace",
|
|
268
|
+
)
|
|
269
|
+
# Delete by database rowid
|
|
270
|
+
delete_stmt = (
|
|
271
|
+
delete(models.Trace)
|
|
272
|
+
.where(models.Trace.id == trace_rowid)
|
|
273
|
+
.returning(models.Trace.project_rowid)
|
|
274
|
+
)
|
|
275
|
+
error_detail = f"Trace with relay ID '{trace_identifier}' not found"
|
|
276
|
+
except Exception:
|
|
277
|
+
# Delete by OpenTelemetry trace_id
|
|
278
|
+
delete_stmt = (
|
|
279
|
+
delete(models.Trace)
|
|
280
|
+
.where(models.Trace.trace_id == trace_identifier)
|
|
281
|
+
.returning(models.Trace.project_rowid)
|
|
282
|
+
)
|
|
283
|
+
error_detail = f"Trace with trace_id '{trace_identifier}' not found"
|
|
263
284
|
|
|
264
285
|
project_id = await session.scalar(delete_stmt)
|
|
265
286
|
|
|
266
287
|
if project_id is None:
|
|
267
288
|
raise HTTPException(
|
|
268
289
|
status_code=HTTP_404_NOT_FOUND,
|
|
269
|
-
detail=
|
|
290
|
+
detail=error_detail,
|
|
270
291
|
)
|
|
271
292
|
|
|
272
293
|
# Trigger cache invalidation event
|
phoenix/server/prometheus.py
CHANGED
|
@@ -1,87 +1,93 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_components-
|
|
3
|
-
"file": "assets/components-
|
|
2
|
+
"_components-C4HZjMqd.js": {
|
|
3
|
+
"file": "assets/components-C4HZjMqd.js",
|
|
4
4
|
"name": "components",
|
|
5
5
|
"imports": [
|
|
6
|
-
"_vendor-
|
|
7
|
-
"_pages-
|
|
8
|
-
"_vendor-arizeai-
|
|
9
|
-
"_vendor-codemirror-
|
|
10
|
-
"_vendor-three-
|
|
6
|
+
"_vendor-BbqekBfb.js",
|
|
7
|
+
"_pages-B1S5DLvL.js",
|
|
8
|
+
"_vendor-arizeai-CEwHhYfL.js",
|
|
9
|
+
"_vendor-codemirror-CHApHLLJ.js",
|
|
10
|
+
"_vendor-three-BLWp5bic.js"
|
|
11
11
|
]
|
|
12
12
|
},
|
|
13
|
-
"_pages-
|
|
14
|
-
"file": "assets/pages-
|
|
13
|
+
"_pages-B1S5DLvL.js": {
|
|
14
|
+
"file": "assets/pages-B1S5DLvL.js",
|
|
15
15
|
"name": "pages",
|
|
16
16
|
"imports": [
|
|
17
|
-
"_vendor-
|
|
18
|
-
"_vendor-arizeai-
|
|
19
|
-
"_components-
|
|
20
|
-
"_vendor-codemirror-
|
|
21
|
-
"_vendor-recharts-
|
|
17
|
+
"_vendor-BbqekBfb.js",
|
|
18
|
+
"_vendor-arizeai-CEwHhYfL.js",
|
|
19
|
+
"_components-C4HZjMqd.js",
|
|
20
|
+
"_vendor-codemirror-CHApHLLJ.js",
|
|
21
|
+
"_vendor-recharts-Bqf7C6Cm.js"
|
|
22
22
|
]
|
|
23
23
|
},
|
|
24
|
-
"_vendor-
|
|
25
|
-
"file": "assets/vendor-
|
|
26
|
-
"src": "_vendor-CqDb5u4o.css"
|
|
27
|
-
},
|
|
28
|
-
"_vendor-_6rG8OMg.js": {
|
|
29
|
-
"file": "assets/vendor-_6rG8OMg.js",
|
|
24
|
+
"_vendor-BbqekBfb.js": {
|
|
25
|
+
"file": "assets/vendor-BbqekBfb.js",
|
|
30
26
|
"name": "vendor",
|
|
31
27
|
"imports": [
|
|
32
|
-
"_vendor-three-
|
|
28
|
+
"_vendor-three-BLWp5bic.js"
|
|
33
29
|
],
|
|
34
30
|
"css": [
|
|
35
31
|
"assets/vendor-CqDb5u4o.css"
|
|
36
32
|
]
|
|
37
33
|
},
|
|
38
|
-
"_vendor-
|
|
39
|
-
"file": "assets/vendor-
|
|
34
|
+
"_vendor-CqDb5u4o.css": {
|
|
35
|
+
"file": "assets/vendor-CqDb5u4o.css",
|
|
36
|
+
"src": "_vendor-CqDb5u4o.css"
|
|
37
|
+
},
|
|
38
|
+
"_vendor-arizeai-CEwHhYfL.js": {
|
|
39
|
+
"file": "assets/vendor-arizeai-CEwHhYfL.js",
|
|
40
40
|
"name": "vendor-arizeai",
|
|
41
41
|
"imports": [
|
|
42
|
-
"_vendor-
|
|
42
|
+
"_vendor-BbqekBfb.js"
|
|
43
43
|
]
|
|
44
44
|
},
|
|
45
|
-
"_vendor-codemirror-
|
|
46
|
-
"file": "assets/vendor-codemirror-
|
|
45
|
+
"_vendor-codemirror-CHApHLLJ.js": {
|
|
46
|
+
"file": "assets/vendor-codemirror-CHApHLLJ.js",
|
|
47
47
|
"name": "vendor-codemirror",
|
|
48
48
|
"imports": [
|
|
49
|
-
"_vendor-
|
|
50
|
-
"_vendor-shiki-
|
|
49
|
+
"_vendor-BbqekBfb.js",
|
|
50
|
+
"_vendor-shiki-BQ88Q1b1.js"
|
|
51
|
+
],
|
|
52
|
+
"dynamicImports": [
|
|
53
|
+
"_vendor-shiki-BQ88Q1b1.js",
|
|
54
|
+
"_vendor-shiki-BQ88Q1b1.js",
|
|
55
|
+
"_vendor-shiki-BQ88Q1b1.js"
|
|
51
56
|
]
|
|
52
57
|
},
|
|
53
|
-
"_vendor-recharts-
|
|
54
|
-
"file": "assets/vendor-recharts-
|
|
58
|
+
"_vendor-recharts-Bqf7C6Cm.js": {
|
|
59
|
+
"file": "assets/vendor-recharts-Bqf7C6Cm.js",
|
|
55
60
|
"name": "vendor-recharts",
|
|
56
61
|
"imports": [
|
|
57
|
-
"_vendor-
|
|
62
|
+
"_vendor-BbqekBfb.js"
|
|
58
63
|
]
|
|
59
64
|
},
|
|
60
|
-
"_vendor-shiki-
|
|
61
|
-
"file": "assets/vendor-shiki-
|
|
65
|
+
"_vendor-shiki-BQ88Q1b1.js": {
|
|
66
|
+
"file": "assets/vendor-shiki-BQ88Q1b1.js",
|
|
62
67
|
"name": "vendor-shiki",
|
|
68
|
+
"isDynamicEntry": true,
|
|
63
69
|
"imports": [
|
|
64
|
-
"_vendor-
|
|
70
|
+
"_vendor-BbqekBfb.js"
|
|
65
71
|
]
|
|
66
72
|
},
|
|
67
|
-
"_vendor-three-
|
|
68
|
-
"file": "assets/vendor-three-
|
|
73
|
+
"_vendor-three-BLWp5bic.js": {
|
|
74
|
+
"file": "assets/vendor-three-BLWp5bic.js",
|
|
69
75
|
"name": "vendor-three"
|
|
70
76
|
},
|
|
71
77
|
"index.tsx": {
|
|
72
|
-
"file": "assets/index-
|
|
78
|
+
"file": "assets/index-DwyN9UfD.js",
|
|
73
79
|
"name": "index",
|
|
74
80
|
"src": "index.tsx",
|
|
75
81
|
"isEntry": true,
|
|
76
82
|
"imports": [
|
|
77
|
-
"_vendor-
|
|
78
|
-
"_vendor-arizeai-
|
|
79
|
-
"_pages-
|
|
80
|
-
"_components-
|
|
81
|
-
"_vendor-three-
|
|
82
|
-
"_vendor-codemirror-
|
|
83
|
-
"_vendor-shiki-
|
|
84
|
-
"_vendor-recharts-
|
|
83
|
+
"_vendor-BbqekBfb.js",
|
|
84
|
+
"_vendor-arizeai-CEwHhYfL.js",
|
|
85
|
+
"_pages-B1S5DLvL.js",
|
|
86
|
+
"_components-C4HZjMqd.js",
|
|
87
|
+
"_vendor-three-BLWp5bic.js",
|
|
88
|
+
"_vendor-codemirror-CHApHLLJ.js",
|
|
89
|
+
"_vendor-shiki-BQ88Q1b1.js",
|
|
90
|
+
"_vendor-recharts-Bqf7C6Cm.js"
|
|
85
91
|
]
|
|
86
92
|
}
|
|
87
93
|
}
|