Commit Graph
2091 Commits
Author SHA1 Message Date
Jan-Otto Kröpke fcb7cf32be mixin: commit the rendered rules and alerts
The rule files rendered from the default configuration are committed next
to the sources so they can be used without Jsonnet. mise run check-rules
regenerates them and fails on a difference; CI and mise run test run it,
like the dashboard drift check.

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-17 07:50:01 +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 e5a9dfcf7a mixin: note the metric contract check for runbooks in AGENTS.md
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-17 02:33:23 +00:00
Jan-Otto Kröpke 7b6cef63cb mixin: name the emitted quorum type metric in the cluster node runbook
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-17 02:33:21 +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 b7333304d6 mixin: fix textlint terminology in the new runbook and agent notes
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 23:09:46 +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 da7bebc6b3 pdh: convert all raw time counter types to seconds (#2776)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
v0.32.0-beta.7
2026-10-16 22:54:44 +02:00
Jan-Otto KröpkeandClaude a9d5bbef48 docs: add Defender and disk health examples to the wmi collector (#2771)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-16 19:59:48 +00:00
Jan-Otto KröpkeandClaude dd5f441ac6 docs: clarify which raw performance counters need a multiplier (#2775)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-16 21:58:43 +02:00
Jan-Otto Kröpke be5942d943 installer: add SERVICE_ACCOUNT and document a least-privilege service account (#2769)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 21:49:21 +02:00
Jan-Otto KröpkeandClaude dfc5653376 performancecounter: add a multiplier option to convert values to base units (#2773)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-16 21:33:47 +02:00
Jan-Otto KröpkeandClaude db1ad936dc wmi: add a multiplier option to convert values to base units (#2772)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-16 21:33:35 +02:00
Jan-Otto KröpkeandClaude f6e8e67a00 docs: explain idle time rates above 1 for logical_disk and physical_disk (#2770)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-16 21:33:09 +02:00
Jan-Otto Kröpke 4ab9d475e1 cpu: hide small drops of the processor time counters (#2766)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 21:32:54 +02:00
Jan-Otto KröpkeandClaude 5b22eca06a registry: add a multiplier option to convert values to base units (#2774)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-16 21:32:00 +02:00
Jan-Otto Kröpke 4f8fc2baef service: add delayed_start and trigger_start labels to windows_service_info (#2768)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 21:30:11 +02:00
Jan-Otto Kröpke 4f3152d84d hyperv: add the vm_state sub-collector for VMs that are not running (#2765)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 21:21:21 +02:00
Jan-Otto Kröpke ea6126fb67 netframework: add process_id to all metrics and process filters (#2767)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 21:20:11 +02:00
Jan-Otto Kröpke 3555e9c4bc logical_disk: remove the *_latency_seconds_total counters (#2763)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 20:41:42 +02:00
Jan-Otto Kröpke f1e6b49c54 iis: add worker_responses_total as denominator for worker_request_errors_total (#2764)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 20:40:25 +02:00
Jan-Otto Kröpke 15316bfbd5 chore: Refactor renovate.json package rules and labels (#2762)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 18:17:08 +02:00
renovate[bot] 3db0a439a6 chore(github-actions): update github actions (main) (#2761) 2026-10-16 18:16:59 +02:00
renovate[bot]andClaude bae1006787 chore(deps): update dependency golangci/golangci-lint to v2.15.0 (main) (#2758)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
2026-10-16 15:58:04 +00:00
renovate[bot] 5e8c2d9b0a chore(deps): update module github.com/mdlayher/socket to v0.8.0 (main) (#2760) 2026-10-16 15:52:37 +00:00
renovate[bot] cc52d48f4c chore(deps): update module github.com/golangci/golangci-lint/v2/cmd/golangci-lint to v2.15.0 (main) (#2759) 2026-10-16 17:42:38 +02:00
renovate[bot] 2c3585b771 chore(deps): update dependency gohugoio/hugo to v0.168.0 (main) (#2757) 2026-10-16 17:41:47 +02:00
renovate[bot] 8f56374a73 fix(deps): update module github.com/bmatcuk/doublestar/v4 to v4.10.3 (main) (#2755) 2026-10-16 17:35:04 +02:00
renovate[bot] d782bde30f fix(deps): update module github.com/prometheus/common to v0.72.1 (main) (#2756) 2026-10-16 17:34:34 +02:00
Jan-Otto KröpkeandClaude 4af7012048 ci: build each release once from its tag and publish it as a draft (#2754)
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
v0.32.0-beta.6
2026-10-16 12:16:30 +02: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 b3500f7aef mi: limit the CIM_DataFile cancellation test to one directory (#2752)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 11:47:44 +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öpke dc8092f46d hyperv: label replica relationships with the VM ID (#2747)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 10:33:34 +02:00
Jan-Otto Kröpke b1b2888e0f headers: call per-scrape native functions with SyscallN (#2746)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 10:33:18 +02:00
Jan-Otto Kröpke 4cd3e5411d docs: document memory and leak investigations in AGENTS.md (#2749)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 10:32:34 +02:00
Jan-Otto Kröpke 82e8e425df netframework: add the counter reference to AGENTS.md (#2751)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 10:31:12 +02:00
Jan-Otto Kröpke 43d77f6869 pdh: report duplicate instances by occurrence instead of renaming them (#2742)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 09:58:43 +02:00
Jan-Otto Kröpke d8dbf852d1 mixin: join the GPU sensor panels with windows_gpu_info on luid (#2745)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 09:33:52 +02:00
Jan-Otto Kröpke d65f37bd9c scheduled_task: run COM work on long-lived workers (#2741)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 09:12:00 +02:00
Jan-Otto Kröpke 54cf194039 mi: bound every query with a timeout and add context cancellation (#2738)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 09:11:40 +02:00
Jan-Otto Kröpke 126b655afa pdh: release partially initialized collectors in the constructors (#2736)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 09:11:11 +02:00
Jan-Otto Kröpke 41f8bfb352 cmd: validate telemetry.path and scrape.timeout-margin, warn on unknown disabled collectors (#2733)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 09:11:02 +02:00
Jan-Otto Kröpke a3692d335a metriccontract: check metric names in docs, mixin and dashboards (#2731)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 09:10:50 +02:00
Jan-Otto Kröpke 2f5781ff13 headers: fail Build on missing native exports and assert MI/COM layouts (#2739)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 02:32:29 +02:00
Jan-Otto Kröpke af2a7c3f6c log: open the event log lazily, bound close, keep the service running, structured messages (#2734)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 02:31:55 +02:00
Jan-Otto Kröpke a1ac462daf collector: let the collection own the label and metric caches (#2740)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 00:32:08 +02:00
Jan-Otto Kröpke f6aad2c284 pdh: avoid reflection and per-scrape allocations when collecting (#2735)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-16 00:31:41 +02:00