Skip to content

feat(chart): dashboard Job picker defaults to All + Go runtime panels#48

Merged
ynsta merged 1 commit into
mainfrom
chart/dashboard-job-default-allmatch
May 20, 2026
Merged

feat(chart): dashboard Job picker defaults to All + Go runtime panels#48
ynsta merged 1 commit into
mainfrom
chart/dashboard-job-default-allmatch

Conversation

@ynsta
Copy link
Copy Markdown
Contributor

@ynsta ynsta commented May 20, 2026

Summary

Two related dashboard improvements, packaged as a single chart bump
1.9.2 → 1.9.3.

1. Job picker now defaults to All

The Job template variable previously had no default, so opening the
dashboard could show "No data" until a user manually picked a job. Now:

  • includeAll: true
  • allValue: ".*s3proxy.*"
  • current: { text: "All", value: "$__all" }
  • Template regex: /s3proxy/ restricts the dropdown to jobs whose name
    contains s3proxy.

Effect: dashboard opens populated on multi-release clusters; the
dropdown only lists relevant jobs.

2. New Runtime (Go) row

Six panels backed by the default client_golang collectors that
s3proxy already registers (collectors.NewGoCollector +
NewProcessCollector in s3proxy/internal/monitoring/monitoring.go):

Panel Metric
CPU usage (cores) rate(process_cpu_seconds_total[2m])
Resident memory (RSS) process_resident_memory_bytes
Go heap in use go_memstats_heap_inuse_bytes, _heap_alloc_bytes
Goroutines go_goroutines
GC pause (p50/p95/p99) go_gc_duration_seconds{quantile=…}
Open file descriptors process_open_fds

All scoped on job=~"$job", instance=~"$instance" so the existing
pickers apply. No app code change — these metrics already ship.

See CHANGELOG.mdChart / 1.9.3.

Test plan

  • jq . charts/s3proxy/dashboards/s3proxy.json >/dev/null — valid JSON
  • helm lint charts/s3proxy — passes
  • Render hits the new defaults exactly once:
    helm template t charts/s3proxy --set grafanaDashboard.enabled=true \
      --show-only templates/grafana-dashboard.yaml \
      | grep -E '"allValue": "\.\*s3proxy\.\*"'
    
    → 1
  • Render exposes all six new runtime metric names (8 matches across
    panel targets).
  • Render keeps job=~"$job" filtering everywhere (20 hits) and has
    zero stale service="s3proxy" filters.
  • Open the dashboard on the bug-reporting cluster; confirm panels
    populate without touching the picker and the Runtime row renders.
  • CI green on chart/dashboard-job-default-allmatch.

Release flow

Merge → tag chart-v1.9.3 on main → CI publishes
ghcr.io/intrinsec/s3proxy/charts/s3proxy:1.9.3.

🤖 Generated with Claude Code

Adds defaults so users don't land on an empty dashboard with no `$job`
selected. The `Job` template variable now opens with **All**
(`allValue: ".*s3proxy.*"`) and its picker is filtered to jobs whose
name contains `s3proxy` via the template `regex: /s3proxy/`.

Also adds a new **Runtime (Go)** row with six panels backed by the
default `client_golang` collectors that s3proxy already registers
(`collectors.NewGoCollector` + `NewProcessCollector`): CPU usage, RSS
memory, Go heap in use, goroutines, GC pause quantiles, and open file
descriptors. All panels scope on `job=~"$job", instance=~"$instance"`
so they pick up the same picker selection as the HTTP/business panels.

Chart bump 1.9.2 -> 1.9.3.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ynsta ynsta merged commit 86d7de6 into main May 20, 2026
5 checks passed
@ynsta ynsta deleted the chart/dashboard-job-default-allmatch branch May 20, 2026 11:36
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