fixing missing values for cache metrics

This commit is contained in:
sebastian.poxhofer
2020-03-03 17:35:15 +01:00
parent 6dad58fc8f
commit 22d4f50c83

View File

@@ -137,50 +137,50 @@ type MSSQLCollector struct {
mssqlScrapeSuccessDesc *prometheus.Desc mssqlScrapeSuccessDesc *prometheus.Desc
// Win32_PerfRawData_{instance}_SQLServerAccessMethods // Win32_PerfRawData_{instance}_SQLServerAccessMethods
AccessMethodsAUcleanupbatches *prometheus.Desc AccessMethodsAUcleanupbatches *prometheus.Desc
AccessMethodsAUcleanups *prometheus.Desc AccessMethodsAUcleanups *prometheus.Desc
AccessMethodsByreferenceLobCreateCount *prometheus.Desc AccessMethodsByreferenceLobCreateCount *prometheus.Desc
AccessMethodsByreferenceLobUseCount *prometheus.Desc AccessMethodsByreferenceLobUseCount *prometheus.Desc
AccessMethodsCountLobReadahead *prometheus.Desc AccessMethodsCountLobReadahead *prometheus.Desc
AccessMethodsCountPullInRow *prometheus.Desc AccessMethodsCountPullInRow *prometheus.Desc
AccessMethodsCountPushOffRow *prometheus.Desc AccessMethodsCountPushOffRow *prometheus.Desc
AccessMethodsDeferreddroppedAUs *prometheus.Desc AccessMethodsDeferreddroppedAUs *prometheus.Desc
AccessMethodsDeferredDroppedrowsets *prometheus.Desc AccessMethodsDeferredDroppedrowsets *prometheus.Desc
AccessMethodsDroppedrowsetcleanups *prometheus.Desc AccessMethodsDroppedrowsetcleanups *prometheus.Desc
AccessMethodsDroppedrowsetsskipped *prometheus.Desc AccessMethodsDroppedrowsetsskipped *prometheus.Desc
AccessMethodsExtentDeallocations *prometheus.Desc AccessMethodsExtentDeallocations *prometheus.Desc
AccessMethodsExtentsAllocated *prometheus.Desc AccessMethodsExtentsAllocated *prometheus.Desc
AccessMethodsFailedAUcleanupbatches *prometheus.Desc AccessMethodsFailedAUcleanupbatches *prometheus.Desc
AccessMethodsFailedleafpagecookie *prometheus.Desc AccessMethodsFailedleafpagecookie *prometheus.Desc
AccessMethodsFailedtreepagecookie *prometheus.Desc AccessMethodsFailedtreepagecookie *prometheus.Desc
AccessMethodsForwardedRecords *prometheus.Desc AccessMethodsForwardedRecords *prometheus.Desc
AccessMethodsFreeSpacePageFetches *prometheus.Desc AccessMethodsFreeSpacePageFetches *prometheus.Desc
AccessMethodsFreeSpaceScans *prometheus.Desc AccessMethodsFreeSpaceScans *prometheus.Desc
AccessMethodsFullScans *prometheus.Desc AccessMethodsFullScans *prometheus.Desc
AccessMethodsIndexSearches *prometheus.Desc AccessMethodsIndexSearches *prometheus.Desc
AccessMethodsInSysXactwaits *prometheus.Desc AccessMethodsInSysXactwaits *prometheus.Desc
AccessMethodsLobHandleCreateCount *prometheus.Desc AccessMethodsLobHandleCreateCount *prometheus.Desc
AccessMethodsLobHandleDestroyCount *prometheus.Desc AccessMethodsLobHandleDestroyCount *prometheus.Desc
AccessMethodsLobSSProviderCreateCount *prometheus.Desc AccessMethodsLobSSProviderCreateCount *prometheus.Desc
AccessMethodsLobSSProviderDestroyCount *prometheus.Desc AccessMethodsLobSSProviderDestroyCount *prometheus.Desc
AccessMethodsLobSSProviderTruncationCount *prometheus.Desc AccessMethodsLobSSProviderTruncationCount *prometheus.Desc
AccessMethodsMixedpageallocations *prometheus.Desc AccessMethodsMixedpageallocations *prometheus.Desc
AccessMethodsPagecompressionattempts *prometheus.Desc AccessMethodsPagecompressionattempts *prometheus.Desc
AccessMethodsPageDeallocations *prometheus.Desc AccessMethodsPageDeallocations *prometheus.Desc
AccessMethodsPagesAllocated *prometheus.Desc AccessMethodsPagesAllocated *prometheus.Desc
AccessMethodsPagescompressed *prometheus.Desc AccessMethodsPagescompressed *prometheus.Desc
AccessMethodsPageSplits *prometheus.Desc AccessMethodsPageSplits *prometheus.Desc
AccessMethodsProbeScans *prometheus.Desc AccessMethodsProbeScans *prometheus.Desc
AccessMethodsRangeScans *prometheus.Desc AccessMethodsRangeScans *prometheus.Desc
AccessMethodsScanPointRevalidations *prometheus.Desc AccessMethodsScanPointRevalidations *prometheus.Desc
AccessMethodsSkippedGhostedRecords *prometheus.Desc AccessMethodsSkippedGhostedRecords *prometheus.Desc
AccessMethodsTableLockEscalations *prometheus.Desc AccessMethodsTableLockEscalations *prometheus.Desc
AccessMethodsUsedleafpagecookie *prometheus.Desc AccessMethodsUsedleafpagecookie *prometheus.Desc
AccessMethodsUsedtreepagecookie *prometheus.Desc AccessMethodsUsedtreepagecookie *prometheus.Desc
AccessMethodsWorkfilesCreated *prometheus.Desc AccessMethodsWorkfilesCreated *prometheus.Desc
AccessMethodsWorktablesCreated *prometheus.Desc AccessMethodsWorktablesCreated *prometheus.Desc
AccessMethodsWorktablesFromCacheRatio *prometheus.Desc AccessMethodsWorktablesFromCacheHits *prometheus.Desc
AccessMethodsWorktablesFromCacheRatio_Base *prometheus.Desc AccessMethodsWorktablesFromCacheLookups *prometheus.Desc
// Win32_PerfRawData_{instance}_SQLServerAvailabilityReplica // Win32_PerfRawData_{instance}_SQLServerAvailabilityReplica
AvailReplicaBytesReceivedfromReplica *prometheus.Desc AvailReplicaBytesReceivedfromReplica *prometheus.Desc
@@ -254,8 +254,8 @@ type MSSQLCollector struct {
DatabasesDBCCLogicalScanBytes *prometheus.Desc DatabasesDBCCLogicalScanBytes *prometheus.Desc
DatabasesGroupCommitTime *prometheus.Desc DatabasesGroupCommitTime *prometheus.Desc
DatabasesLogBytesFlushed *prometheus.Desc DatabasesLogBytesFlushed *prometheus.Desc
DatabasesLogCacheHitRatio *prometheus.Desc DatabasesLogCacheHits *prometheus.Desc
DatabasesLogCacheHitRatio_Base *prometheus.Desc DatabasesLogCacheLookups *prometheus.Desc
DatabasesLogCacheReads *prometheus.Desc DatabasesLogCacheReads *prometheus.Desc
DatabasesLogFilesSizeKB *prometheus.Desc DatabasesLogFilesSizeKB *prometheus.Desc
DatabasesLogFilesUsedSizeKB *prometheus.Desc DatabasesLogFilesUsedSizeKB *prometheus.Desc
@@ -320,14 +320,14 @@ type MSSQLCollector struct {
GenStatsUserConnections *prometheus.Desc GenStatsUserConnections *prometheus.Desc
// Win32_PerfRawData_{instance}_SQLServerLocks // Win32_PerfRawData_{instance}_SQLServerLocks
LocksAverageWaitTimems *prometheus.Desc LocksWaitTime *prometheus.Desc
LocksAverageWaitTimems_Base *prometheus.Desc LocksCount *prometheus.Desc
LocksLockRequests *prometheus.Desc LocksLockRequests *prometheus.Desc
LocksLockTimeouts *prometheus.Desc LocksLockTimeouts *prometheus.Desc
LocksLockTimeoutstimeout0 *prometheus.Desc LocksLockTimeoutstimeout0 *prometheus.Desc
LocksLockWaits *prometheus.Desc LocksLockWaits *prometheus.Desc
LocksLockWaitTimems *prometheus.Desc LocksLockWaitTimems *prometheus.Desc
LocksNumberofDeadlocks *prometheus.Desc LocksNumberofDeadlocks *prometheus.Desc
// Win32_PerfRawData_{instance}_SQLServerMemoryManager // Win32_PerfRawData_{instance}_SQLServerMemoryManager
MemMgrConnectionMemoryKB *prometheus.Desc MemMgrConnectionMemoryKB *prometheus.Desc
@@ -660,13 +660,13 @@ func NewMSSQLCollector() (Collector, error) {
[]string{"instance"}, []string{"instance"},
nil, nil,
), ),
AccessMethodsWorktablesFromCacheRatio: prometheus.NewDesc( AccessMethodsWorktablesFromCacheHits: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "accessmethods_worktables_from_cache_hits"), prometheus.BuildFQName(Namespace, subsystem, "accessmethods_worktables_from_cache_hits"),
"(AccessMethods.WorktablesFromCacheRatio)", "(AccessMethods.WorktablesFromCacheRatio)",
[]string{"instance"}, []string{"instance"},
nil, nil,
), ),
AccessMethodsWorktablesFromCacheRatio_Base: prometheus.NewDesc( AccessMethodsWorktablesFromCacheLookups: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "accessmethods_worktables_from_cache_lookups"), prometheus.BuildFQName(Namespace, subsystem, "accessmethods_worktables_from_cache_lookups"),
"(AccessMethods.WorktablesFromCacheRatio_Base)", "(AccessMethods.WorktablesFromCacheRatio_Base)",
[]string{"instance"}, []string{"instance"},
@@ -1070,15 +1070,15 @@ func NewMSSQLCollector() (Collector, error) {
[]string{"instance", "database"}, []string{"instance", "database"},
nil, nil,
), ),
DatabasesLogCacheHitRatio: prometheus.NewDesc( DatabasesLogCacheHits: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "databases_log_cache_hits"), prometheus.BuildFQName(Namespace, subsystem, "databases_log_cache_hits"),
"(Databases.LogCacheHits)", "(Databases.LogCacheHitRatio)",
[]string{"instance", "database"}, []string{"instance", "database"},
nil, nil,
), ),
DatabasesLogCacheHitRatio_Base: prometheus.NewDesc( DatabasesLogCacheLookups: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "databases_log_cache_lookups"), prometheus.BuildFQName(Namespace, subsystem, "databases_log_cache_lookups"),
"(Databases.LogCacheLookups)", "(Databases.LogCacheHitRatio_Base)",
[]string{"instance", "database"}, []string{"instance", "database"},
nil, nil,
), ),
@@ -1446,15 +1446,15 @@ func NewMSSQLCollector() (Collector, error) {
), ),
// Win32_PerfRawData_{instance}_SQLServerLocks // Win32_PerfRawData_{instance}_SQLServerLocks
LocksAverageWaitTimems: prometheus.NewDesc( LocksWaitTime: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "locks_wait_time_seconds"), prometheus.BuildFQName(Namespace, subsystem, "locks_wait_time_seconds"),
"(Locks.LockWaitTime. Total time in ms which locks have been holding resources)", "(Locks.AverageWaitTimems Total time in seconds which locks have been holding resources)",
[]string{"instance", "resource"}, []string{"instance", "resource"},
nil, nil,
), ),
LocksAverageWaitTimems_Base: prometheus.NewDesc( LocksCount: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "locks_count"), prometheus.BuildFQName(Namespace, subsystem, "locks_count"),
"(Locks.LockCount. count of how often requests have run into locks)", "(Locks.AverageWaitTimems_Base count of how often requests have run into locks)",
[]string{"instance", "resource"}, []string{"instance", "resource"},
nil, nil,
), ),
@@ -1890,8 +1890,8 @@ type win32PerfRawDataSQLServerAccessMethods struct {
Usedtreepagecookie uint64 Usedtreepagecookie uint64
WorkfilesCreatedPersec uint64 WorkfilesCreatedPersec uint64
WorktablesCreatedPersec uint64 WorktablesCreatedPersec uint64
WorktablesFromCacheHits uint64 WorktablesFromCacheRatio uint64
WorktablesFromCacheLookups uint64 WorktablesFromCacheRatio_Base uint64
} }
func (c *MSSQLCollector) collectAccessMethods(ch chan<- prometheus.Metric, sqlInstance string) (*prometheus.Desc, error) { func (c *MSSQLCollector) collectAccessMethods(ch chan<- prometheus.Metric, sqlInstance string) (*prometheus.Desc, error) {
@@ -2204,16 +2204,16 @@ func (c *MSSQLCollector) collectAccessMethods(ch chan<- prometheus.Metric, sqlIn
) )
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.AccessMethodsWorktablesFromCacheRatio, c.AccessMethodsWorktablesFromCacheHits,
prometheus.CounterValue, prometheus.CounterValue,
float64(v.WorktablesFromCacheHits), float64(v.WorktablesFromCacheRatio),
sqlInstance, sqlInstance,
) )
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.AccessMethodsWorktablesFromCacheRatio_Base, c.AccessMethodsWorktablesFromCacheLookups,
prometheus.CounterValue, prometheus.CounterValue,
float64(v.WorktablesFromCacheLookups), float64(v.WorktablesFromCacheRatio_Base),
sqlInstance, sqlInstance,
) )
return nil, nil return nil, nil
@@ -2317,8 +2317,8 @@ func (c *MSSQLCollector) collectAvailabilityReplica(ch chan<- prometheus.Metric,
// https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object // https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object
type win32PerfRawDataSQLServerBufferManager struct { type win32PerfRawDataSQLServerBufferManager struct {
BackgroundwriterpagesPersec uint64 BackgroundwriterpagesPersec uint64
Buffercachehits uint64 Buffercachehitratio uint64
Buffercachelookups uint64 Buffercachehitratio_Base uint64
CheckpointpagesPersec uint64 CheckpointpagesPersec uint64
Databasepages uint64 Databasepages uint64
Extensionallocatedpages uint64 Extensionallocatedpages uint64
@@ -2366,14 +2366,14 @@ func (c *MSSQLCollector) collectBufferManager(ch chan<- prometheus.Metric, sqlIn
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.BufManBuffercachehits, c.BufManBuffercachehits,
prometheus.GaugeValue, prometheus.GaugeValue,
float64(v.Buffercachehits), float64(v.Buffercachehitratio),
sqlInstance, sqlInstance,
) )
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.BufManBuffercachelookups, c.BufManBuffercachelookups,
prometheus.GaugeValue, prometheus.GaugeValue,
float64(v.Buffercachehits), float64(v.Buffercachehitratio_Base),
sqlInstance, sqlInstance,
) )
@@ -2747,8 +2747,8 @@ type win32PerfRawDataSQLServerDatabases struct {
DBCCLogicalScanBytesPersec uint64 DBCCLogicalScanBytesPersec uint64
GroupCommitTimePersec uint64 GroupCommitTimePersec uint64
LogBytesFlushedPersec uint64 LogBytesFlushedPersec uint64
LogCacheHits uint64 LogCacheHitRatio uint64
LogCacheLookups uint64 LogCacheHitRatio_Base uint64
LogCacheReadsPersec uint64 LogCacheReadsPersec uint64
LogFilesSizeKB uint64 LogFilesSizeKB uint64
LogFilesUsedSizeKB uint64 LogFilesUsedSizeKB uint64
@@ -2864,16 +2864,16 @@ func (c *MSSQLCollector) collectDatabases(ch chan<- prometheus.Metric, sqlInstan
) )
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.DatabasesLogCacheHitRatio, c.DatabasesLogCacheHits,
prometheus.GaugeValue, prometheus.GaugeValue,
float64(v.LogCacheHits), float64(v.LogCacheHitRatio),
sqlInstance, dbName, sqlInstance, dbName,
) )
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.DatabasesLogCacheHitRatio_Base, c.DatabasesLogCacheLookups,
prometheus.GaugeValue, prometheus.GaugeValue,
float64(v.LogCacheLookups), float64(v.LogCacheHitRatio_Base),
sqlInstance, dbName, sqlInstance, dbName,
) )
@@ -3350,8 +3350,8 @@ func (c *MSSQLCollector) collectGeneralStatistics(ch chan<- prometheus.Metric, s
// - https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-locks-object // - https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-locks-object
type win32PerfRawDataSQLServerLocks struct { type win32PerfRawDataSQLServerLocks struct {
Name string Name string
LockWaitTime uint64 AverageWaitTimems uint64
LockCount uint64 AverageWaitTimems_Base uint64
LockRequestsPersec uint64 LockRequestsPersec uint64
LockTimeoutsPersec uint64 LockTimeoutsPersec uint64
LockTimeoutstimeout0Persec uint64 LockTimeoutstimeout0Persec uint64
@@ -3374,16 +3374,16 @@ func (c *MSSQLCollector) collectLocks(ch chan<- prometheus.Metric, sqlInstance s
lockResourceName := v.Name lockResourceName := v.Name
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.LocksAverageWaitTimems, c.LocksWaitTime,
prometheus.GaugeValue, prometheus.GaugeValue,
float64(v.LockWaitTime)/1000.0, float64(v.AverageWaitTimems)/1000.0,
sqlInstance, lockResourceName, sqlInstance, lockResourceName,
) )
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.LocksAverageWaitTimems_Base, c.LocksCount,
prometheus.GaugeValue, prometheus.GaugeValue,
float64(v.LockCount)/1000.0, float64(v.AverageWaitTimems_Base)/1000.0,
sqlInstance, lockResourceName, sqlInstance, lockResourceName,
) )