docs(monitoring): correct the metric reference against Weaviate v1.39 - #545
Open
dudanogueira wants to merge 1 commit into
Open
dudanogueira wants to merge 1 commit into
dudanogueira wants to merge 1 commit into
Conversation
Follows the Sept 2026 metrics audit, which checked every Prometheus metric in the Weaviate source against a live cluster, this page, and the Grafana dashboards. Metric names - Add the missing `weaviate_` prefix to 67 rows. Four whole families were documented under names Prometheus never exposes, so any query copied from this page returned nothing: async replication (21), LSM bucket (35), LSM memtable flush (5), replication coordinator and read repair (11). - Document 141 metrics that had no row: object TTL, the replication engine, HTTP and gRPC servers, inter-node connection pools, batch streaming, query admission control, export, tenants and offload, incremental backups, background processes, cluster store, and the RAFT and memberlist internals. - Drop 5 rows for metrics that are declared but never written (`concurrent_goroutines`, `lsm_segment_objects`, `backup_restore_init_ms`, `backup_restore_from_backend_ms`, `tokenizer_requests_total`). - Correct the type of `weaviate_internal_counter_raft_state_follower`, and the labels on `weaviate_build_info`, `weaviate_schema_collections`, `queue_paused` and `queue_count`. Every row now agrees with the running process: on a 3-node v1.39.5 cluster, 306 of the 346 documented metrics were confirmed in a live scrape, and every non-runtime metric that cluster exposed has a row. The remaining 40 belong to modules or code paths the test stack does not exercise. `tools/check_metrics_docs.py` re-runs that comparison against the metric catalog for the next release. Page content - Publish the "What to alert on" and "OpenTelemetry tracing" sections, which were written but left inside an HTML comment, here and in the env-var reference that the latter links to. - Replace the stale `tools/dev/grafana` dashboard list with the dashboards in `weaviate/grafana-dashboard-weaviate`, plus how to load them and how they behave in Docker, on bare metal and in Kubernetes. Remove the screenshots of the dashboards they replace. - Say what `PROMETHEUS_MONITORING_GROUP` actually does to labels and metrics, note that `weaviate_schema_shards` reports an empty status for collections without multi-tenancy, and replace the stale five-file source list. - Add `TRACK_VECTOR_DIMENSIONS` and `TRACK_VECTOR_DIMENSIONS_INTERVAL` to the env-var reference. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Orca Security Scan Summary
| Status | Check | Issues by priority | |
|---|---|---|---|
| Infrastructure as Code | View in Orca | ||
| SAST | View in Orca | ||
| Secrets | View in Orca | ||
| Vulnerabilities | View in Orca |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
Do not merge before the dashboards PR. The rewritten Sample Dashboards section points at
weaviate/grafana-dashboard-weaviate, whosemaindoes not yet hold the revamped dashboards.What's being changed:
The monitoring page had drifted far enough from the code to be actively misleading. Four whole metric families were documented without the
weaviate_prefix Prometheus actually exposes, so any query copied from the page returned no data: async replication (21 rows), LSM bucket (35), LSM memtable flush (5), replication coordinator and read repair (11). A further 141 metrics a v1.39 node exposes had no row at all — object TTL, the replication engine, the HTTP and gRPC servers, query admission control, batch streaming, export, tenants and offload, incremental backups, the cluster store, and the RAFT and memberlist internals. Five rows described metrics that are declared in the source but never written.This comes out of the Sept 2026 metrics audit, which checked every Prometheus metric in the Weaviate source three ways: emitted by a running cluster, present on this page, and charted on a dashboard.
Rather than spot-fixing, every table was checked against a metric catalog built from a live
/metricsscrape of a 3-node v1.39.5 cluster plus a sweep of the Weaviate source.Also on the page:
weaviate/grafana-dashboard-weaviate(the maintained home) in place ofweaviate/weaviate'stools/dev/grafana, adding how to load them (Grafana UI, file provisioning, kube-prometheus-stack) and which are portable across Docker, bare metal and Kubernetes. The eight screenshots of the replaced dashboards are deleted.curl -s localhost:2112/metrics | grep '^# HELP'as the definitive answer for a given version, plus a note that which metrics appear depends on which modules are enabled.PROMETHEUS_MONITORING_GROUPactually does (labels collapse ton/a; per-segment LSM and vector-dimension metrics are dropped), and thatweaviate_schema_shardsreports an emptystatusfor collections without multi-tenancy.weaviate_internal_counter_raft_state_followerand the labels onweaviate_build_info,weaviate_schema_collections,queue_pausedandqueue_count.TRACK_VECTOR_DIMENSIONSandTRACK_VECTOR_DIMENSIONS_INTERVALto the env-var reference, and correctedPROMETHEUS_MONITORING_METRIC_NAMESPACE, which described a prefix that is reserved rather than applied.Two deliberate choices worth a reviewer's attention:
concurrent_goroutines,lsm_segment_objects,backup_restore_init_ms,backup_restore_from_backend_msandtokenizer_requests_totalpromise data that never arrives. They are listed inEXPECTED_ABSENTin the new checker, so a release that starts writing them fails the check and gets documented.tools/check_metrics_docs.pyparses the page's tables and diffs them against the catalog JSON from the dashboards repo. It is not wired into CI — the catalog lives in another repo and needs a live cluster — but it turns "re-audit the metrics page" into one command each release.Type of change:
How has this been tested?
yarn build-devclean;yarn validate-links-devshows no new breakage (the two quickstart links and the Google Tag Managerid=Nonetag are pre-existing and unrelated).tools/check_metrics_docs.py --labelspasses against the v1.39 catalog: no unknown names, no missing Weaviate-owned metrics, no duplicate rows, no type or label mismatches.Risks
#mcp-server,#sample-dashboards) still resolve.weaviate_weaviate_grpc_conn_*prefix,_mstimers recording seconds, unusable backup labels) are being filed separately onweaviate/weaviate. This PR documents metrics under the names actually exposed without commenting on why.🤖 Generated with Claude Code