Skip to content

feat(dashboard): add ops-visibility panels to EloqKV overview dashboards#430

Merged
thweetkomputer merged 3 commits into
mainfrom
feat/eloqkv-dashboard-ops-visibility
Jul 3, 2026
Merged

feat(dashboard): add ops-visibility panels to EloqKV overview dashboards#430
thweetkomputer merged 3 commits into
mainfrom
feat/eloqkv-dashboard-ops-visibility

Conversation

@thweetkomputer

Copy link
Copy Markdown
Collaborator

Enhance both eloqkv-overview.json and eloqkv-overview-eloqstore.json with operator-facing panels (pure Grafana/PromQL over already-scraped metrics, no eloqkv code change, zero extra load on eloqkv):

  • Top 10 Slowest Commands (p99) and Top 10 Commands by QPS, non-zero only, side by side at the top (surface a slow/hot command without pre-selecting it in the Command View variable).
  • "Admin Commands (info / cluster)" collapsed row: OPS + latency for the info/cluster admin commands (cluster & instance views).
  • "Connections" expandable section: Connection Count history per instance.
  • "Pressure Rate" expandable section: busy-round pressure = 1 - empty_round_ratio (gauge + history), an eloqkv-internal saturation signal (CPU% is useless for the busy-loop model).
  • Busy Round Count (per sec) in the Busy Round row, from busy_round_duration_count.

thweetkomputer and others added 2 commits July 1, 2026 07:43
Enhance both eloqkv-overview.json and eloqkv-overview-eloqstore.json with
operator-facing panels (pure Grafana/PromQL over already-scraped metrics,
no eloqkv code change, zero extra load on eloqkv):

- Top 10 Slowest Commands (p99) and Top 10 Commands by QPS, non-zero only,
  side by side at the top (surface a slow/hot command without pre-selecting
  it in the Command View variable).
- "Admin Commands (info / cluster)" collapsed row: OPS + latency for the
  info/cluster admin commands (cluster & instance views).
- "Connections" expandable section: Connection Count history per instance.
- "Busy Round Count (per sec)" in the Busy Round row, from the
  busy_round_duration_count counter.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@thweetkomputer thweetkomputer force-pushed the feat/eloqkv-dashboard-ops-visibility branch from f959ac4 to 7d5c3b3 Compare July 2, 2026 14:56
The Top-10 Slowest / Top-10 QPS panels ran histogram_quantile over the
high-cardinality redis_command_duration_bucket across the full range on
every step. At 24h this loaded ~14.6GB into Prometheus and got OOM-killed
(confirmed via dmesg on prod, twice).

Add recording rules (eloqkv_precompute group) that collapse the buckets
into low-cardinality per-(type,instance) series every 15s:
  - eloqkv:cmd_qps:rate1m
  - eloqkv:cmd_latency:1m{quantile=50|90|95|99|99.9}

Point the two Top-N panels at the precomputed series so a 24h range query
just reads a few dozen ready series instead of exploding the raw buckets.
Latency Top-N is now per-(command,instance) since quantiles can't be
re-aggregated across instances; QPS stays per-command (additive).

Recording rules are evaluated by Prometheus itself — no Alertmanager
dependency. Applied on deploy via the standard alert.rules render path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@thweetkomputer thweetkomputer requested a review from zhangh43 July 3, 2026 06:59
@thweetkomputer thweetkomputer merged commit a3d98bd into main Jul 3, 2026
2 checks passed
@thweetkomputer thweetkomputer deleted the feat/eloqkv-dashboard-ops-visibility branch July 3, 2026 07:25
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.

2 participants