Commit Graph
19 Commits
Author SHA1 Message Date
Jan-Otto Kröpke 018ec75223 mixin: move kubernetes to docs, dashboard and rendered rules to contrib
kubernetes/ moves to docs/kubernetes/, dashboard/ to contrib/dashboard/,
and the rendered Prometheus rules and alerts to contrib/monitoring/ with
a README that says how to use and regenerate them.

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-17 19:26:11 +00:00
Jan-Otto Kröpke 51a579e031 mixin: one alert file per collector with plain PromQL
Split alerts/alerts.libsonnet into one file per collector under alerts/,
like kubernetes-mixin. Each rule is a plain Prometheus alerting rule with
the PromQL written out in an expr block and %(name)s placeholders for the
_config values; lib/alerts.libsonnet keeps the collector and per-alert
gating and keep_firing_for. The pagefile, diskdrive and license alerts
get groups of their own so that one file is one group. The rendered
default rules are unchanged apart from expr block scalars.

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-17 14:53:14 +00:00
Jan-Otto Kröpke f8f2a71d77 mixin: remove enableActiveDirectory and enableTime
collectors.ad and collectors.time are the only switches for the Active
Directory and clock alerts, like every other opt-in collector. Setting
the removed keys fails the build with a message naming the replacement.

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-17 07:27:15 +00:00
Jan-Otto Kröpke d819362150 mixin: add alerts for the opt-in collectors
Every optional collector of the mixin now has alerts, generated only with
that collector enabled in _config.collectors: clock source, disk drive
status, page file usage, license status, scheduled task results, pending
updates, Hyper-V WMI and replication health, failover cluster nodes,
resources, groups and shared volumes, Storage Spaces pool and virtual disk
health, DHCP scope exhaustion and DNS zone transfer failures. The alerts
of the pagefile, diskdrive and license collectors join the memory, disk
and system groups; the other collectors get a group of their own.

New knobs: taskSelector, sharedVolumeSelector, pagefileUsageThreshold,
dhcpScopeFreeWarningThreshold, dhcpScopeFreeCriticalThreshold and
updatePendingDuration. The test configuration enables every optional
collector and tests/optional.test.yaml covers the new alerts.

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-17 02:28:35 +00:00
Jan-Otto Kröpke d6afd48819 mixin: address review findings on tier 1 alerts
WindowsHostRebooted compares against the last boot time of the previous
hour instead of the sample of ten minutes ago, so a scrape gap during
the reboot no longer suppresses the alert. WindowsServiceNotRunning
joins with ignoring() so instances with the same name in different
clusters do not match each other. Replacing the removed
networkErrorRateThreshold or networkDiscardRateThreshold knobs now
fails with a message naming the ratio thresholds.

The network error and discard runbooks describe the packet ratio, the
service runbooks explain PID reuse, shared host processes and selector
exclusions, and the tests cover alert recovery, a reboot after a scrape
gap and a service name repeated across clusters.

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 23:25:07 +00:00
Jan-Otto Kröpke ae5d0cca2a mixin: group alerts by collector area and add tier 1 alerts
The alerts of the mixin now come in one rule group per collector area
(windows-exporter, windows-cpu, windows-memory, windows-disk,
windows-network, windows-service, windows-system, windows-active-directory,
windows-time). Every alert names the collectors it reads and is generated
only when _config.collectors enables them, the same switch the dashboard
uses; enableActiveDirectory and enableTime set collectors.ad and
collectors.time. _config.alerts switches single alerts off by name, and an
unknown name fails the build.

New alerts for the default collectors: WindowsCollectorTimeout,
WindowsScrapeQueueTimeout, WindowsCPUSaturation (processor queue per core),
WindowsMemoryPagingHigh, WindowsNetworkUtilizationHigh,
WindowsNetworkInterfaceFlapping, WindowsServiceNotRunning (automatic
services without triggers), WindowsServiceCrashLooping (processes per
service in 15 minutes) and WindowsHostRebooted (info, fires once per
reboot). WindowsNetworkErrors and WindowsNetworkDiscards compare the error
and discard rates with the packet rate (networkErrorRatioThreshold and
networkDiscardRatioThreshold, in percent) instead of an absolute packet
rate. Threshold alerts set keep_firing_for from keepFiringFor (5m); the new
infoSeverity and serviceSelector knobs follow the existing ones.

New recordings: windows:cpu_queue_per_core:ratio,
windows:net_received_packets:rate and windows:net_sent_packets:rate.

Each new alert has a runbook, a README row and a unit test;
tests/alerts.test.jsonnet checks the collector gating, the alert switches
and the group layout. The runbook check renders the alerts of every
collector. contrib/mixin/AGENTS.md documents the checklist for new alerts.

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 23:06:59 +00:00
Jan-Otto KröpkeandClaude 1e48663824 docs: move the 0.32 upgrade guide to docs/upgrade (#2753)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-16 12:08:02 +02:00
Jan-Otto Kröpke 667200f757 collector: name instance labels after the entity they identify (#2744)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 11:07:04 +02:00
Jan-Otto Kröpke 3fb18521f6 collector: publish base units and _total counter names (#2743)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 10:48:26 +02:00
Jan-Otto KröpkeandClaude d6c4c6fa46 mixin: add an MSSQL dashboard (#2725)
Signed-off-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-10-15 21:22:45 +02:00
Jan-Otto KröpkeandClaude 491bb0de73 memory: rename commit_limit, drop free system PTEs, add standby cache lifetime (#2694)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-11 23:03:30 +02:00
Jan-Otto KröpkeandClaude Opus 5.5 1cdea1f42a mixin: add a dashboard per tab next to the full dashboard (#2678)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-11 16:29:56 +02:00
Jan-Otto KröpkeandClaude c5b88ef2d2 mixin: make dashboard UID, title, description and tags configurable (#2672)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-11 09:44:28 +02:00
Jan-Otto KröpkeandClaude Opus 5.5 4e6cbf864c mixin: explain "not in Go" goroutines, allow a compact dashboard (#2671)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-11 02:53:43 +00:00
Jan-Otto KröpkeandClaude Opus 5.5 f292a6fbcf dashboard: add Storage Spaces row to the Disk tab (#2655)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-10 17:36:42 +02:00
Jan-Otto KröpkeandClaude Opus 5.5 8b5a0ffd40 dashboard: add fleet counters, C: usage and busiest interface (#2651)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-10 16:21:55 +02:00
Jan-Otto KröpkeandClaude Opus 5.5 798570e9aa dashboard: add stat rows, sections, new tabs and collector selection (#2647)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-10 16:10:55 +02:00
Jan-Otto Kröpke d06f168926 contrib: expand Windows mixin rules and publish runbooks (#2575)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-09 09:10:59 +02:00
Jan-Otto Kröpke ad1db73b26 contrib: add Windows exporter monitoring mixin (#2558)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-08 23:29:23 +02:00