Merge pull request #999 from trunov-ms/master

fix PercentTimeinGC metric
This commit is contained in:
Ben Reedy
2022-09-10 10:55:25 +10:00
committed by GitHub

View File

@@ -143,7 +143,12 @@ type Win32_PerfRawData_NETFramework_NETCLRMemory struct {
NumberofSinkBlocksinuse uint64 NumberofSinkBlocksinuse uint64
NumberTotalcommittedBytes uint64 NumberTotalcommittedBytes uint64
NumberTotalreservedBytes uint64 NumberTotalreservedBytes uint64
// PercentTimeinGC has countertype=PERF_RAW_FRACTION.
// Formula: (100 * CounterValue) / BaseValue
// By docs https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/scripting-articles/ms974615(v=msdn.10)#perf_raw_fraction
PercentTimeinGC uint32 PercentTimeinGC uint32
// BaseValue is just a "magic" number used to make the calculation come out right.
PercentTimeinGC_base uint32
ProcessID uint64 ProcessID uint64
PromotedFinalizationMemoryfromGen0 uint64 PromotedFinalizationMemoryfromGen0 uint64
PromotedMemoryfromGen0 uint64 PromotedMemoryfromGen0 uint64
@@ -294,7 +299,7 @@ func (c *NETFramework_NETCLRMemoryCollector) collect(ch chan<- prometheus.Metric
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.TimeinGC, c.TimeinGC,
prometheus.GaugeValue, prometheus.GaugeValue,
float64(process.PercentTimeinGC)/float64(process.Frequency_PerfTime), float64(100*process.PercentTimeinGC)/float64(process.PercentTimeinGC_base),
process.Name, process.Name,
) )
} }