Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73523c6796 |
No files matched your search
@@ -0,0 +1,129 @@
|
||||
# Pre-migration span baseline (ticket #137, map #135)
|
||||
|
||||
Captured from **master @ `da3901c`** ("before" the tracing migration) so the
|
||||
post-migration output can be diffed for parity. See map #135 for the
|
||||
migration's destination.
|
||||
|
||||
## What was run
|
||||
|
||||
- **Revision:** `da3901c` (merge of "Prefs: owner defaults"), the last
|
||||
master commit before `feature/tracing-migration`.
|
||||
- **Build:** `cargo build --release` — release is required; the pre-migration
|
||||
OTel init is behind `#[cfg(not(debug_assertions))]`, so debug builds are a
|
||||
no-op (no global tracer provider, no spans).
|
||||
- **Exporter:** local Jaeger all-in-one (`jaegertracing/all-in-one:latest`),
|
||||
OTLP/gRPC on host `:14317` (container `:4317`), UI `:16686`. Prod SigNoz
|
||||
(`OTLP_OTLS_ENDPOINT=http://192.168.10.50:4317`) was overridden deliberately.
|
||||
- **DB:** a private `.backup` copy of the live `auth.db` (21,298 `image_exif`
|
||||
rows, 4 NAS-backed libraries). The live deployment (`image-rs.service`) was
|
||||
left running and untouched; all output dirs (thumbs/gifs/video/reels) point
|
||||
at a temp dir.
|
||||
- **LLM backend:** the live local stack — `LLM_BACKEND=llamacpp`,
|
||||
`LLAMA_SWAP_URL=http://192.168.10.50:9292/v1`, model
|
||||
`qwen3.8-27b-abliterated`.
|
||||
|
||||
### Deviation from pristine `da3901c`
|
||||
|
||||
The binary was built from `da3901c` with **one span-neutral change**: the
|
||||
hardcoded secondary listener `.bind("localhost:8088")` was moved to
|
||||
`.bind("localhost:18088")` because the live `image-rs.service` owns `:8088`.
|
||||
The listen port cannot affect span production. Everything else is unmodified.
|
||||
|
||||
### Requests exercised (the representative set)
|
||||
|
||||
All with `Authorization: Bearer <JWT>` (minted with the live `SECRET_KEY`,
|
||||
`sub=2`).
|
||||
|
||||
| # | Request | Span trace(s) |
|
||||
|---|---------|---------------|
|
||||
| 1 | `GET /photos?path=Colleen&recursive=true&limit=20` | `cb07eeec…` (3 spans) |
|
||||
| 2 | `GET /memories?path=.&recursive=true` | `44b3b67d…` (6 spans) |
|
||||
| 3 | `POST /insights/generate/agentic` `{file_path:"Photo06172345.jpg",backend:"local"}` → **202 job_id=380** (async) | `948d2756…` (HTTP span) **and** `9b520713…` (background, 22 spans) |
|
||||
| 4 | `POST /insights/chat/stream` `{file_path:"Photo06172345.jpg",user_message:"What was I wearing in this photo?",backend:"local"}` (SSE, 88 text deltas, `done`) | fragmented — see below |
|
||||
| 5 | `GET /photos?path=Colleen&recursive=true&limit=5` **with** `traceparent: 00-1111…1111-2222…2222-01` | `11111111…` (3 spans) |
|
||||
|
||||
## Span shape (the "before")
|
||||
|
||||
**Service:** `image-server` (resource `service.name`), version from
|
||||
`CARGO_PKG_VERSION`. No per-request HTTP server span exists — the migration's
|
||||
`tracing-actix-web` middleware (#139) adds one.
|
||||
|
||||
**Span names**
|
||||
|
||||
- Operation / "root" spans (created manually in handlers): `list_photos`,
|
||||
`list_memories`, `http.insights.generate_agentic`, `ai.insight.generate_agentic`,
|
||||
`ai.agentic.loop`, `ai.rag.search_daily_summaries`, `generate_video_thumbnail`.
|
||||
- DB spans: `db.{query_type}.{operation}` — `query_type ∈ {query, insert, update}`,
|
||||
`operation` = snake_case DAO method (`get_exif`, `store_insight`, …).
|
||||
Tracer scope (`otel.scope.name`) is `db`.
|
||||
- LLM spans: `llm.request`, tracer scope `image-server`.
|
||||
|
||||
**`span.kind`:** `internal` for every operation/DB span; `client` for
|
||||
`llm.request`.
|
||||
|
||||
**Key attributes**
|
||||
|
||||
- Every span: `otel.scope.name` (`image-server` or `db`), `otel.status_code`
|
||||
(`OK` / unset), `span.kind`.
|
||||
- DB (`db.*`): `db.query_type`, `db.operation`.
|
||||
- LLM (`llm.request`): `llm.model` (`qwen3.8-27b-abliterated`),
|
||||
`llm.provider` (`llamacpp`), `llm.operation` (`chat` for tool calls,
|
||||
`chat_stream` for the SSE turn), `llm.tokens.input`, `llm.tokens.output`,
|
||||
`http.status_code`.
|
||||
- `list_photos`: rich request shape — `path`, `recursive`, `sort`, `library`,
|
||||
`media_type`, `pagination.limit/offset/enabled`, `file_count`,
|
||||
`returned_count`, `total_count`, `optimization.batch_tags`,
|
||||
`optimization.db_sort`, `tag_filter_mode`, plus empty camera/gps/date fields.
|
||||
- `ai.insight.generate_agentic`: `backend`, `file_path`, `images_inline`,
|
||||
`max_iterations`, `model`. `ai.agentic.loop`: `iterations_used`.
|
||||
- `generate_video_thumbnail`: `file-name`, `library`, `type`.
|
||||
- `ai.rag.search_daily_summaries`: `query`, `date`, `limit`, `results_count`,
|
||||
`time_weighted`.
|
||||
|
||||
**Nesting — the headline finding.** Parent/child threading is *inconsistent*:
|
||||
|
||||
1. **No HTTP root span.** Handlers open an operation-named span as a root.
|
||||
2. **Most DB spans are orphaned into their own single-span trace** (see
|
||||
`span-inventory.json`: `trace_count == span_count` for most ops).
|
||||
`db.query.get_prefs`, `db.query.count_for_library`, `db.insert.store_insight`,
|
||||
`db.update.*`, etc. each form a separate trace.
|
||||
3. **Threading works in pockets.** `list_photos` (→ 2 DB children),
|
||||
`list_memories` (→ `get_prefs` + 4× `get_memories_in_window`), and the
|
||||
agentic loop (`ai.insight.generate_agentic` → `ai.agentic.loop` →
|
||||
`llm.request` + DB spans) nest correctly.
|
||||
4. **Async work loses the trace.** `POST /insights/generate/agentic` returns
|
||||
**202** with `http.insights.generate_agentic` in one trace; the background
|
||||
generation is a *different root trace* (`ai.insight.generate_agentic`).
|
||||
The streaming chat path is likewise fragmented — its DB calls and
|
||||
`llm.request` land as separate single-span traces, with **no handler span
|
||||
at all**.
|
||||
5. **One 222-span trace** (`b94440d1…`) holds the startup thumbnail sweep —
|
||||
all `generate_video_thumbnail` spans share one trace.
|
||||
|
||||
**Incoming propagation WORKS.** With a caller-supplied W3C `traceparent`, the
|
||||
`list_photos` span is created in the caller's trace-id and references the
|
||||
remote span-id as `CHILD_OF` — i.e. the request joins the upstream trace
|
||||
correctly. This is the behavior the migration must preserve.
|
||||
|
||||
## Files
|
||||
|
||||
- `traces-no-traceparent.json` — all 33 traces from requests 1–4 (Jaeger
|
||||
`/api/traces` dump; requests made without an incoming traceparent).
|
||||
- `traces-with-traceparent.json` — includes the propagation test (request 5).
|
||||
- `span-inventory.json` — per-operation summary: span count, trace count,
|
||||
kind, scope, status, attribute keys. The direct input for a before/after
|
||||
shape diff.
|
||||
|
||||
## Re-capturing
|
||||
|
||||
1. Build `da3901c` release (or the branch under test for the "after").
|
||||
2. `docker run -d --name jaeger -p 16686:16686 -p 14317:4317 jaegertracing/all-in-one:latest`.
|
||||
3. Run the server against a **copy** of the DB with
|
||||
`OTLP_OTLS_ENDPOINT=http://localhost:14317` and a temp `BIND_URL`; remember
|
||||
the hardcoded secondary `localhost:8088` bind collides with the live
|
||||
service (patch it, or stop the service).
|
||||
4. Mint a JWT (`HS256`, `{sub, exp}`, `SECRET_KEY`) and replay the request set
|
||||
in the table above.
|
||||
5. `curl 'http://localhost:16686/api/traces?service=image-server&limit=600'`
|
||||
→ regenerate `span-inventory.json` and diff operation names, kinds,
|
||||
attribute keys, and nesting.
|
||||
@@ -0,0 +1,590 @@
|
||||
[
|
||||
{
|
||||
"operation": "generate_video_thumbnail",
|
||||
"span_count": 222,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "image-server",
|
||||
"status": "(none)",
|
||||
"attribute_keys": [
|
||||
"file-name",
|
||||
"library",
|
||||
"otel.scope.name",
|
||||
"span.kind",
|
||||
"type"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "llm.request",
|
||||
"span_count": 8,
|
||||
"trace_count": 3,
|
||||
"kind": "client",
|
||||
"scope": "image-server",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"http.status_code",
|
||||
"llm.model",
|
||||
"llm.operation",
|
||||
"llm.provider",
|
||||
"llm.tokens.input",
|
||||
"llm.tokens.output",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.count_for_library",
|
||||
"span_count": 4,
|
||||
"trace_count": 4,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_memories_in_window",
|
||||
"span_count": 4,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_persona",
|
||||
"span_count": 4,
|
||||
"trace_count": 4,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_prefs",
|
||||
"span_count": 4,
|
||||
"trace_count": 4,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.insert.upsert_entity",
|
||||
"span_count": 2,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_event_count",
|
||||
"span_count": 2,
|
||||
"trace_count": 2,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_exif",
|
||||
"span_count": 2,
|
||||
"trace_count": 2,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_location_count",
|
||||
"span_count": 2,
|
||||
"trace_count": 2,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.has_any_faces",
|
||||
"span_count": 2,
|
||||
"trace_count": 2,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.has_any_summaries",
|
||||
"span_count": 2,
|
||||
"trace_count": 2,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.list_entities",
|
||||
"span_count": 2,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "ai.agentic.loop",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "image-server",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"iterations_used",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "ai.insight.generate_agentic",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "image-server",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"backend",
|
||||
"file_path",
|
||||
"images_inline",
|
||||
"max_iterations",
|
||||
"model",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "ai.rag.search_daily_summaries",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "image-server",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"date",
|
||||
"limit",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"query",
|
||||
"results_count",
|
||||
"span.kind",
|
||||
"time_weighted"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.insert.create_job",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.insert.store_insight",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.insert.upsert_fact",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.insert.upsert_photo_link",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.faces_for_hash",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"content_hash",
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.find_relevant_events_hybrid",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.find_similar_summaries_with_time_weight",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_active_job",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_current_insight_for_library",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_links_for_photo",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_tag_counts_batch",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"file_count",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.get_tags_for_path",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"path",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.list_rel_paths_for_libraries",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.query.resolve_content_hash",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.update.cancel_active_jobs",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.update.complete_job",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.update.update_facts_insight_id",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "db.update.update_training_messages",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "db",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"db.operation",
|
||||
"db.query_type",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "http.insights.generate_agentic",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "image-server",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"backend",
|
||||
"file_path",
|
||||
"job_id",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "list_memories",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "image-server",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"span.kind"
|
||||
]
|
||||
},
|
||||
{
|
||||
"operation": "list_photos",
|
||||
"span_count": 1,
|
||||
"trace_count": 1,
|
||||
"kind": "internal",
|
||||
"scope": "image-server",
|
||||
"status": "OK",
|
||||
"attribute_keys": [
|
||||
"camera_make",
|
||||
"camera_model",
|
||||
"date_from",
|
||||
"date_to",
|
||||
"exclude_tag_ids",
|
||||
"file_count",
|
||||
"gps_lat",
|
||||
"gps_lon",
|
||||
"gps_radius_km",
|
||||
"lens_model",
|
||||
"library",
|
||||
"media_type",
|
||||
"optimization.batch_tags",
|
||||
"optimization.db_sort",
|
||||
"otel.scope.name",
|
||||
"otel.status_code",
|
||||
"pagination.enabled",
|
||||
"pagination.limit",
|
||||
"pagination.offset",
|
||||
"path",
|
||||
"recursive",
|
||||
"returned_count",
|
||||
"sort",
|
||||
"span.kind",
|
||||
"tag_filter_mode",
|
||||
"tag_ids",
|
||||
"total_count"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1 @@
|
||||
{"data":[{"traceID":"08455e5e41fe244713bdbce55178fb74","spans":[{"traceID":"08455e5e41fe244713bdbce55178fb74","spanID":"53b66e719b4da88b","operationName":"db.query.get_persona","references":[],"startTime":1790704286497358,"duration":97,"tags":[{"key":"db.operation","type":"string","value":"get_persona"},{"key":"db.query_type","type":"string","value":"query"},{"key":"otel.scope.name","type":"string","value":"db"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"internal"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"33dd886ca35f036dc130e157d18cde88","spans":[{"traceID":"33dd886ca35f036dc130e157d18cde88","spanID":"b9886203d0340833","operationName":"db.insert.store_insight","references":[],"startTime":1790704373774193,"duration":6036,"tags":[{"key":"db.operation","type":"string","value":"store_insight"},{"key":"db.query_type","type":"string","value":"insert"},{"key":"otel.scope.name","type":"string","value":"db"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"internal"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"6a3205b66ce3f4f25e849804437b4d2a","spans":[{"traceID":"6a3205b66ce3f4f25e849804437b4d2a","spanID":"689b895b8779feee","operationName":"db.query.get_event_count","references":[],"startTime":1790704423171303,"duration":458,"tags":[{"key":"db.operation","type":"string","value":"get_event_count"},{"key":"db.query_type","type":"string","value":"query"},{"key":"otel.scope.name","type":"string","value":"db"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"internal"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"9f649ce92d6b31b1e85900a052388fd9","spans":[{"traceID":"9f649ce92d6b31b1e85900a052388fd9","spanID":"36e0c7e5a2ee06b0","operationName":"llm.request","references":[],"startTime":1790704423320965,"duration":31634307,"tags":[{"key":"http.status_code","type":"int64","value":200},{"key":"llm.model","type":"string","value":"qwen3.8-27b-abliterated"},{"key":"llm.operation","type":"string","value":"chat_stream"},{"key":"llm.provider","type":"string","value":"llamacpp"},{"key":"llm.tokens.input","type":"int64","value":6904},{"key":"llm.tokens.output","type":"int64","value":1422},{"key":"otel.scope.name","type":"string","value":"image-server"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"client"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"b0339bf5be5b7ca90eded50c4c30ea8d","spans":[{"traceID":"b0339bf5be5b7ca90eded50c4c30ea8d","spanID":"4db108684f58fcaa","operationName":"db.update.update_training_messages","references":[],"startTime":1790704454955816,"duration":1631,"tags":[{"key":"db.operation","type":"string","value":"update_training_messages"},{"key":"db.query_type","type":"string","value":"update"},{"key":"otel.scope.name","type":"string","value":"db"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"internal"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"e710521acc2fac9cf41374cb56cc2e8c","spans":[{"traceID":"e710521acc2fac9cf41374cb56cc2e8c","spanID":"29772615a01901bf","operationName":"db.query.count_for_library","references":[],"startTime":1790704268693001,"Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"data":[{"traceID":"9e81fc7e14eaf9f372040183caf7b093","spans":[{"traceID":"9e81fc7e14eaf9f372040183caf7b093","spanID":"2a3fd729253fcef9","operationName":"db.query.count_for_library","references":[],"startTime":1790704268692143,"duration":617,"tags":[{"key":"db.operation","type":"string","value":"count_for_library"},{"key":"db.query_type","type":"string","value":"query"},{"key":"otel.scope.name","type":"string","value":"db"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"internal"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"948d27569252087184047aafb327e9f2","spans":[{"traceID":"948d27569252087184047aafb327e9f2","spanID":"18359fc0dd6057b2","operationName":"http.insights.generate_agentic","references":[],"startTime":1790704286474704,"duration":22781,"tags":[{"key":"backend","type":"string","value":"local"},{"key":"file_path","type":"string","value":"Photo06172345.jpg"},{"key":"job_id","type":"int64","value":380},{"key":"otel.scope.name","type":"string","value":"image-server"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"internal"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"1a5ac0cb51a80bdaf47f9e48c6540eca","spans":[{"traceID":"1a5ac0cb51a80bdaf47f9e48c6540eca","spanID":"43600617e64593a2","operationName":"db.query.get_prefs","references":[],"startTime":1790704286497889,"duration":1098,"tags":[{"key":"db.operation","type":"string","value":"get_prefs"},{"key":"db.query_type","type":"string","value":"query"},{"key":"otel.scope.name","type":"string","value":"db"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"internal"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"0af6272e8e1e6ded88403fe2761b552c","spans":[{"traceID":"0af6272e8e1e6ded88403fe2761b552c","spanID":"c2ec516d23e8a6df","operationName":"db.query.count_for_library","references":[],"startTime":1790704268693775,"duration":287,"tags":[{"key":"db.operation","type":"string","value":"count_for_library"},{"key":"db.query_type","type":"string","value":"query"},{"key":"otel.scope.name","type":"string","value":"db"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"internal"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"27cefad7c25390286c6b3fc43c9cd9c7","spans":[{"traceID":"27cefad7c25390286c6b3fc43c9cd9c7","spanID":"eb323a2e3d166157","operationName":"db.query.get_event_count","references":[],"startTime":1790704286604710,"duration":57,"tags":[{"key":"db.operation","type":"string","value":"get_event_count"},{"key":"db.query_type","type":"string","value":"query"},{"key":"otel.scope.name","type":"string","value":"db"},{"key":"otel.status_code","type":"string","value":"OK"},{"key":"span.kind","type":"string","value":"internal"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"image-server","tags":[{"key":"service.version","type":"string","value":"1.5.0"},{"key":"telemetry.sdk.language","type":"string","value":"rust"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"0.31.0"}]}},"warnings":null},{"traceID":"957362713b0580085adc63b7574a4451","spans":[{"traceID":"957362713b0580085adc63b7574a4451","spanID":"2199d1950cac212a","operationName":"db.query.get_location_count","references":[],"startTime":1790704286604771,"duration":4702,"tags":[{"key":"db.operation","type":"string","value":"get_location_count"},{"key":"db.query_type","type":"string","value":"query"},{"key":"otel.scope.name","type":"string","valuLine truncated
|
||||
Reference in new issue
Block a user