mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-02-08 05:56:37 +00:00
Added collector for SQLErrors counter
This commit is contained in:
@@ -91,7 +91,7 @@ func mssqlBuildWMIInstanceClass(suffix string, instance string) string {
|
|||||||
type mssqlCollectorsMap map[string]mssqlCollectorFunc
|
type mssqlCollectorsMap map[string]mssqlCollectorFunc
|
||||||
|
|
||||||
func mssqlAvailableClassCollectors() string {
|
func mssqlAvailableClassCollectors() string {
|
||||||
return "accessmethods,availreplica,bufman,databases,dbreplica,genstats,locks,memmgr,sqlstats"
|
return "accessmethods,availreplica,bufman,databases,dbreplica,genstats,locks,memmgr,sqlstats,sqlerrors"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *MSSQLCollector) getMSSQLCollectors() mssqlCollectorsMap {
|
func (c *MSSQLCollector) getMSSQLCollectors() mssqlCollectorsMap {
|
||||||
@@ -105,6 +105,7 @@ func (c *MSSQLCollector) getMSSQLCollectors() mssqlCollectorsMap {
|
|||||||
mssqlCollectors["locks"] = c.collectLocks
|
mssqlCollectors["locks"] = c.collectLocks
|
||||||
mssqlCollectors["memmgr"] = c.collectMemoryManager
|
mssqlCollectors["memmgr"] = c.collectMemoryManager
|
||||||
mssqlCollectors["sqlstats"] = c.collectSQLStats
|
mssqlCollectors["sqlstats"] = c.collectSQLStats
|
||||||
|
mssqlCollectors["sqlerrors"] = c.collectSQLErrors
|
||||||
|
|
||||||
return mssqlCollectors
|
return mssqlCollectors
|
||||||
}
|
}
|
||||||
@@ -358,6 +359,9 @@ type MSSQLCollector struct {
|
|||||||
SQLStatsSQLReCompilations *prometheus.Desc
|
SQLStatsSQLReCompilations *prometheus.Desc
|
||||||
SQLStatsUnsafeAutoParams *prometheus.Desc
|
SQLStatsUnsafeAutoParams *prometheus.Desc
|
||||||
|
|
||||||
|
// Win32_PerfRawData_{instance}_SQLServerSQLErrors
|
||||||
|
SQLErrorsErrors *prometheus.Desc
|
||||||
|
|
||||||
mssqlInstances mssqlInstancesType
|
mssqlInstances mssqlInstancesType
|
||||||
mssqlCollectors mssqlCollectorsMap
|
mssqlCollectors mssqlCollectorsMap
|
||||||
mssqlChildCollectorFailure int
|
mssqlChildCollectorFailure int
|
||||||
@@ -1637,6 +1641,14 @@ func NewMSSQLCollector() (Collector, error) {
|
|||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
|
|
||||||
|
// Win32_PerfRawData_{instance}_SQLServerSQLErrors
|
||||||
|
SQLErrorsErrors: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(Namespace, subsystem, "sqlerrors_errors"),
|
||||||
|
"(SQLErrors.Errors)",
|
||||||
|
[]string{"instance", "resource"},
|
||||||
|
nil,
|
||||||
|
),
|
||||||
|
|
||||||
mssqlInstances: getMSSQLInstances(),
|
mssqlInstances: getMSSQLInstances(),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3558,3 +3570,34 @@ func (c *MSSQLCollector) collectSQLStats(ch chan<- prometheus.Metric, sqlInstanc
|
|||||||
|
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type win32PerfRawDataSQLServerSQLErrors struct {
|
||||||
|
Name string
|
||||||
|
Errorssec uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
// Win32_PerfRawData_MSSQLSERVER_SQLServerErrors docs:
|
||||||
|
// - https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-sql-errors-object
|
||||||
|
func (c *MSSQLCollector) collectSQLErrors(ch chan<- prometheus.Metric, sqlInstance string) (*prometheus.Desc, error) {
|
||||||
|
var dst []win32PerfRawDataSQLServerSQLErrors
|
||||||
|
log.Debugf("mssql_sqlerrors collector iterating sql instance %s.", sqlInstance)
|
||||||
|
|
||||||
|
class := mssqlBuildWMIInstanceClass("SQLErrors", sqlInstance)
|
||||||
|
q := queryAllForClassWhere(&dst, class, `Name <> '_Total'`)
|
||||||
|
if err := wmi.Query(q, &dst); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, v := range dst {
|
||||||
|
resource := v.Name
|
||||||
|
|
||||||
|
ch <- prometheus.MustNewConstMetric(
|
||||||
|
c.SQLErrorsErrors,
|
||||||
|
prometheus.CounterValue,
|
||||||
|
float64(v.Errorssec),
|
||||||
|
sqlInstance, resource,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ The mssql collector exposes metrics about the MSSQL server
|
|||||||
|||
|
|||
|
||||||
-|-
|
-|-
|
||||||
Metric name prefix | `mssql`
|
Metric name prefix | `mssql`
|
||||||
Classes | [`Win32_PerfRawData_MSSQLSERVER_SQLServerAccessMethods`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-access-methods-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerAvailabilityReplica`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-availability-replica)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerDatabaseReplica`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-database-replica)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-databases-object?view=sql-server-2017)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-general-statistics-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerLocks`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-locks-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerMemoryManager`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-memory-manager-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerSQLStatistics`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-sql-statistics-object)
|
Classes | [`Win32_PerfRawData_MSSQLSERVER_SQLServerAccessMethods`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-access-methods-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerAvailabilityReplica`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-availability-replica)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerBufferManager`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerDatabaseReplica`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-database-replica)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerDatabases`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-databases-object?view=sql-server-2017)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerGeneralStatistics`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-general-statistics-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerLocks`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-locks-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerMemoryManager`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-memory-manager-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerSQLStatistics`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-sql-statistics-object)<br/>[`Win32_PerfRawData_MSSQLSERVER_SQLServerSQLErrors`](https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-sql-errors-object)
|
||||||
Enabled by default? | No
|
Enabled by default? | No
|
||||||
|
|
||||||
## Flags
|
## Flags
|
||||||
@@ -230,6 +230,7 @@ Name | Description | Type | Labels
|
|||||||
`wmi_mssql_sqlstats_sql_compilations` | _Not yet documented_ | counter | `instance`
|
`wmi_mssql_sqlstats_sql_compilations` | _Not yet documented_ | counter | `instance`
|
||||||
`wmi_mssql_sqlstats_sql_recompilations` | _Not yet documented_ | counter | `instance`
|
`wmi_mssql_sqlstats_sql_recompilations` | _Not yet documented_ | counter | `instance`
|
||||||
`wmi_mssql_sqlstats_unsafe_auto_parameterization_attempts` | _Not yet documented_ | counter | `instance`
|
`wmi_mssql_sqlstats_unsafe_auto_parameterization_attempts` | _Not yet documented_ | counter | `instance`
|
||||||
|
`wmi_mssql_sqlerror_errors` | _Not yet documented_ | counter | `instance`
|
||||||
|
|
||||||
### Example metric
|
### Example metric
|
||||||
_This collector does not yet have explained examples, we would appreciate your help adding them!_
|
_This collector does not yet have explained examples, we would appreciate your help adding them!_
|
||||||
|
|||||||
Reference in New Issue
Block a user