Found while working #87, which deleted the phantom auth_failures_total alert and removed "auth failure rate" from the same FAQ sentence. Filed rather than folded in: the two items are the same defect class but not the same call, and #87's own scope was the auth signal.
What is there
content/docs/resources/faq.mdx, "What metrics should I monitor?" — after #87 the answer reads:
A: 5xx rate, p95 latency, readiness (`/api/v1/ready`), queue depth. …
Three of those four are real. 5xx rate and p95 latency come off http_requests_total / http_request_duration_ms, and readiness is a shipped endpoint. queue depth is emitted by nothing.
On objectstack@origin/main at b057e53f4:
git grep -i 'queue_depth|queueDepth|queue_size|jobs_pending|queue_length' → 4 hits, all of them test fixtures
and the four are arbitrary placeholder names inside unit tests of the metrics registry itself — reg.gauge('queue_size', 7) in packages/observability/src/__tests__/otlp-http.test.ts:90, m.gauge('queue_depth', 3) in packages/runtime/src/observability/metrics.test.ts:58. Nothing in the runtime registers such a series. Control: job_schedule_failures_total greps to its declaration in semconv.ts:56and a live emitter at packages/runtime/src/app-plugin.ts:893, so the grep and the tree are fine.
packages/observability/src/semconv.ts declares 13 names and the only jobs-related one is job_schedule_failures_total — a counter for "a DECLARED background job could not be handed to the job service", i.e. the job will never run. That is a job outage counter, not a depth gauge.
Why this is a call, not a transcription
Same reason #87 was: deleting is honest but costs the answer its only background-jobs signal, and the replacement is not pinned by evidence.
⛔ The prohibition #87 carried applies here unchanged: do not resolve this by leaving the recommendation and annotating that the metric may not exist. A signal an operator is told to monitor, annotated as unavailable, is still a signal they will go looking for.
Note on filing
Checked for duplicates first: no open issue in this repository mentions queue depth or this FAQ answer.
Related: #87, #70, objectstack-ai/objectstack#9623.
Generated by Claude Code
Found while working #87, which deleted the phantom
auth_failures_totalalert and removed "auth failure rate" from the same FAQ sentence. Filed rather than folded in: the two items are the same defect class but not the same call, and #87's own scope was the auth signal.What is there
content/docs/resources/faq.mdx, "What metrics should I monitor?" — after #87 the answer reads:Three of those four are real.
5xx rateandp95 latencycome offhttp_requests_total/http_request_duration_ms, and readiness is a shipped endpoint.queue depthis emitted by nothing.On
objectstack@origin/mainatb057e53f4:and the four are arbitrary placeholder names inside unit tests of the metrics registry itself —
reg.gauge('queue_size', 7)inpackages/observability/src/__tests__/otlp-http.test.ts:90,m.gauge('queue_depth', 3)inpackages/runtime/src/observability/metrics.test.ts:58. Nothing in the runtime registers such a series. Control:job_schedule_failures_totalgreps to its declaration insemconv.ts:56and a live emitter atpackages/runtime/src/app-plugin.ts:893, so the grep and the tree are fine.packages/observability/src/semconv.tsdeclares 13 names and the only jobs-related one isjob_schedule_failures_total— a counter for "a DECLARED background job could not be handed to the job service", i.e. the job will never run. That is a job outage counter, not a depth gauge.Why this is a call, not a transcription
Same reason #87 was: deleting is honest but costs the answer its only background-jobs signal, and the replacement is not pinned by evidence.
queue depth. Leaves 5xx rate, p95 latency, readiness — all real. Silent about background jobs.job_schedule_failures_total. Real, declared, emitted. But it answers a different question — "a job was never scheduled" rather than "the queue is backing up" — so recommending it as the queue signal would be a second inaccuracy, quieter than the first.objectstackroadmap question, the way Decide whether SEMCONV should declare an auth-failure metric — nothing instruments authentication today, and 401/403 out ofhttp_requests_totalcannot stand in for it objectstack#9623 is for the auth metric. Note the job service is adapter-backed, so "depth" may not be a single well-defined number across adapters — that is part of what the call would have to settle.⛔ The prohibition #87 carried applies here unchanged: do not resolve this by leaving the recommendation and annotating that the metric may not exist. A signal an operator is told to monitor, annotated as unavailable, is still a signal they will go looking for.
Note on filing
Checked for duplicates first: no open issue in this repository mentions queue depth or this FAQ answer.
Related: #87, #70, objectstack-ai/objectstack#9623.
Generated by Claude Code