mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-03-04 17:46:36 +00:00
hyperv: Refactor collector, added DataStore, Virtual SMB and Dynamic Memory Balancer metrics (click PR number for more information) (#1712)
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
This commit is contained in:
@@ -35,141 +35,11 @@ type Collector struct {
|
||||
config Config
|
||||
miSession *mi.Session
|
||||
|
||||
// cluster
|
||||
clusterAddEvictDelay *prometheus.Desc
|
||||
clusterAdminAccessPoint *prometheus.Desc
|
||||
clusterAutoAssignNodeSite *prometheus.Desc
|
||||
clusterAutoBalancerLevel *prometheus.Desc
|
||||
clusterAutoBalancerMode *prometheus.Desc
|
||||
clusterBackupInProgress *prometheus.Desc
|
||||
clusterBlockCacheSize *prometheus.Desc
|
||||
clusterClusSvcHangTimeout *prometheus.Desc
|
||||
clusterClusSvcRegroupOpeningTimeout *prometheus.Desc
|
||||
clusterClusSvcRegroupPruningTimeout *prometheus.Desc
|
||||
clusterClusSvcRegroupStageTimeout *prometheus.Desc
|
||||
clusterClusSvcRegroupTickInMilliseconds *prometheus.Desc
|
||||
clusterClusterEnforcedAntiAffinity *prometheus.Desc
|
||||
clusterClusterFunctionalLevel *prometheus.Desc
|
||||
clusterClusterGroupWaitDelay *prometheus.Desc
|
||||
clusterClusterLogLevel *prometheus.Desc
|
||||
clusterClusterLogSize *prometheus.Desc
|
||||
clusterClusterUpgradeVersion *prometheus.Desc
|
||||
clusterCrossSiteDelay *prometheus.Desc
|
||||
clusterCrossSiteThreshold *prometheus.Desc
|
||||
clusterCrossSubnetDelay *prometheus.Desc
|
||||
clusterCrossSubnetThreshold *prometheus.Desc
|
||||
clusterCsvBalancer *prometheus.Desc
|
||||
clusterDatabaseReadWriteMode *prometheus.Desc
|
||||
clusterDefaultNetworkRole *prometheus.Desc
|
||||
clusterDetectedCloudPlatform *prometheus.Desc
|
||||
clusterDetectManagedEvents *prometheus.Desc
|
||||
clusterDetectManagedEventsThreshold *prometheus.Desc
|
||||
clusterDisableGroupPreferredOwnerRandomization *prometheus.Desc
|
||||
clusterDrainOnShutdown *prometheus.Desc
|
||||
clusterDynamicQuorumEnabled *prometheus.Desc
|
||||
clusterEnableSharedVolumes *prometheus.Desc
|
||||
clusterFixQuorum *prometheus.Desc
|
||||
clusterGracePeriodEnabled *prometheus.Desc
|
||||
clusterGracePeriodTimeout *prometheus.Desc
|
||||
clusterGroupDependencyTimeout *prometheus.Desc
|
||||
clusterHangRecoveryAction *prometheus.Desc
|
||||
clusterIgnorePersistentStateOnStartup *prometheus.Desc
|
||||
clusterLogResourceControls *prometheus.Desc
|
||||
clusterLowerQuorumPriorityNodeId *prometheus.Desc
|
||||
clusterMaxNumberOfNodes *prometheus.Desc
|
||||
clusterMessageBufferLength *prometheus.Desc
|
||||
clusterMinimumNeverPreemptPriority *prometheus.Desc
|
||||
clusterMinimumPreemptorPriority *prometheus.Desc
|
||||
clusterNetftIPSecEnabled *prometheus.Desc
|
||||
clusterPlacementOptions *prometheus.Desc
|
||||
clusterPlumbAllCrossSubnetRoutes *prometheus.Desc
|
||||
clusterPreventQuorum *prometheus.Desc
|
||||
clusterQuarantineDuration *prometheus.Desc
|
||||
clusterQuarantineThreshold *prometheus.Desc
|
||||
clusterQuorumArbitrationTimeMax *prometheus.Desc
|
||||
clusterQuorumArbitrationTimeMin *prometheus.Desc
|
||||
clusterQuorumLogFileSize *prometheus.Desc
|
||||
clusterQuorumTypeValue *prometheus.Desc
|
||||
clusterRequestReplyTimeout *prometheus.Desc
|
||||
clusterResiliencyDefaultPeriod *prometheus.Desc
|
||||
clusterResiliencyLevel *prometheus.Desc
|
||||
clusterResourceDllDeadlockPeriod *prometheus.Desc
|
||||
clusterRootMemoryReserved *prometheus.Desc
|
||||
clusterRouteHistoryLength *prometheus.Desc
|
||||
clusterS2DBusTypes *prometheus.Desc
|
||||
clusterS2DCacheDesiredState *prometheus.Desc
|
||||
clusterS2DCacheFlashReservePercent *prometheus.Desc
|
||||
clusterS2DCachePageSizeKBytes *prometheus.Desc
|
||||
clusterS2DEnabled *prometheus.Desc
|
||||
clusterS2DIOLatencyThreshold *prometheus.Desc
|
||||
clusterS2DOptimizations *prometheus.Desc
|
||||
clusterSameSubnetDelay *prometheus.Desc
|
||||
clusterSameSubnetThreshold *prometheus.Desc
|
||||
clusterSecurityLevel *prometheus.Desc
|
||||
clusterSecurityLevelForStorage *prometheus.Desc
|
||||
clusterSharedVolumeVssWriterOperationTimeout *prometheus.Desc
|
||||
clusterShutdownTimeoutInMinutes *prometheus.Desc
|
||||
clusterUseClientAccessNetworksForSharedVolumes *prometheus.Desc
|
||||
clusterWitnessDatabaseWriteTimeout *prometheus.Desc
|
||||
clusterWitnessDynamicWeight *prometheus.Desc
|
||||
clusterWitnessRestartInterval *prometheus.Desc
|
||||
|
||||
// network
|
||||
networkCharacteristics *prometheus.Desc
|
||||
networkFlags *prometheus.Desc
|
||||
networkMetric *prometheus.Desc
|
||||
networkRole *prometheus.Desc
|
||||
networkState *prometheus.Desc
|
||||
|
||||
// node
|
||||
nodeBuildNumber *prometheus.Desc
|
||||
nodeCharacteristics *prometheus.Desc
|
||||
nodeDetectedCloudPlatform *prometheus.Desc
|
||||
nodeDynamicWeight *prometheus.Desc
|
||||
nodeFlags *prometheus.Desc
|
||||
nodeMajorVersion *prometheus.Desc
|
||||
nodeMinorVersion *prometheus.Desc
|
||||
nodeNeedsPreventQuorum *prometheus.Desc
|
||||
nodeNodeDrainStatus *prometheus.Desc
|
||||
nodeNodeHighestVersion *prometheus.Desc
|
||||
nodeNodeLowestVersion *prometheus.Desc
|
||||
nodeNodeWeight *prometheus.Desc
|
||||
nodeState *prometheus.Desc
|
||||
nodeStatusInformation *prometheus.Desc
|
||||
|
||||
resourceCharacteristics *prometheus.Desc
|
||||
resourceDeadlockTimeout *prometheus.Desc
|
||||
resourceEmbeddedFailureAction *prometheus.Desc
|
||||
resourceFlags *prometheus.Desc
|
||||
resourceIsAlivePollInterval *prometheus.Desc
|
||||
resourceLooksAlivePollInterval *prometheus.Desc
|
||||
resourceMonitorProcessId *prometheus.Desc
|
||||
resourceOwnerNode *prometheus.Desc
|
||||
resourcePendingTimeout *prometheus.Desc
|
||||
resourceResourceClass *prometheus.Desc
|
||||
resourceRestartAction *prometheus.Desc
|
||||
resourceRestartDelay *prometheus.Desc
|
||||
resourceRestartPeriod *prometheus.Desc
|
||||
resourceRestartThreshold *prometheus.Desc
|
||||
resourceRetryPeriodOnFailure *prometheus.Desc
|
||||
resourceState *prometheus.Desc
|
||||
resourceSubClass *prometheus.Desc
|
||||
|
||||
// ResourceGroup
|
||||
resourceGroupAutoFailbackType *prometheus.Desc
|
||||
resourceGroupCharacteristics *prometheus.Desc
|
||||
resourceGroupColdStartSetting *prometheus.Desc
|
||||
resourceGroupDefaultOwner *prometheus.Desc
|
||||
resourceGroupFailbackWindowEnd *prometheus.Desc
|
||||
resourceGroupFailbackWindowStart *prometheus.Desc
|
||||
resourceGroupFailOverPeriod *prometheus.Desc
|
||||
resourceGroupFailOverThreshold *prometheus.Desc
|
||||
resourceGroupFlags *prometheus.Desc
|
||||
resourceGroupGroupType *prometheus.Desc
|
||||
resourceGroupOwnerNode *prometheus.Desc
|
||||
resourceGroupPriority *prometheus.Desc
|
||||
resourceGroupResiliencyPeriod *prometheus.Desc
|
||||
resourceGroupState *prometheus.Desc
|
||||
collectorCluster
|
||||
collectorNetwork
|
||||
collectorNode
|
||||
collectorResource
|
||||
collectorResourceGroup
|
||||
}
|
||||
|
||||
func New(config *Config) *Collector {
|
||||
|
||||
@@ -13,6 +13,86 @@ import (
|
||||
|
||||
const nameCluster = Name + "_cluster"
|
||||
|
||||
type collectorCluster struct {
|
||||
clusterAddEvictDelay *prometheus.Desc
|
||||
clusterAdminAccessPoint *prometheus.Desc
|
||||
clusterAutoAssignNodeSite *prometheus.Desc
|
||||
clusterAutoBalancerLevel *prometheus.Desc
|
||||
clusterAutoBalancerMode *prometheus.Desc
|
||||
clusterBackupInProgress *prometheus.Desc
|
||||
clusterBlockCacheSize *prometheus.Desc
|
||||
clusterClusSvcHangTimeout *prometheus.Desc
|
||||
clusterClusSvcRegroupOpeningTimeout *prometheus.Desc
|
||||
clusterClusSvcRegroupPruningTimeout *prometheus.Desc
|
||||
clusterClusSvcRegroupStageTimeout *prometheus.Desc
|
||||
clusterClusSvcRegroupTickInMilliseconds *prometheus.Desc
|
||||
clusterClusterEnforcedAntiAffinity *prometheus.Desc
|
||||
clusterClusterFunctionalLevel *prometheus.Desc
|
||||
clusterClusterGroupWaitDelay *prometheus.Desc
|
||||
clusterClusterLogLevel *prometheus.Desc
|
||||
clusterClusterLogSize *prometheus.Desc
|
||||
clusterClusterUpgradeVersion *prometheus.Desc
|
||||
clusterCrossSiteDelay *prometheus.Desc
|
||||
clusterCrossSiteThreshold *prometheus.Desc
|
||||
clusterCrossSubnetDelay *prometheus.Desc
|
||||
clusterCrossSubnetThreshold *prometheus.Desc
|
||||
clusterCsvBalancer *prometheus.Desc
|
||||
clusterDatabaseReadWriteMode *prometheus.Desc
|
||||
clusterDefaultNetworkRole *prometheus.Desc
|
||||
clusterDetectedCloudPlatform *prometheus.Desc
|
||||
clusterDetectManagedEvents *prometheus.Desc
|
||||
clusterDetectManagedEventsThreshold *prometheus.Desc
|
||||
clusterDisableGroupPreferredOwnerRandomization *prometheus.Desc
|
||||
clusterDrainOnShutdown *prometheus.Desc
|
||||
clusterDynamicQuorumEnabled *prometheus.Desc
|
||||
clusterEnableSharedVolumes *prometheus.Desc
|
||||
clusterFixQuorum *prometheus.Desc
|
||||
clusterGracePeriodEnabled *prometheus.Desc
|
||||
clusterGracePeriodTimeout *prometheus.Desc
|
||||
clusterGroupDependencyTimeout *prometheus.Desc
|
||||
clusterHangRecoveryAction *prometheus.Desc
|
||||
clusterIgnorePersistentStateOnStartup *prometheus.Desc
|
||||
clusterLogResourceControls *prometheus.Desc
|
||||
clusterLowerQuorumPriorityNodeId *prometheus.Desc
|
||||
clusterMaxNumberOfNodes *prometheus.Desc
|
||||
clusterMessageBufferLength *prometheus.Desc
|
||||
clusterMinimumNeverPreemptPriority *prometheus.Desc
|
||||
clusterMinimumPreemptorPriority *prometheus.Desc
|
||||
clusterNetftIPSecEnabled *prometheus.Desc
|
||||
clusterPlacementOptions *prometheus.Desc
|
||||
clusterPlumbAllCrossSubnetRoutes *prometheus.Desc
|
||||
clusterPreventQuorum *prometheus.Desc
|
||||
clusterQuarantineDuration *prometheus.Desc
|
||||
clusterQuarantineThreshold *prometheus.Desc
|
||||
clusterQuorumArbitrationTimeMax *prometheus.Desc
|
||||
clusterQuorumArbitrationTimeMin *prometheus.Desc
|
||||
clusterQuorumLogFileSize *prometheus.Desc
|
||||
clusterQuorumTypeValue *prometheus.Desc
|
||||
clusterRequestReplyTimeout *prometheus.Desc
|
||||
clusterResiliencyDefaultPeriod *prometheus.Desc
|
||||
clusterResiliencyLevel *prometheus.Desc
|
||||
clusterResourceDllDeadlockPeriod *prometheus.Desc
|
||||
clusterRootMemoryReserved *prometheus.Desc
|
||||
clusterRouteHistoryLength *prometheus.Desc
|
||||
clusterS2DBusTypes *prometheus.Desc
|
||||
clusterS2DCacheDesiredState *prometheus.Desc
|
||||
clusterS2DCacheFlashReservePercent *prometheus.Desc
|
||||
clusterS2DCachePageSizeKBytes *prometheus.Desc
|
||||
clusterS2DEnabled *prometheus.Desc
|
||||
clusterS2DIOLatencyThreshold *prometheus.Desc
|
||||
clusterS2DOptimizations *prometheus.Desc
|
||||
clusterSameSubnetDelay *prometheus.Desc
|
||||
clusterSameSubnetThreshold *prometheus.Desc
|
||||
clusterSecurityLevel *prometheus.Desc
|
||||
clusterSecurityLevelForStorage *prometheus.Desc
|
||||
clusterSharedVolumeVssWriterOperationTimeout *prometheus.Desc
|
||||
clusterShutdownTimeoutInMinutes *prometheus.Desc
|
||||
clusterUseClientAccessNetworksForSharedVolumes *prometheus.Desc
|
||||
clusterWitnessDatabaseWriteTimeout *prometheus.Desc
|
||||
clusterWitnessDynamicWeight *prometheus.Desc
|
||||
clusterWitnessRestartInterval *prometheus.Desc
|
||||
}
|
||||
|
||||
// msClusterCluster represents the MSCluster_Cluster WMI class
|
||||
// - https://docs.microsoft.com/en-us/previous-versions/windows/desktop/cluswmi/mscluster-cluster
|
||||
type msClusterCluster struct {
|
||||
|
||||
@@ -13,6 +13,14 @@ import (
|
||||
|
||||
const nameNetwork = Name + "_network"
|
||||
|
||||
type collectorNetwork struct {
|
||||
networkCharacteristics *prometheus.Desc
|
||||
networkFlags *prometheus.Desc
|
||||
networkMetric *prometheus.Desc
|
||||
networkRole *prometheus.Desc
|
||||
networkState *prometheus.Desc
|
||||
}
|
||||
|
||||
// msClusterNetwork represents the MSCluster_Network WMI class
|
||||
// - https://docs.microsoft.com/en-us/previous-versions/windows/desktop/cluswmi/mscluster-network
|
||||
type msClusterNetwork struct {
|
||||
|
||||
@@ -13,6 +13,23 @@ import (
|
||||
|
||||
const nameNode = Name + "_node"
|
||||
|
||||
type collectorNode struct {
|
||||
nodeBuildNumber *prometheus.Desc
|
||||
nodeCharacteristics *prometheus.Desc
|
||||
nodeDetectedCloudPlatform *prometheus.Desc
|
||||
nodeDynamicWeight *prometheus.Desc
|
||||
nodeFlags *prometheus.Desc
|
||||
nodeMajorVersion *prometheus.Desc
|
||||
nodeMinorVersion *prometheus.Desc
|
||||
nodeNeedsPreventQuorum *prometheus.Desc
|
||||
nodeNodeDrainStatus *prometheus.Desc
|
||||
nodeNodeHighestVersion *prometheus.Desc
|
||||
nodeNodeLowestVersion *prometheus.Desc
|
||||
nodeNodeWeight *prometheus.Desc
|
||||
nodeState *prometheus.Desc
|
||||
nodeStatusInformation *prometheus.Desc
|
||||
}
|
||||
|
||||
// msClusterNode represents the MSCluster_Node WMI class
|
||||
// - https://docs.microsoft.com/en-us/previous-versions/windows/desktop/cluswmi/mscluster-node
|
||||
type msClusterNode struct {
|
||||
|
||||
@@ -13,6 +13,26 @@ import (
|
||||
|
||||
const nameResource = Name + "_resource"
|
||||
|
||||
type collectorResource struct {
|
||||
resourceCharacteristics *prometheus.Desc
|
||||
resourceDeadlockTimeout *prometheus.Desc
|
||||
resourceEmbeddedFailureAction *prometheus.Desc
|
||||
resourceFlags *prometheus.Desc
|
||||
resourceIsAlivePollInterval *prometheus.Desc
|
||||
resourceLooksAlivePollInterval *prometheus.Desc
|
||||
resourceMonitorProcessId *prometheus.Desc
|
||||
resourceOwnerNode *prometheus.Desc
|
||||
resourcePendingTimeout *prometheus.Desc
|
||||
resourceResourceClass *prometheus.Desc
|
||||
resourceRestartAction *prometheus.Desc
|
||||
resourceRestartDelay *prometheus.Desc
|
||||
resourceRestartPeriod *prometheus.Desc
|
||||
resourceRestartThreshold *prometheus.Desc
|
||||
resourceRetryPeriodOnFailure *prometheus.Desc
|
||||
resourceState *prometheus.Desc
|
||||
resourceSubClass *prometheus.Desc
|
||||
}
|
||||
|
||||
// msClusterResource represents the MSCluster_Resource WMI class
|
||||
// - https://docs.microsoft.com/en-us/previous-versions/windows/desktop/cluswmi/mscluster-resource
|
||||
type msClusterResource struct {
|
||||
|
||||
@@ -13,6 +13,23 @@ import (
|
||||
|
||||
const nameResourceGroup = Name + "_resourcegroup"
|
||||
|
||||
type collectorResourceGroup struct {
|
||||
resourceGroupAutoFailbackType *prometheus.Desc
|
||||
resourceGroupCharacteristics *prometheus.Desc
|
||||
resourceGroupColdStartSetting *prometheus.Desc
|
||||
resourceGroupDefaultOwner *prometheus.Desc
|
||||
resourceGroupFailbackWindowEnd *prometheus.Desc
|
||||
resourceGroupFailbackWindowStart *prometheus.Desc
|
||||
resourceGroupFailOverPeriod *prometheus.Desc
|
||||
resourceGroupFailOverThreshold *prometheus.Desc
|
||||
resourceGroupFlags *prometheus.Desc
|
||||
resourceGroupGroupType *prometheus.Desc
|
||||
resourceGroupOwnerNode *prometheus.Desc
|
||||
resourceGroupPriority *prometheus.Desc
|
||||
resourceGroupResiliencyPeriod *prometheus.Desc
|
||||
resourceGroupState *prometheus.Desc
|
||||
}
|
||||
|
||||
// msClusterResourceGroup represents the MSCluster_ResourceGroup WMI class
|
||||
// - https://docs.microsoft.com/en-us/previous-versions/windows/desktop/cluswmi/mscluster-resourcegroup
|
||||
type msClusterResourceGroup struct {
|
||||
|
||||
Reference in New Issue
Block a user