chore: Added/updated documentation for mscluster_cluster collector

Signed-off-by: Sam Storie <sam.storie@emerson.com>
This commit is contained in:
Sam Storie 2022-01-09 16:16:03 -06:00 committed by Ben Reedy
parent c7cbc48afc
commit 3d50cf4309
No known key found for this signature in database
GPG Key ID: 235C15B6086C9D7E
2 changed files with 176 additions and 72 deletions

View File

@ -95,151 +95,151 @@ func newMSCluster_ClusterCollector() (Collector, error) {
return &MSCluster_ClusterCollector{
AddEvictDelay: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "add_evict_delay"),
"(AddEvictDelay)",
"Provides access to the cluster's AddEvictDelay property, which is the number a seconds that a new node is delayed after an eviction of another node.",
[]string{"name"},
nil,
),
AdminAccessPoint: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "admin_access_point"),
"(AdminAccessPoint)",
"The type of the cluster administrative access point.",
[]string{"name"},
nil,
),
AutoAssignNodeSite: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "auto_assign_node_site"),
"(AutoAssignNodeSite)",
"Determines whether or not the cluster will attempt to automatically assign nodes to sites based on networks and Active Directory Site information.",
[]string{"name"},
nil,
),
AutoBalancerLevel: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "auto_balancer_level"),
"(AutoBalancerLevel)",
"Determines the level of aggressiveness of AutoBalancer.",
[]string{"name"},
nil,
),
AutoBalancerMode: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "auto_balancer_mode"),
"(AutoBalancerMode)",
"Determines whether or not the auto balancer is enabled.",
[]string{"name"},
nil,
),
BackupInProgress: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "backup_in_progress"),
"(BackupInProgress)",
"Indicates whether a backup is in progress.",
[]string{"name"},
nil,
),
BlockCacheSize: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "block_cache_size"),
"(BlockCacheSize)",
"CSV BlockCache Size in MB.",
[]string{"name"},
nil,
),
ClusSvcHangTimeout: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "clus_svc_hang_timeout"),
"(ClusSvcHangTimeout)",
"Controls how long the cluster network driver waits between Failover Cluster Service heartbeats before it determines that the Failover Cluster Service has stopped responding.",
[]string{"name"},
nil,
),
ClusSvcRegroupOpeningTimeout: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "clus_svc_regroup_opening_timeout"),
"(ClusSvcRegroupOpeningTimeout)",
"Controls how long a node will wait on other nodes in the opening stage before deciding that they failed.",
[]string{"name"},
nil,
),
ClusSvcRegroupPruningTimeout: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "clus_svc_regroup_pruning_timeout"),
"(ClusSvcRegroupPruningTimeout)",
"Controls how long the membership leader will wait to reach full connectivity between cluster nodes.",
[]string{"name"},
nil,
),
ClusSvcRegroupStageTimeout: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "clus_svc_regroup_stage_timeout"),
"(ClusSvcRegroupStageTimeout)",
"Controls how long a node will wait on other nodes in a membership stage before deciding that they failed.",
[]string{"name"},
nil,
),
ClusSvcRegroupTickInMilliseconds: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "clus_svc_regroup_tick_in_milliseconds"),
"(ClusSvcRegroupTickInMilliseconds)",
"Controls how frequently the membership algorithm is sending periodic membership messages.",
[]string{"name"},
nil,
),
ClusterEnforcedAntiAffinity: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cluster_enforced_anti_affinity"),
"(ClusterEnforcedAntiAffinity)",
"Enables or disables hard enforcement of group anti-affinity classes.",
[]string{"name"},
nil,
),
ClusterFunctionalLevel: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cluster_functional_level"),
"(ClusterFunctionalLevel)",
"The functional level the cluster is currently running in.",
[]string{"name"},
nil,
),
ClusterGroupWaitDelay: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cluster_group_wait_delay"),
"(ClusterGroupWaitDelay)",
"Maximum time in seconds that a group waits for its preferred node to come online during cluster startup before coming online on a different node.",
[]string{"name"},
nil,
),
ClusterLogLevel: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cluster_log_level"),
"(ClusterLogLevel)",
"Controls the level of cluster logging.",
[]string{"name"},
nil,
),
ClusterLogSize: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cluster_log_size"),
"(ClusterLogSize)",
"Controls the maximum size of the cluster log files on each of the nodes.",
[]string{"name"},
nil,
),
ClusterUpgradeVersion: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cluster_upgrade_version"),
"(ClusterUpgradeVersion)",
"Specifies the upgrade version the cluster is currently running in.",
[]string{"name"},
nil,
),
CrossSiteDelay: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cross_site_delay"),
"(CrossSiteDelay)",
"Controls how long the cluster network driver waits in milliseconds between sending Cluster Service heartbeats across sites.",
[]string{"name"},
nil,
),
CrossSiteThreshold: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cross_site_threshold"),
"(CrossSiteThreshold)",
"Controls how many Cluster Service heartbeats can be missed across sites before it determines that Cluster Service has stopped responding.",
[]string{"name"},
nil,
),
CrossSubnetDelay: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cross_subnet_delay"),
"(CrossSubnetDelay)",
"Controls how long the cluster network driver waits in milliseconds between sending Cluster Service heartbeats across subnets.",
[]string{"name"},
nil,
),
CrossSubnetThreshold: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "cross_subnet_threshold"),
"(CrossSubnetThreshold)",
"Controls how many Cluster Service heartbeats can be missed across subnets before it determines that Cluster Service has stopped responding.",
[]string{"name"},
nil,
),
CsvBalancer: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "csv_balancer"),
"(CsvBalancer)",
"Whether automatic balancing for CSV is enabled.",
[]string{"name"},
nil,
),
DatabaseReadWriteMode: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "database_read_write_mode"),
"(DatabaseReadWriteMode)",
"Sets the database read and write mode.",
[]string{"name"},
nil,
),
DefaultNetworkRole: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "default_network_role"),
"(DefaultNetworkRole)",
"Provides access to the cluster's DefaultNetworkRole property.",
[]string{"name"},
nil,
),
@ -269,247 +269,247 @@ func newMSCluster_ClusterCollector() (Collector, error) {
),
DrainOnShutdown: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "drain_on_shutdown"),
"(DrainOnShutdown)",
"Whether to drain the node when cluster service is being stopped.",
[]string{"name"},
nil,
),
DynamicQuorumEnabled: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "dynamic_quorum_enabled"),
"(DynamicQuorumEnabled)",
"Allows cluster service to adjust node weights as needed to increase availability.",
[]string{"name"},
nil,
),
EnableSharedVolumes: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "enable_shared_volumes"),
"(EnableSharedVolumes)",
"Enables or disables cluster shared volumes on this cluster.",
[]string{"name"},
nil,
),
FixQuorum: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "fix_quorum"),
"(FixQuorum)",
"Provides access to the cluster's FixQuorum property, which specifies if the cluster is in a fix quorum state.",
[]string{"name"},
nil,
),
GracePeriodEnabled: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "grace_period_enabled"),
"(GracePeriodEnabled)",
"Whether the node grace period feature of this cluster is enabled.",
[]string{"name"},
nil,
),
GracePeriodTimeout: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "grace_period_timeout"),
"(GracePeriodTimeout)",
"The grace period timeout in milliseconds.",
[]string{"name"},
nil,
),
GroupDependencyTimeout: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "group_dependency_timeout"),
"(GroupDependencyTimeout)",
"The timeout after which a group will be brought online despite unsatisfied dependencies",
[]string{"name"},
nil,
),
HangRecoveryAction: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "hang_recovery_action"),
"(HangRecoveryAction)",
"Controls the action to take if the user-mode processes have stopped responding.",
[]string{"name"},
nil,
),
IgnorePersistentStateOnStartup: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "ignore_persistent_state_on_startup"),
"(IgnorePersistentStateOnStartup)",
"Provides access to the cluster's IgnorePersistentStateOnStartup property, which specifies whether the cluster will bring online groups that were online when the cluster was shut down.",
[]string{"name"},
nil,
),
LogResourceControls: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "log_resource_controls"),
"(LogResourceControls)",
"Controls the logging of resource controls.",
[]string{"name"},
nil,
),
LowerQuorumPriorityNodeId: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "lower_quorum_priority_node_id"),
"(LowerQuorumPriorityNodeId)",
"Specifies the Node ID that has a lower priority when voting for quorum is performed. If the quorum vote is split 50/50%, the specified node's vote would be ignored to break the tie. If this is not set then the cluster will pick a node at random to break the tie.",
[]string{"name"},
nil,
),
MaxNumberOfNodes: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "max_number_of_nodes"),
"(MaxNumberOfNodes)",
"Indicates the maximum number of nodes that may participate in the Cluster.",
[]string{"name"},
nil,
),
MessageBufferLength: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "message_buffer_length"),
"(MessageBufferLength)",
"The maximum unacknowledged message count for GEM.",
[]string{"name"},
nil,
),
MinimumNeverPreemptPriority: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "minimum_never_preempt_priority"),
"(MinimumNeverPreemptPriority)",
"Groups with this priority or higher cannot be preempted.",
[]string{"name"},
nil,
),
MinimumPreemptorPriority: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "minimum_preemptor_priority"),
"(MinimumPreemptorPriority)",
"Minimum priority a cluster group must have to be able to preempt another group.",
[]string{"name"},
nil,
),
NetftIPSecEnabled: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "netft_ip_sec_enabled"),
"(NetftIPSecEnabled)",
"Whether IPSec is enabled for cluster internal traffic.",
[]string{"name"},
nil,
),
PlacementOptions: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "placement_options"),
"(PlacementOptions)",
"Various option flags to modify default placement behavior.",
[]string{"name"},
nil,
),
PlumbAllCrossSubnetRoutes: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "plumb_all_cross_subnet_routes"),
"(PlumbAllCrossSubnetRoutes)",
"Plumbs all possible cross subnet routes to all nodes.",
[]string{"name"},
nil,
),
PreventQuorum: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "prevent_quorum"),
"(PreventQuorum)",
"Whether the cluster will ignore group persistent state on startup.",
[]string{"name"},
nil,
),
QuarantineDuration: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "quarantine_duration"),
"(QuarantineDuration)",
"The quarantine period timeout in milliseconds.",
[]string{"name"},
nil,
),
QuarantineThreshold: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "quarantine_threshold"),
"(QuarantineThreshold)",
"Number of node failures before it will be quarantined.",
[]string{"name"},
nil,
),
QuorumArbitrationTimeMax: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "quorum_arbitration_time_max"),
"(QuorumArbitrationTimeMax)",
"Controls the maximum time necessary to decide the Quorum owner node.",
[]string{"name"},
nil,
),
QuorumArbitrationTimeMin: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "quorum_arbitration_time_min"),
"(QuorumArbitrationTimeMin)",
"Controls the minimum time necessary to decide the Quorum owner node.",
[]string{"name"},
nil,
),
QuorumLogFileSize: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "quorum_log_file_size"),
"(QuorumLogFileSize)",
"This property is obsolete.",
[]string{"name"},
nil,
),
QuorumTypeValue: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "quorum_type_value"),
"(QuorumTypeValue)",
"Get the current quorum type value. -1: Unknown; 1: Node; 2: FileShareWitness; 3: Storage; 4: None",
[]string{"name"},
nil,
),
RequestReplyTimeout: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "request_reply_timeout"),
"(RequestReplyTimeout)",
"Controls the request reply time-out period.",
[]string{"name"},
nil,
),
ResiliencyDefaultPeriod: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "resiliency_default_period"),
"(ResiliencyDefaultPeriod)",
"The default resiliency period, in seconds, for the cluster.",
[]string{"name"},
nil,
),
ResiliencyLevel: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "resiliency_level"),
"(ResiliencyLevel)",
"The resiliency level for the cluster.",
[]string{"name"},
nil,
),
ResourceDllDeadlockPeriod: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "resource_dll_deadlock_period"),
"(ResourceDllDeadlockPeriod)",
"This property is obsolete.",
[]string{"name"},
nil,
),
RootMemoryReserved: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "root_memory_reserved"),
"(RootMemoryReserved)",
"Controls the amount of memory reserved for the parent partition on all cluster nodes.",
[]string{"name"},
nil,
),
RouteHistoryLength: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "route_history_length"),
"(RouteHistoryLength)",
"The history length for routes to help finding network issues.",
[]string{"name"},
nil,
),
S2DBusTypes: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "s2d_bus_types"),
"(S2DBusTypes)",
"Bus types for storage spaces direct.",
[]string{"name"},
nil,
),
S2DCacheDesiredState: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "s2d_cache_desired_state"),
"(S2DCacheDesiredState)",
"Desired state of the storage spaces direct cache.",
[]string{"name"},
nil,
),
S2DCacheFlashReservePercent: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "s2d_cache_flash_reserve_percent"),
"(S2DCacheFlashReservePercent)",
"Percentage of allocated flash space to utilize when caching.",
[]string{"name"},
nil,
),
S2DCachePageSizeKBytes: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "s2d_cache_page_size_k_bytes"),
"(S2DCachePageSizeKBytes)",
"Page size in KB used by S2D cache.",
[]string{"name"},
nil,
),
S2DEnabled: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "s2d_enabled"),
"(S2DEnabled)",
"Whether direct attached storage (DAS) is enabled.",
[]string{"name"},
nil,
),
S2DIOLatencyThreshold: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "s2dio_latency_threshold"),
"(S2DIOLatencyThreshold)",
"The I/O latency threshold for storage spaces direct.",
[]string{"name"},
nil,
),
S2DOptimizations: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "s2d_optimizations"),
"(S2DOptimizations)",
"Optimization flags for storage spaces direct.",
[]string{"name"},
nil,
),
SameSubnetDelay: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "same_subnet_delay"),
"(SameSubnetDelay)",
"Controls how long the cluster network driver waits in milliseconds between sending Cluster Service heartbeats on the same subnet.",
[]string{"name"},
nil,
),
SameSubnetThreshold: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "same_subnet_threshold"),
"(SameSubnetThreshold)",
"Controls how many Cluster Service heartbeats can be missed on the same subnet before it determines that Cluster Service has stopped responding.",
[]string{"name"},
nil,
),
SecurityLevel: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "security_level"),
"(SecurityLevel)",
"Controls the level of security that should apply to intracluster messages. 0: Clear Text; 1: Sign; 2: Encrypt ",
[]string{"name"},
nil,
),
@ -521,37 +521,37 @@ func newMSCluster_ClusterCollector() (Collector, error) {
),
SharedVolumeVssWriterOperationTimeout: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "shared_volume_vss_writer_operation_timeout"),
"(SharedVolumeVssWriterOperationTimeout)",
"CSV VSS Writer operation timeout in seconds.",
[]string{"name"},
nil,
),
ShutdownTimeoutInMinutes: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "shutdown_timeout_in_minutes"),
"(ShutdownTimeoutInMinutes)",
"The maximum time in minutes allowed for cluster resources to come offline during cluster service shutdown.",
[]string{"name"},
nil,
),
UseClientAccessNetworksForSharedVolumes: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "use_client_access_networks_for_shared_volumes"),
"(UseClientAccessNetworksForSharedVolumes)",
"Whether the use of client access networks for cluster shared volumes feature of this cluster is enabled. 0: Disabled; 1: Enabled; 2: Auto",
[]string{"name"},
nil,
),
WitnessDatabaseWriteTimeout: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "witness_database_write_timeout"),
"(WitnessDatabaseWriteTimeout)",
"Controls the maximum time in seconds that a cluster database write to a witness can take before the write is abandoned.",
[]string{"name"},
nil,
),
WitnessDynamicWeight: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "witness_dynamic_weight"),
"(WitnessDynamicWeight)",
"The weight of the configured witness.",
[]string{"name"},
nil,
),
WitnessRestartInterval: prometheus.NewDesc(
prometheus.BuildFQName(Namespace, subsystem, "witness_restart_interval"),
"(WitnessRestartInterval)",
"Controls the witness restart interval.",
[]string{"name"},
nil,
),

View File

@ -0,0 +1,104 @@
# mscluster_cluster collector
The The MSCluster_Cluster class is a dynamic WMI class that represents a cluster.
|||
-|-
Metric name prefix | `mscluster_cluster`
Classes | `MSCluster_Cluster`
Enabled by default? | No
## Flags
None
## Metrics
Name | Description | Type | Labels
-----|-------------|------|-------
`AddEvictDelay` | Provides access to the cluster's AddEvictDelay property, which is the number a seconds that a new node is delayed after an eviction of another node. | guage | None
`AdminAccessPoint` | The type of the cluster administrative access point. | guage | None
`AutoAssignNodeSite` | Determines whether or not the cluster will attempt to automatically assign nodes to sites based on networks and Active Directory Site information. | guage | None
`AutoBalancerLevel` | Determines the level of aggressiveness of AutoBalancer. | guage | None
`AutoBalancerMode` | Determines whether or not the auto balancer is enabled. | guage | None
`BackupInProgress` | Indicates whether a backup is in progress. | guage | None
`BlockCacheSize` | CSV BlockCache Size in MB. | guage | None
`ClusSvcHangTimeout` | Controls how long the cluster network driver waits between Failover Cluster Service heartbeats before it determines that the Failover Cluster Service has stopped responding. | guage | None
`ClusSvcRegroupOpeningTimeout` | Controls how long a node will wait on other nodes in the opening stage before deciding that they failed. | guage | None
`ClusSvcRegroupPruningTimeout` | Controls how long the membership leader will wait to reach full connectivity between cluster nodes. | guage | None
`ClusSvcRegroupStageTimeout` | Controls how long a node will wait on other nodes in a membership stage before deciding that they failed. | guage | None
`ClusSvcRegroupTickInMilliseconds` | Controls how frequently the membership algorithm is sending periodic membership messages. | guage | None
`ClusterEnforcedAntiAffinity` | Enables or disables hard enforcement of group anti-affinity classes. | guage | None
`ClusterFunctionalLevel` | The functional level the cluster is currently running in. | guage | None
`ClusterGroupWaitDelay` | Maximum time in seconds that a group waits for its preferred node to come online during cluster startup before coming online on a different node. | guage | None
`ClusterLogLevel` | Controls the level of cluster logging. | guage | None
`ClusterLogSize` | Controls the maximum size of the cluster log files on each of the nodes. | guage | None
`ClusterUpgradeVersion` | Specifies the upgrade version the cluster is currently running in. | guage | None
`CrossSiteDelay` | Controls how long the cluster network driver waits in milliseconds between sending Cluster Service heartbeats across sites. | guage | None
`CrossSiteThreshold` | Controls how many Cluster Service heartbeats can be missed across sites before it determines that Cluster Service has stopped responding. | guage | None
`CrossSubnetDelay` | Controls how long the cluster network driver waits in milliseconds between sending Cluster Service heartbeats across subnets. | guage | None
`CrossSubnetThreshold` | Controls how many Cluster Service heartbeats can be missed across subnets before it determines that Cluster Service has stopped responding. | guage | None
`CsvBalancer` | Whether automatic balancing for CSV is enabled. | guage | None
`DatabaseReadWriteMode` | Sets the database read and write mode. | guage | None
`DefaultNetworkRole` | Provides access to the cluster's DefaultNetworkRole property. | guage | None
`DetectedCloudPlatform` | | guage | None
`DetectManagedEvents` | | guage | None
`DetectManagedEventsThreshold` | | guage | None
`DisableGroupPreferredOwnerRandomization` | | guage | None
`DrainOnShutdown` | Whether to drain the node when cluster service is being stopped. | guage | None
`DynamicQuorumEnabled` | Allows cluster service to adjust node weights as needed to increase availability. | guage | None
`EnableSharedVolumes` | Enables or disables cluster shared volumes on this cluster. | guage | None
`FixQuorum` | Provides access to the cluster's FixQuorum property, which specifies if the cluster is in a fix quorum state. | guage | None
`GracePeriodEnabled` | Whether the node grace period feature of this cluster is enabled. | guage | None
`GracePeriodTimeout` | The grace period timeout in milliseconds. | guage | None
`GroupDependencyTimeout` | The timeout after which a group will be brought online despite unsatisfied dependencies | guage | None
`HangRecoveryAction` | Controls the action to take if the user-mode processes have stopped responding. | guage | None
`IgnorePersistentStateOnStartup` | Provides access to the cluster's IgnorePersistentStateOnStartup property, which specifies whether the cluster will bring online groups that were online when the cluster was shut down. | guage | None
`LogResourceControls` | Controls the logging of resource controls. | guage | None
`LowerQuorumPriorityNodeId` | Specifies the Node ID that has a lower priority when voting for quorum is performed. If the quorum vote is split 50/50%, the specified node's vote would be ignored to break the tie. If this is not set then the cluster will pick a node at random to break the tie. | guage | None
`MaxNumberOfNodes` | Indicates the maximum number of nodes that may participate in the Cluster. | guage | None
`MessageBufferLength` | The maximum unacknowledged message count for GEM. | guage | None
`MinimumNeverPreemptPriority` | Groups with this priority or higher cannot be preempted. | guage | None
`MinimumPreemptorPriority` | Minimum priority a cluster group must have to be able to preempt another group. | guage | None
`NetftIPSecEnabled` | Whether IPSec is enabled for cluster internal traffic. | guage | None
`PlacementOptions` | Various option flags to modify default placement behavior. | guage | None
`PlumbAllCrossSubnetRoutes` | Plumbs all possible cross subnet routes to all nodes. | guage | None
`PreventQuorum` | Whether the cluster will ignore group persistent state on startup. | guage | None
`QuarantineDuration` | The quarantine period timeout in milliseconds. | guage | None
`QuarantineThreshold` | Number of node failures before it will be quarantined. | guage | None
`QuorumArbitrationTimeMax` | Controls the maximum time necessary to decide the Quorum owner node. | guage | None
`QuorumArbitrationTimeMin` | Controls the minimum time necessary to decide the Quorum owner node. | guage | None
`QuorumLogFileSize` | This property is obsolete. | guage | None
`QuorumTypeValue` | Get the current quorum type value. -1: Unknown; 1: Node; 2: FileShareWitness; 3: Storage; 4: None | guage | None
`RequestReplyTimeout` | Controls the request reply time-out period. | guage | None
`ResiliencyDefaultPeriod` | The default resiliency period, in seconds, for the cluster. | guage | None
`ResiliencyLevel` | The resiliency level for the cluster. | guage | None
`ResourceDllDeadlockPeriod` | This property is obsolete. | guage | None
`RootMemoryReserved` | Controls the amount of memory reserved for the parent partition on all cluster nodes. | guage | None
`RouteHistoryLength` | The history length for routes to help finding network issues. | guage | None
`S2DBusTypes` | Bus types for storage spaces direct. | guage | None
`S2DCacheDesiredState` | Desired state of the storage spaces direct cache. | guage | None
`S2DCacheFlashReservePercent` | Percentage of allocated flash space to utilize when caching. | guage | None
`S2DCachePageSizeKBytes` | Page size in KB used by S2D cache. | guage | None
`S2DEnabled` | Whether direct attached storage (DAS) is enabled. | guage | None
`S2DIOLatencyThreshold` | The I/O latency threshold for storage spaces direct. | guage | None
`S2DOptimizations` | Optimization flags for storage spaces direct. | guage | None
`SameSubnetDelay` | Controls how long the cluster network driver waits in milliseconds between sending Cluster Service heartbeats on the same subnet. | guage | None
`SameSubnetThreshold` | Controls how many Cluster Service heartbeats can be missed on the same subnet before it determines that Cluster Service has stopped responding. | guage | None
`SecurityLevel` | Controls the level of security that should apply to intracluster messages. 0: Clear Text; 1: Sign; 2: Encrypt | guage | None
`SecurityLevelForStorage` | | guage | None
`SharedVolumeVssWriterOperationTimeout` | CSV VSS Writer operation timeout in seconds. | guage | None
`ShutdownTimeoutInMinutes` | The maximum time in minutes allowed for cluster resources to come offline during cluster service shutdown. | guage | None
`UseClientAccessNetworksForSharedVolumes` | Whether the use of client access networks for cluster shared volumes feature of this cluster is enabled. 0: Disabled; 1: Enabled; 2: Auto | guage | None
`WitnessDatabaseWriteTimeout` | Controls the maximum time in seconds that a cluster database write to a witness can take before the write is abandoned. | guage | None
`WitnessDynamicWeight` | The weight of the configured witness. | guage | None
`WitnessRestartInterval` | Controls the witness restart interval. | guage | None
### Example metric
_This collector does not yet have explained examples, we would appreciate your help adding them!_
## Useful queries
_This collector does not yet have any useful queries added, we would appreciate your help adding them!_
## Alerting examples
_This collector does not yet have alerting examples, we would appreciate your help adding them!_