Skip to content

docs(integration): add Loki and Tempo observability integration guides - #152

Merged
majinghe merged 1 commit into
rustfs:mainfrom
majinghe:docs/loki-tempo-integration
Sep 20, 2026
Merged

majinghe merged 1 commit into
rustfs:mainfrom
majinghe:docs/loki-tempo-integration

Conversation

@majinghe

Copy link
Copy Markdown
Collaborator

Summary

Adds Grafana Loki and Grafana Tempo guides under the existing Observability category in all five locales (en, zh, de, fr, ja), wired into the category landing pages and meta.json. Both follow the established integration guide structure, and both link the upstream GitHub repositories in the product introductions.

  • loki.md: single-binary Loki with the TSDB schema (v13) storing chunks and index in RustFS through common.storage.s3 (endpoint: rustfs:9000, s3forcepathstyle: true, insecure: true). Pushes log streams via /loki/api/v1/push, queries them via query_range, verifies chunk objects under fake/<stream-fingerprint>/ via rc ls and a Console screenshot.
  • tempo.md: single-binary Tempo pinned to grafana/tempo:2.9.5 (Tempo 3.x changed the config layout, documented in Troubleshooting) with storage.trace.backend: s3 (forcepathstyle: true, insecure: true). Pushes Zipkin spans via curl, searches via /api/search, verifies the Parquet block at single-tenant/<block-id>/data.parquet, and proves persistence by re-querying after a Tempo restart.
  • Both use the rc-based bucket initializer, short flush windows for verification (chunk_idle_period/max_chunk_age/max_block_duration/blocklist_poll), and document the pitfalls verified during testing: the inmemory ring KV store for single binaries, Loki's 90% WAL disk monitor, and block flush/blocklist polling delays.
  • Console screenshots are light theme at 2× DPR, ≤300 KB: Chinese captures in zh, English captures in en/de/fr/ja.

Verification

Validated end to end on Ubuntu 24.04 against rustfs/rustfs-x86-musl:v2.3.1:

  • Loki (grafana/loki:latest, v3.7.8): 20 pushed log entries return through query_range; after the flush window, two chunk objects appear in the bucket under fake/.
  • Tempo (grafana/tempo:2.9.5): a five-span Zipkin trace is pushed (202), discovered by /api/search (inspectedTraces: 1 from the backend block), returned by /api/traces/<id> with 200, and still queryable after a Tempo restart — the block Parquet (single-tenant/<block-id>/data.parquet, 25 KiB) is visible in RustFS.

npm run docs:check passes; npm run build passes (2635 pages); locale audit reports no findings for the new pages.

Add Loki and Tempo guides under the observability category in all
five locales (en, zh, de, fr, ja), and wire them into the
observability meta.json and category landing pages.

- loki.md: single-binary Loki with the TSDB schema storing chunks
  and index in RustFS through common.storage.s3 (path-style, plain
  HTTP), with push, query_range, and chunk-object verification.
- tempo.md: single-binary Tempo 2.9.5 with storage.trace backend s3
  (forcepathstyle, insecure), a Zipkin span push, search + trace
  lookup, block-object verification, and a restart persistence check.
- Both guides pin verified image versions (grafana/loki v3.7.8,
  grafana/tempo 2.9.5 — Tempo 3.x changed the config layout), use
  the rc-based bucket initializer, and document the pitfalls hit
  during verification (ring kvstore, WAL disk monitor, ingester
  restart state, block flush and blocklist polling delays).

Verified end to end on Ubuntu 24.04 against rustfs/rustfs-x86-musl:
v2.3.1: 20 Loki log entries query back after chunk flush with chunk
objects visible in the bucket; a five-span Tempo trace flushes as
single-tenant/<block>/data.parquet and stays searchable across a
Tempo restart.
@vercel

vercel Bot commented Sep 20, 2026

Copy link
Copy Markdown

@majinghe is attempting to deploy a commit to the overtrue's projects Team on Vercel.

A member of the Team first needs to authorize it.

@majinghe
majinghe merged commit 8ac42e1 into rustfs:main Sep 20, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant