Conversation
…v0.127+ - windows.yaml reads windows_exporter's memory collector (windows_memory_physical_total_bytes, _physical_free_bytes, _commit_limit, _committed_bytes). v0.31.0 removed the cs collector and the os collector's memory metrics it read, so every meter_win_memory_* of the windows_exporter source was empty. The new metrics carry the same values and are default since v0.29.0, now the documented minimum. - meter_win_cpu_total_percentage counts user + privileged for windows_exporter: Windows' % Privileged Time already includes interrupt and DPC time, which the rule counted a second time. - The OpenTelemetry receiver takes node_identifier_host_name from server.address when neither net.host.name nor host.name is present. The Collector's Prometheus receiver sends only server.address from v0.127.0, so vm.yaml and windows.yaml got no host and no service. - The Windows e2e replays a recording of windows_exporter v0.31.8 through OTel Collector 0.158.0, taken on a GitHub-hosted Windows runner, and checks every memory metric. The e2e mock sender's OTLP proto is updated to v1.11.1 so it parses that recording. - The documented Collector config uses the debug exporter; the logging exporter no longer exists.
Member
Author
|
Folded into #14116, which already carried the same windows.yaml fix. The receiver's server.address fallback, the real windows_exporter 0.31.8 recording in the win e2e, the mock sender's OTLP proto update and the Collector config fix are now part of it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Windows host monitoring breaks with current versions of both pieces the documented setup uses.
windows_exporter v0.31.0 removed the memory metrics
windows.yamlreadwindows_cs_physical_memory_bytes,windows_os_physical_memory_free_bytes,windows_os_virtual_memory_bytesandwindows_os_virtual_memory_free_byteswere deprecated in v0.29.0 and removed in v0.31.0 (prometheus-community/windows_exporter#2115, #2116). Everymeter_win_memory_*of the windows_exporter source is empty on v0.31.x. The rule now reads the replacements the exporter's deprecation notes name:windows_memory_physical_total_bytes,windows_memory_physical_free_bytes,windows_memory_commit_limitandwindows_memory_committed_bytes. They are in the defaultmemorycollector since v0.29.0, which the doc now states as the minimum.meter_win_cpu_total_percentagecounted interrupt and DPC time twiceThe rule summed every mode but
idle. Windows'% Privileged Time, which is windows_exporter'sprivilegedmode, already includes% Interrupt Timeand% DPC Time(Processor object). Busy time is nowuser+privileged.OTel Collector v0.127.0+ sends no
net.host.nameThe Prometheus receiver puts a target's host in
server.addressonly from v0.127.0 (feature gatereceiver.prometheusreceiver.RemoveLegacyResourceAttributes, beta in v0.127, legacy code removed in v0.129). OAP mapped onlynet.host.name/host.nametonode_identifier_host_name, sovm.yamlandwindows.yamlgot no host and created no service. The OTel receiver now falls back toserver.addresswhen neither is present, which gives the same label and value older Collectors produced. The e2e pins Collector 0.102.1, which is why CI did not see it.Checked against real output, not only source
windows_exporter v0.31.8, v0.31.0 and v0.30.9 were run on a GitHub-hosted
windows-latestrunner with default collectors, together with OTel Collector contrib 0.158.0:Win32_ComputerSystem.TotalPhysicalMemoryand the\Memory\Commit Limit/\Committed Bytes/\Available Bytescounters.idle+user+privileged= 1.0000 s/s, all five modes = 1.005–1.009 s/s.server.address,server.port,url.scheme, and nonet.host.name.loggingexporter) failsotelcol-contrib validateon 0.158.0; it now usesdebug.Tests
The Windows e2e replays that recording (windows_exporter v0.31.8 through Collector 0.158.0, the nine metrics the rule reads, unmodified otherwise) instead of the 2023 mock data in the old names, and checks all six memory metrics. The e2e mock sender's OTLP proto is updated to v1.11.1 so its strict JSON parser accepts the recording; every existing mock file still parses.
windows.data.yamlfeeds the new metrics plusprivileged/interrupt/dpcmodes, and asserts the new values.MALExpressionExecutionTest(1427) passes locally.OpenTelemetryMetricRequestProcessorTestcoversserver.addressalone, andhost.name/net.host.namewinning over it.Update the
CHANGESlog.