Files
Pulse/docs/METRICS_HISTORY.md
rcourtman 2b48b0a459 feat: add --kube-include-all-deployments flag for Kubernetes agent
Adds IncludeAllDeployments option to show all deployments, not just
problem ones (where replicas don't match desired). This provides parity
with the existing --kube-include-all-pods flag.

- Add IncludeAllDeployments to kubernetesagent.Config
- Add --kube-include-all-deployments flag and PULSE_KUBE_INCLUDE_ALL_DEPLOYMENTS env var
- Update collectDeployments to respect the new flag
- Add test for IncludeAllDeployments functionality
- Update UNIFIED_AGENT.md documentation

Addresses feedback from PR #855
2025-12-18 20:58:30 +00:00

2.1 KiB

Metrics History (Persistent)

Pulse persists metrics history to disk so trend views and sparklines survive restarts.

Storage Location

Metrics history is stored in a SQLite database named metrics.db under the Pulse data directory:

  • systemd/LXC installs: typically /etc/pulse/metrics.db
  • Docker/Kubernetes installs: typically /data/metrics.db

Retention Model (Tiered)

Pulse keeps multiple resolutions of the same data, which allows longer history without storing raw samples forever:

  • Raw (high-resolution, short window)
  • Minute aggregates
  • Hourly aggregates
  • Daily aggregates

Default retention values (subject to change) are:

  • Raw: 2 hours
  • Minute: 24 hours
  • Hourly: 7 days
  • Daily: 90 days

Advanced: Retention Tuning

Tiered retention is stored in system.json in the Pulse data directory:

  • systemd/LXC installs: typically /etc/pulse/system.json
  • Docker/Kubernetes installs: typically /data/system.json

Keys:

{
  "metricsRetentionRawHours": 2,
  "metricsRetentionMinuteHours": 24,
  "metricsRetentionHourlyDays": 7,
  "metricsRetentionDailyDays": 90
}

After changing these values, restart Pulse.

API Access

Pulse exposes the persistent metrics store via:

  • GET /api/metrics-store/stats
  • GET /api/metrics-store/history

History Query Parameters

GET /api/metrics-store/history supports:

  • resourceType (required): node, guest, storage, docker, dockerHost
  • resourceId (required): resource identifier
  • metric (optional): cpu, memory, disk, etc. Omit to return all metrics for the resource.
  • range (optional): 1h, 6h, 12h, 24h, 7d, 30d, 90d (default 24h)

Example:

curl -H "X-API-Token: $TOKEN" \
  "http://localhost:7655/api/metrics-store/history?resourceType=guest&resourceId=vm-100&range=7d&metric=cpu"

Troubleshooting

  • No sparklines / empty history: confirm the instance can write to the data directory and that metrics.db exists.
  • Large disk usage: reduce polling frequency first. If you need tighter retention, adjust the tiered retention settings in system.json (advanced) and restart Pulse.