mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-02-08 05:56:37 +00:00
chore: cleanup move private packages to internal (#1665)
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:netfx="http://wixtoolset.org/schemas/v4/wxs/netfx"
|
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
|
||||||
xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
|
xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<DirectoryRef Id="APPLICATIONFOLDER">
|
<DirectoryRef Id="APPLICATIONFOLDER">
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -284,374 +284,374 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
|
|
||||||
c.addressBookOperationsTotal = prometheus.NewDesc(
|
c.addressBookOperationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "address_book_operations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "address_book_operations_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"operation"},
|
[]string{"operation"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.addressBookClientSessions = prometheus.NewDesc(
|
c.addressBookClientSessions = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "address_book_client_sessions"),
|
prometheus.BuildFQName(types.Namespace, Name, "address_book_client_sessions"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.approximateHighestDistinguishedNameTag = prometheus.NewDesc(
|
c.approximateHighestDistinguishedNameTag = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "approximate_highest_distinguished_name_tag"),
|
prometheus.BuildFQName(types.Namespace, Name, "approximate_highest_distinguished_name_tag"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.atqEstimatedDelaySeconds = prometheus.NewDesc(
|
c.atqEstimatedDelaySeconds = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "atq_estimated_delay_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "atq_estimated_delay_seconds"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.atqOutstandingRequests = prometheus.NewDesc(
|
c.atqOutstandingRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "atq_outstanding_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "atq_outstanding_requests"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.atqAverageRequestLatency = prometheus.NewDesc(
|
c.atqAverageRequestLatency = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "atq_average_request_latency"),
|
prometheus.BuildFQName(types.Namespace, Name, "atq_average_request_latency"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.atqCurrentThreads = prometheus.NewDesc(
|
c.atqCurrentThreads = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "atq_current_threads"),
|
prometheus.BuildFQName(types.Namespace, Name, "atq_current_threads"),
|
||||||
"",
|
"",
|
||||||
[]string{"service"},
|
[]string{"service"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.searchesTotal = prometheus.NewDesc(
|
c.searchesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "searches_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "searches_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"scope"},
|
[]string{"scope"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.databaseOperationsTotal = prometheus.NewDesc(
|
c.databaseOperationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "database_operations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "database_operations_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"operation"},
|
[]string{"operation"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bindsTotal = prometheus.NewDesc(
|
c.bindsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "binds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "binds_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"bind_method"},
|
[]string{"bind_method"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationHighestUsn = prometheus.NewDesc(
|
c.replicationHighestUsn = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_highest_usn"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_highest_usn"),
|
||||||
"",
|
"",
|
||||||
[]string{"state"},
|
[]string{"state"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.intraSiteReplicationDataBytesTotal = prometheus.NewDesc(
|
c.intraSiteReplicationDataBytesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_data_intrasite_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_data_intrasite_bytes_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"direction"},
|
[]string{"direction"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.interSiteReplicationDataBytesTotal = prometheus.NewDesc(
|
c.interSiteReplicationDataBytesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_data_intersite_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_data_intersite_bytes_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"direction"},
|
[]string{"direction"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationInboundSyncObjectsRemaining = prometheus.NewDesc(
|
c.replicationInboundSyncObjectsRemaining = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_inbound_sync_objects_remaining"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_inbound_sync_objects_remaining"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationInboundLinkValueUpdatesRemaining = prometheus.NewDesc(
|
c.replicationInboundLinkValueUpdatesRemaining = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_inbound_link_value_updates_remaining"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_inbound_link_value_updates_remaining"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationInboundObjectsUpdatedTotal = prometheus.NewDesc(
|
c.replicationInboundObjectsUpdatedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_inbound_objects_updated_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_inbound_objects_updated_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationInboundObjectsFilteredTotal = prometheus.NewDesc(
|
c.replicationInboundObjectsFilteredTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_inbound_objects_filtered_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_inbound_objects_filtered_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationInboundPropertiesUpdatedTotal = prometheus.NewDesc(
|
c.replicationInboundPropertiesUpdatedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_inbound_properties_updated_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_inbound_properties_updated_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationInboundPropertiesFilteredTotal = prometheus.NewDesc(
|
c.replicationInboundPropertiesFilteredTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_inbound_properties_filtered_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_inbound_properties_filtered_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationPendingOperations = prometheus.NewDesc(
|
c.replicationPendingOperations = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_pending_operations"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_pending_operations"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationPendingSynchronizations = prometheus.NewDesc(
|
c.replicationPendingSynchronizations = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_pending_synchronizations"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_pending_synchronizations"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationSyncRequestsTotal = prometheus.NewDesc(
|
c.replicationSyncRequestsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_sync_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_sync_requests_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationSyncRequestsSuccessTotal = prometheus.NewDesc(
|
c.replicationSyncRequestsSuccessTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_sync_requests_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_sync_requests_success_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.replicationSyncRequestsSchemaMismatchFailureTotal = prometheus.NewDesc(
|
c.replicationSyncRequestsSchemaMismatchFailureTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "replication_sync_requests_schema_mismatch_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "replication_sync_requests_schema_mismatch_failure_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.nameTranslationsTotal = prometheus.NewDesc(
|
c.nameTranslationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "name_translations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "name_translations_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"target_name"},
|
[]string{"target_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.changeMonitorsRegistered = prometheus.NewDesc(
|
c.changeMonitorsRegistered = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "change_monitors_registered"),
|
prometheus.BuildFQName(types.Namespace, Name, "change_monitors_registered"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.changeMonitorUpdatesPending = prometheus.NewDesc(
|
c.changeMonitorUpdatesPending = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "change_monitor_updates_pending"),
|
prometheus.BuildFQName(types.Namespace, Name, "change_monitor_updates_pending"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.nameCacheHitsTotal = prometheus.NewDesc(
|
c.nameCacheHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "name_cache_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "name_cache_hits_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.nameCacheLookupsTotal = prometheus.NewDesc(
|
c.nameCacheLookupsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "name_cache_lookups_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "name_cache_lookups_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.directoryOperationsTotal = prometheus.NewDesc(
|
c.directoryOperationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "directory_operations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "directory_operations_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"operation", "origin"},
|
[]string{"operation", "origin"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.directorySearchSubOperationsTotal = prometheus.NewDesc(
|
c.directorySearchSubOperationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "directory_search_suboperations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "directory_search_suboperations_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.securityDescriptorPropagationEventsTotal = prometheus.NewDesc(
|
c.securityDescriptorPropagationEventsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "security_descriptor_propagation_events_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "security_descriptor_propagation_events_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.securityDescriptorPropagationEventsQueued = prometheus.NewDesc(
|
c.securityDescriptorPropagationEventsQueued = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "security_descriptor_propagation_events_queued"),
|
prometheus.BuildFQName(types.Namespace, Name, "security_descriptor_propagation_events_queued"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.securityDescriptorPropagationAccessWaitTotalSeconds = prometheus.NewDesc(
|
c.securityDescriptorPropagationAccessWaitTotalSeconds = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "security_descriptor_propagation_access_wait_total_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "security_descriptor_propagation_access_wait_total_seconds"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.securityDescriptorPropagationItemsQueuedTotal = prometheus.NewDesc(
|
c.securityDescriptorPropagationItemsQueuedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "security_descriptor_propagation_items_queued_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "security_descriptor_propagation_items_queued_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.directoryServiceThreads = prometheus.NewDesc(
|
c.directoryServiceThreads = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "directory_service_threads"),
|
prometheus.BuildFQName(types.Namespace, Name, "directory_service_threads"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ldapClosedConnectionsTotal = prometheus.NewDesc(
|
c.ldapClosedConnectionsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ldap_closed_connections_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ldap_closed_connections_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ldapOpenedConnectionsTotal = prometheus.NewDesc(
|
c.ldapOpenedConnectionsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ldap_opened_connections_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ldap_opened_connections_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"type"},
|
[]string{"type"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ldapActiveThreads = prometheus.NewDesc(
|
c.ldapActiveThreads = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ldap_active_threads"),
|
prometheus.BuildFQName(types.Namespace, Name, "ldap_active_threads"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ldapLastBindTimeSeconds = prometheus.NewDesc(
|
c.ldapLastBindTimeSeconds = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ldap_last_bind_time_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "ldap_last_bind_time_seconds"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ldapSearchesTotal = prometheus.NewDesc(
|
c.ldapSearchesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ldap_searches_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ldap_searches_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ldapUdpOperationsTotal = prometheus.NewDesc(
|
c.ldapUdpOperationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ldap_udp_operations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ldap_udp_operations_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ldapWritesTotal = prometheus.NewDesc(
|
c.ldapWritesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ldap_writes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ldap_writes_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ldapClientSessions = prometheus.NewDesc(
|
c.ldapClientSessions = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ldap_client_sessions"),
|
prometheus.BuildFQName(types.Namespace, Name, "ldap_client_sessions"),
|
||||||
"This is the number of sessions opened by LDAP clients at the time the data is taken. This is helpful in determining LDAP client activity and if the DC is able to handle the load. Of course, spikes during normal periods of authentication — such as first thing in the morning — are not necessarily a problem, but long sustained periods of high values indicate an overworked DC.",
|
"This is the number of sessions opened by LDAP clients at the time the data is taken. This is helpful in determining LDAP client activity and if the DC is able to handle the load. Of course, spikes during normal periods of authentication — such as first thing in the morning — are not necessarily a problem, but long sustained periods of high values indicate an overworked DC.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.linkValuesCleanedTotal = prometheus.NewDesc(
|
c.linkValuesCleanedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "link_values_cleaned_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "link_values_cleaned_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.phantomObjectsCleanedTotal = prometheus.NewDesc(
|
c.phantomObjectsCleanedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "phantom_objects_cleaned_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "phantom_objects_cleaned_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.phantomObjectsVisitedTotal = prometheus.NewDesc(
|
c.phantomObjectsVisitedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "phantom_objects_visited_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "phantom_objects_visited_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samGroupMembershipEvaluationsTotal = prometheus.NewDesc(
|
c.samGroupMembershipEvaluationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_group_membership_evaluations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_group_membership_evaluations_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"group_type"},
|
[]string{"group_type"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samGroupMembershipGlobalCatalogEvaluationsTotal = prometheus.NewDesc(
|
c.samGroupMembershipGlobalCatalogEvaluationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_group_membership_global_catalog_evaluations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_group_membership_global_catalog_evaluations_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samGroupMembershipEvaluationsNonTransitiveTotal = prometheus.NewDesc(
|
c.samGroupMembershipEvaluationsNonTransitiveTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_group_membership_evaluations_nontransitive_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_group_membership_evaluations_nontransitive_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samGroupMembershipEvaluationsTransitiveTotal = prometheus.NewDesc(
|
c.samGroupMembershipEvaluationsTransitiveTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_group_membership_evaluations_transitive_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_group_membership_evaluations_transitive_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samGroupEvaluationLatency = prometheus.NewDesc(
|
c.samGroupEvaluationLatency = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_group_evaluation_latency"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_group_evaluation_latency"),
|
||||||
"The mean latency of the last 100 group evaluations performed for authentication",
|
"The mean latency of the last 100 group evaluations performed for authentication",
|
||||||
[]string{"evaluation_type"},
|
[]string{"evaluation_type"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samComputerCreationRequestsTotal = prometheus.NewDesc(
|
c.samComputerCreationRequestsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_computer_creation_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_computer_creation_requests_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samComputerCreationSuccessfulRequestsTotal = prometheus.NewDesc(
|
c.samComputerCreationSuccessfulRequestsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_computer_creation_successful_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_computer_creation_successful_requests_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samUserCreationRequestsTotal = prometheus.NewDesc(
|
c.samUserCreationRequestsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_user_creation_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_user_creation_requests_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samUserCreationSuccessfulRequestsTotal = prometheus.NewDesc(
|
c.samUserCreationSuccessfulRequestsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_user_creation_successful_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_user_creation_successful_requests_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samQueryDisplayRequestsTotal = prometheus.NewDesc(
|
c.samQueryDisplayRequestsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_query_display_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_query_display_requests_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samEnumerationsTotal = prometheus.NewDesc(
|
c.samEnumerationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_enumerations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_enumerations_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samMembershipChangesTotal = prometheus.NewDesc(
|
c.samMembershipChangesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_membership_changes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_membership_changes_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samPasswordChangesTotal = prometheus.NewDesc(
|
c.samPasswordChangesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sam_password_changes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sam_password_changes_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.tombstonesObjectsCollectedTotal = prometheus.NewDesc(
|
c.tombstonesObjectsCollectedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "tombstoned_objects_collected_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "tombstoned_objects_collected_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.tombstonesObjectsVisitedTotal = prometheus.NewDesc(
|
c.tombstonesObjectsVisitedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "tombstoned_objects_visited_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "tombstoned_objects_visited_total"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -662,7 +662,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
if utils.PDHEnabled() {
|
if utils.PDHEnabled() {
|
||||||
return c.collectPDH(ch)
|
return c.collectPDH(ch)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -101,79 +101,79 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.requestsPerSecond = prometheus.NewDesc(
|
c.requestsPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "requests_total"),
|
||||||
"Total certificate requests processed",
|
"Total certificate requests processed",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.requestProcessingTime = prometheus.NewDesc(
|
c.requestProcessingTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "request_processing_time_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "request_processing_time_seconds"),
|
||||||
"Last time elapsed for certificate requests",
|
"Last time elapsed for certificate requests",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.retrievalsPerSecond = prometheus.NewDesc(
|
c.retrievalsPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "retrievals_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "retrievals_total"),
|
||||||
"Total certificate retrieval requests processed",
|
"Total certificate retrieval requests processed",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.retrievalProcessingTime = prometheus.NewDesc(
|
c.retrievalProcessingTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "retrievals_processing_time_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "retrievals_processing_time_seconds"),
|
||||||
"Last time elapsed for certificate retrieval request",
|
"Last time elapsed for certificate retrieval request",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failedRequestsPerSecond = prometheus.NewDesc(
|
c.failedRequestsPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failed_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "failed_requests_total"),
|
||||||
"Total failed certificate requests processed",
|
"Total failed certificate requests processed",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.issuedRequestsPerSecond = prometheus.NewDesc(
|
c.issuedRequestsPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "issued_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "issued_requests_total"),
|
||||||
"Total issued certificate requests processed",
|
"Total issued certificate requests processed",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pendingRequestsPerSecond = prometheus.NewDesc(
|
c.pendingRequestsPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pending_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "pending_requests_total"),
|
||||||
"Total pending certificate requests processed",
|
"Total pending certificate requests processed",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.requestCryptographicSigningTime = prometheus.NewDesc(
|
c.requestCryptographicSigningTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "request_cryptographic_signing_time_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "request_cryptographic_signing_time_seconds"),
|
||||||
"Last time elapsed for signing operation request",
|
"Last time elapsed for signing operation request",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.requestPolicyModuleProcessingTime = prometheus.NewDesc(
|
c.requestPolicyModuleProcessingTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "request_policy_module_processing_time_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "request_policy_module_processing_time_seconds"),
|
||||||
"Last time elapsed for policy module processing request",
|
"Last time elapsed for policy module processing request",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.challengeResponsesPerSecond = prometheus.NewDesc(
|
c.challengeResponsesPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "challenge_responses_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "challenge_responses_total"),
|
||||||
"Total certificate challenge responses processed",
|
"Total certificate challenge responses processed",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.challengeResponseProcessingTime = prometheus.NewDesc(
|
c.challengeResponseProcessingTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "challenge_response_processing_time_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "challenge_response_processing_time_seconds"),
|
||||||
"Last time elapsed for challenge response",
|
"Last time elapsed for challenge response",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.signedCertificateTimestampListsPerSecond = prometheus.NewDesc(
|
c.signedCertificateTimestampListsPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "signed_certificate_timestamp_lists_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "signed_certificate_timestamp_lists_total"),
|
||||||
"Total Signed Certificate Timestamp Lists processed",
|
"Total Signed Certificate Timestamp Lists processed",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.signedCertificateTimestampListProcessingTime = prometheus.NewDesc(
|
c.signedCertificateTimestampListProcessingTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "signed_certificate_timestamp_list_processing_time_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "signed_certificate_timestamp_list_processing_time_seconds"),
|
||||||
"Last time elapsed for Signed Certificate Timestamp List",
|
"Last time elapsed for Signed Certificate Timestamp List",
|
||||||
[]string{"cert_template"},
|
[]string{"cert_template"},
|
||||||
nil,
|
nil,
|
||||||
@@ -182,7 +182,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
if utils.PDHEnabled() {
|
if utils.PDHEnabled() {
|
||||||
return c.collectPDH(ch)
|
return c.collectPDH(ch)
|
||||||
}
|
}
|
||||||
@@ -199,7 +199,7 @@ func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch c
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectADCSCounters(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectADCSCounters(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
dst := make([]perflibADCS, 0)
|
dst := make([]perflibADCS, 0)
|
||||||
|
|
||||||
if _, ok := ctx.PerfObjects["Certification Authority"]; !ok {
|
if _, ok := ctx.PerfObjects["Certification Authority"]; !ok {
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ package adcs_test
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
adcs2 "github.com/prometheus-community/windows_exporter/internal/collector/adcs"
|
"github.com/prometheus-community/windows_exporter/internal/collector/adcs"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/testutils"
|
"github.com/prometheus-community/windows_exporter/internal/testutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
func BenchmarkCollector(b *testing.B) {
|
func BenchmarkCollector(b *testing.B) {
|
||||||
testutils.FuncBenchmarkCollector(b, adcs2.Name, adcs2.NewWithFlags)
|
testutils.FuncBenchmarkCollector(b, adcs.Name, adcs.NewWithFlags)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -164,259 +164,259 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.adLoginConnectionFailures = prometheus.NewDesc(
|
c.adLoginConnectionFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ad_login_connection_failures_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ad_login_connection_failures_total"),
|
||||||
"Total number of connection failures to an Active Directory domain controller",
|
"Total number of connection failures to an Active Directory domain controller",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.certificateAuthentications = prometheus.NewDesc(
|
c.certificateAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "certificate_authentications_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "certificate_authentications_total"),
|
||||||
"Total number of User Certificate authentications",
|
"Total number of User Certificate authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.deviceAuthentications = prometheus.NewDesc(
|
c.deviceAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "device_authentications_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "device_authentications_total"),
|
||||||
"Total number of Device authentications",
|
"Total number of Device authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.extranetAccountLockouts = prometheus.NewDesc(
|
c.extranetAccountLockouts = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "extranet_account_lockouts_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "extranet_account_lockouts_total"),
|
||||||
"Total number of Extranet Account Lockouts",
|
"Total number of Extranet Account Lockouts",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.federatedAuthentications = prometheus.NewDesc(
|
c.federatedAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "federated_authentications_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "federated_authentications_total"),
|
||||||
"Total number of authentications from a federated source",
|
"Total number of authentications from a federated source",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.passportAuthentications = prometheus.NewDesc(
|
c.passportAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "passport_authentications_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "passport_authentications_total"),
|
||||||
"Total number of Microsoft Passport SSO authentications",
|
"Total number of Microsoft Passport SSO authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.passiveRequests = prometheus.NewDesc(
|
c.passiveRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "passive_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "passive_requests_total"),
|
||||||
"Total number of passive (browser-based) requests",
|
"Total number of passive (browser-based) requests",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.passwordChangeFailed = prometheus.NewDesc(
|
c.passwordChangeFailed = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "password_change_failed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "password_change_failed_total"),
|
||||||
"Total number of failed password changes",
|
"Total number of failed password changes",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.passwordChangeSucceeded = prometheus.NewDesc(
|
c.passwordChangeSucceeded = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "password_change_succeeded_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "password_change_succeeded_total"),
|
||||||
"Total number of successful password changes",
|
"Total number of successful password changes",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.tokenRequests = prometheus.NewDesc(
|
c.tokenRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "token_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "token_requests_total"),
|
||||||
"Total number of token requests",
|
"Total number of token requests",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.windowsIntegratedAuthentications = prometheus.NewDesc(
|
c.windowsIntegratedAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "windows_integrated_authentications_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "windows_integrated_authentications_total"),
|
||||||
"Total number of Windows integrated authentications (Kerberos/NTLM)",
|
"Total number of Windows integrated authentications (Kerberos/NTLM)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthAuthZRequests = prometheus.NewDesc(
|
c.oAuthAuthZRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_authorization_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_authorization_requests_total"),
|
||||||
"Total number of incoming requests to the OAuth Authorization endpoint",
|
"Total number of incoming requests to the OAuth Authorization endpoint",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientAuthentications = prometheus.NewDesc(
|
c.oAuthClientAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_authentication_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_authentication_success_total"),
|
||||||
"Total number of successful OAuth client Authentications",
|
"Total number of successful OAuth client Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientAuthenticationsFailures = prometheus.NewDesc(
|
c.oAuthClientAuthenticationsFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_authentication_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_authentication_failure_total"),
|
||||||
"Total number of failed OAuth client Authentications",
|
"Total number of failed OAuth client Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientCredentialsRequestFailures = prometheus.NewDesc(
|
c.oAuthClientCredentialsRequestFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_credentials_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_credentials_failure_total"),
|
||||||
"Total number of failed OAuth Client Credentials Requests",
|
"Total number of failed OAuth Client Credentials Requests",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientCredentialsRequests = prometheus.NewDesc(
|
c.oAuthClientCredentialsRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_credentials_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_credentials_success_total"),
|
||||||
"Total number of successful RP tokens issued for OAuth Client Credentials Requests",
|
"Total number of successful RP tokens issued for OAuth Client Credentials Requests",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientPrivateKeyJwtAuthenticationFailures = prometheus.NewDesc(
|
c.oAuthClientPrivateKeyJwtAuthenticationFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_privkey_jwt_authentication_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_privkey_jwt_authentication_failure_total"),
|
||||||
"Total number of failed OAuth Client Private Key Jwt Authentications",
|
"Total number of failed OAuth Client Private Key Jwt Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientPrivateKeyJwtAuthentications = prometheus.NewDesc(
|
c.oAuthClientPrivateKeyJwtAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_privkey_jwt_authentications_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_privkey_jwt_authentications_success_total"),
|
||||||
"Total number of successful OAuth Client Private Key Jwt Authentications",
|
"Total number of successful OAuth Client Private Key Jwt Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientSecretBasicAuthenticationFailures = prometheus.NewDesc(
|
c.oAuthClientSecretBasicAuthenticationFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_secret_basic_authentications_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_secret_basic_authentications_failure_total"),
|
||||||
"Total number of failed OAuth Client Secret Basic Authentications",
|
"Total number of failed OAuth Client Secret Basic Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientSecretBasicAuthentications = prometheus.NewDesc(
|
c.oAuthClientSecretBasicAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_secret_basic_authentications_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_secret_basic_authentications_success_total"),
|
||||||
"Total number of successful OAuth Client Secret Basic Authentications",
|
"Total number of successful OAuth Client Secret Basic Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientSecretPostAuthenticationFailures = prometheus.NewDesc(
|
c.oAuthClientSecretPostAuthenticationFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_secret_post_authentications_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_secret_post_authentications_failure_total"),
|
||||||
"Total number of failed OAuth Client Secret Post Authentications",
|
"Total number of failed OAuth Client Secret Post Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientSecretPostAuthentications = prometheus.NewDesc(
|
c.oAuthClientSecretPostAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_secret_post_authentications_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_secret_post_authentications_success_total"),
|
||||||
"Total number of successful OAuth Client Secret Post Authentications",
|
"Total number of successful OAuth Client Secret Post Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientWindowsIntegratedAuthenticationFailures = prometheus.NewDesc(
|
c.oAuthClientWindowsIntegratedAuthenticationFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_windows_authentications_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_windows_authentications_failure_total"),
|
||||||
"Total number of failed OAuth Client Windows Integrated Authentications",
|
"Total number of failed OAuth Client Windows Integrated Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthClientWindowsIntegratedAuthentications = prometheus.NewDesc(
|
c.oAuthClientWindowsIntegratedAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_client_windows_authentications_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_client_windows_authentications_success_total"),
|
||||||
"Total number of successful OAuth Client Windows Integrated Authentications",
|
"Total number of successful OAuth Client Windows Integrated Authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthLogonCertificateRequestFailures = prometheus.NewDesc(
|
c.oAuthLogonCertificateRequestFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_logon_certificate_requests_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_logon_certificate_requests_failure_total"),
|
||||||
"Total number of failed OAuth Logon Certificate Requests",
|
"Total number of failed OAuth Logon Certificate Requests",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthLogonCertificateTokenRequests = prometheus.NewDesc(
|
c.oAuthLogonCertificateTokenRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_logon_certificate_token_requests_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_logon_certificate_token_requests_success_total"),
|
||||||
"Total number of successful RP tokens issued for OAuth Logon Certificate Requests",
|
"Total number of successful RP tokens issued for OAuth Logon Certificate Requests",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthPasswordGrantRequestFailures = prometheus.NewDesc(
|
c.oAuthPasswordGrantRequestFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_password_grant_requests_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_password_grant_requests_failure_total"),
|
||||||
"Total number of failed OAuth Password Grant Requests",
|
"Total number of failed OAuth Password Grant Requests",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthPasswordGrantRequests = prometheus.NewDesc(
|
c.oAuthPasswordGrantRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_password_grant_requests_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_password_grant_requests_success_total"),
|
||||||
"Total number of successful OAuth Password Grant Requests",
|
"Total number of successful OAuth Password Grant Requests",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.oAuthTokenRequests = prometheus.NewDesc(
|
c.oAuthTokenRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "oauth_token_requests_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "oauth_token_requests_success_total"),
|
||||||
"Total number of successful RP tokens issued over OAuth protocol",
|
"Total number of successful RP tokens issued over OAuth protocol",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.samlPTokenRequests = prometheus.NewDesc(
|
c.samlPTokenRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "samlp_token_requests_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "samlp_token_requests_success_total"),
|
||||||
"Total number of successful RP tokens issued over SAML-P protocol",
|
"Total number of successful RP tokens issued over SAML-P protocol",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ssoAuthenticationFailures = prometheus.NewDesc(
|
c.ssoAuthenticationFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sso_authentications_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sso_authentications_failure_total"),
|
||||||
"Total number of failed SSO authentications",
|
"Total number of failed SSO authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ssoAuthentications = prometheus.NewDesc(
|
c.ssoAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sso_authentications_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sso_authentications_success_total"),
|
||||||
"Total number of successful SSO authentications",
|
"Total number of successful SSO authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.wsFedTokenRequests = prometheus.NewDesc(
|
c.wsFedTokenRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "wsfed_token_requests_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "wsfed_token_requests_success_total"),
|
||||||
"Total number of successful RP tokens issued over WS-Fed protocol",
|
"Total number of successful RP tokens issued over WS-Fed protocol",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.wsTrustTokenRequests = prometheus.NewDesc(
|
c.wsTrustTokenRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "wstrust_token_requests_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "wstrust_token_requests_success_total"),
|
||||||
"Total number of successful RP tokens issued over WS-Trust protocol",
|
"Total number of successful RP tokens issued over WS-Trust protocol",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.upAuthenticationFailures = prometheus.NewDesc(
|
c.upAuthenticationFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "userpassword_authentications_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "userpassword_authentications_failure_total"),
|
||||||
"Total number of failed AD U/P authentications",
|
"Total number of failed AD U/P authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.upAuthentications = prometheus.NewDesc(
|
c.upAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "userpassword_authentications_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "userpassword_authentications_success_total"),
|
||||||
"Total number of successful AD U/P authentications",
|
"Total number of successful AD U/P authentications",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.externalAuthenticationFailures = prometheus.NewDesc(
|
c.externalAuthenticationFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "external_authentications_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "external_authentications_failure_total"),
|
||||||
"Total number of failed authentications from external MFA providers",
|
"Total number of failed authentications from external MFA providers",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.externalAuthentications = prometheus.NewDesc(
|
c.externalAuthentications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "external_authentications_success_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "external_authentications_success_total"),
|
||||||
"Total number of successful authentications from external MFA providers",
|
"Total number of successful authentications from external MFA providers",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.artifactDBFailures = prometheus.NewDesc(
|
c.artifactDBFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "db_artifact_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "db_artifact_failure_total"),
|
||||||
"Total number of failures connecting to the artifact database",
|
"Total number of failures connecting to the artifact database",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.avgArtifactDBQueryTime = prometheus.NewDesc(
|
c.avgArtifactDBQueryTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "db_artifact_query_time_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "db_artifact_query_time_seconds_total"),
|
||||||
"Accumulator of time taken for an artifact database query",
|
"Accumulator of time taken for an artifact database query",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.configDBFailures = prometheus.NewDesc(
|
c.configDBFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "db_config_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "db_config_failure_total"),
|
||||||
"Total number of failures connecting to the configuration database",
|
"Total number of failures connecting to the configuration database",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.avgConfigDBQueryTime = prometheus.NewDesc(
|
c.avgConfigDBQueryTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "db_config_query_time_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "db_config_query_time_seconds_total"),
|
||||||
"Accumulator of time taken for a configuration database query",
|
"Accumulator of time taken for a configuration database query",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.federationMetadataRequests = prometheus.NewDesc(
|
c.federationMetadataRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "federation_metadata_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "federation_metadata_requests_total"),
|
||||||
"Total number of Federation Metadata requests",
|
"Total number of Federation Metadata requests",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -425,7 +425,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
if utils.PDHEnabled() {
|
if utils.PDHEnabled() {
|
||||||
return c.collectPDH(ch)
|
return c.collectPDH(ch)
|
||||||
}
|
}
|
||||||
@@ -435,7 +435,7 @@ func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch c
|
|||||||
return c.collect(ctx, logger, ch)
|
return c.collect(ctx, logger, ch)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
var adfsData []perflibADFS
|
var adfsData []perflibADFS
|
||||||
|
|
||||||
err := perflib.UnmarshalObject(ctx.PerfObjects["AD FS"], &adfsData, logger)
|
err := perflib.UnmarshalObject(ctx.PerfObjects["AD FS"], &adfsData, logger)
|
||||||
|
|||||||
64
internal/collector/cache/cache.go
vendored
64
internal/collector/cache/cache.go
vendored
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -134,175 +134,175 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.asyncCopyReadsTotal = prometheus.NewDesc(
|
c.asyncCopyReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "async_copy_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "async_copy_reads_total"),
|
||||||
"(AsyncCopyReadsTotal)",
|
"(AsyncCopyReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.asyncDataMapsTotal = prometheus.NewDesc(
|
c.asyncDataMapsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "async_data_maps_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "async_data_maps_total"),
|
||||||
"(AsyncDataMapsTotal)",
|
"(AsyncDataMapsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.asyncFastReadsTotal = prometheus.NewDesc(
|
c.asyncFastReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "async_fast_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "async_fast_reads_total"),
|
||||||
"(AsyncFastReadsTotal)",
|
"(AsyncFastReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.asyncMDLReadsTotal = prometheus.NewDesc(
|
c.asyncMDLReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "async_mdl_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "async_mdl_reads_total"),
|
||||||
"(AsyncMDLReadsTotal)",
|
"(AsyncMDLReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.asyncPinReadsTotal = prometheus.NewDesc(
|
c.asyncPinReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "async_pin_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "async_pin_reads_total"),
|
||||||
"(AsyncPinReadsTotal)",
|
"(AsyncPinReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.copyReadHitsTotal = prometheus.NewDesc(
|
c.copyReadHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "copy_read_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "copy_read_hits_total"),
|
||||||
"(CopyReadHitsTotal)",
|
"(CopyReadHitsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.copyReadsTotal = prometheus.NewDesc(
|
c.copyReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "copy_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "copy_reads_total"),
|
||||||
"(CopyReadsTotal)",
|
"(CopyReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dataFlushesTotal = prometheus.NewDesc(
|
c.dataFlushesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "data_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "data_flushes_total"),
|
||||||
"(DataFlushesTotal)",
|
"(DataFlushesTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dataFlushPagesTotal = prometheus.NewDesc(
|
c.dataFlushPagesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "data_flush_pages_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "data_flush_pages_total"),
|
||||||
"(DataFlushPagesTotal)",
|
"(DataFlushPagesTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dataMapHitsPercent = prometheus.NewDesc(
|
c.dataMapHitsPercent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "data_map_hits_percent"),
|
prometheus.BuildFQName(types.Namespace, Name, "data_map_hits_percent"),
|
||||||
"(DataMapHitsPercent)",
|
"(DataMapHitsPercent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dataMapPinsTotal = prometheus.NewDesc(
|
c.dataMapPinsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "data_map_pins_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "data_map_pins_total"),
|
||||||
"(DataMapPinsTotal)",
|
"(DataMapPinsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dataMapsTotal = prometheus.NewDesc(
|
c.dataMapsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "data_maps_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "data_maps_total"),
|
||||||
"(DataMapsTotal)",
|
"(DataMapsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dirtyPages = prometheus.NewDesc(
|
c.dirtyPages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "dirty_pages"),
|
prometheus.BuildFQName(types.Namespace, Name, "dirty_pages"),
|
||||||
"(DirtyPages)",
|
"(DirtyPages)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dirtyPageThreshold = prometheus.NewDesc(
|
c.dirtyPageThreshold = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "dirty_page_threshold"),
|
prometheus.BuildFQName(types.Namespace, Name, "dirty_page_threshold"),
|
||||||
"(DirtyPageThreshold)",
|
"(DirtyPageThreshold)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.fastReadNotPossiblesTotal = prometheus.NewDesc(
|
c.fastReadNotPossiblesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "fast_read_not_possibles_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "fast_read_not_possibles_total"),
|
||||||
"(FastReadNotPossiblesTotal)",
|
"(FastReadNotPossiblesTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.fastReadResourceMissesTotal = prometheus.NewDesc(
|
c.fastReadResourceMissesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "fast_read_resource_misses_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "fast_read_resource_misses_total"),
|
||||||
"(FastReadResourceMissesTotal)",
|
"(FastReadResourceMissesTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.fastReadsTotal = prometheus.NewDesc(
|
c.fastReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "fast_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "fast_reads_total"),
|
||||||
"(FastReadsTotal)",
|
"(FastReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.lazyWriteFlushesTotal = prometheus.NewDesc(
|
c.lazyWriteFlushesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "lazy_write_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "lazy_write_flushes_total"),
|
||||||
"(LazyWriteFlushesTotal)",
|
"(LazyWriteFlushesTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.lazyWritePagesTotal = prometheus.NewDesc(
|
c.lazyWritePagesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "lazy_write_pages_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "lazy_write_pages_total"),
|
||||||
"(LazyWritePagesTotal)",
|
"(LazyWritePagesTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.mdlReadHitsTotal = prometheus.NewDesc(
|
c.mdlReadHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mdl_read_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "mdl_read_hits_total"),
|
||||||
"(MDLReadHitsTotal)",
|
"(MDLReadHitsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.mdlReadsTotal = prometheus.NewDesc(
|
c.mdlReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mdl_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "mdl_reads_total"),
|
||||||
"(MDLReadsTotal)",
|
"(MDLReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pinReadHitsTotal = prometheus.NewDesc(
|
c.pinReadHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pin_read_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "pin_read_hits_total"),
|
||||||
"(PinReadHitsTotal)",
|
"(PinReadHitsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pinReadsTotal = prometheus.NewDesc(
|
c.pinReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pin_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "pin_reads_total"),
|
||||||
"(PinReadsTotal)",
|
"(PinReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.readAheadsTotal = prometheus.NewDesc(
|
c.readAheadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "read_aheads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "read_aheads_total"),
|
||||||
"(ReadAheadsTotal)",
|
"(ReadAheadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.syncCopyReadsTotal = prometheus.NewDesc(
|
c.syncCopyReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sync_copy_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sync_copy_reads_total"),
|
||||||
"(SyncCopyReadsTotal)",
|
"(SyncCopyReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.syncDataMapsTotal = prometheus.NewDesc(
|
c.syncDataMapsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sync_data_maps_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sync_data_maps_total"),
|
||||||
"(SyncDataMapsTotal)",
|
"(SyncDataMapsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.syncFastReadsTotal = prometheus.NewDesc(
|
c.syncFastReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sync_fast_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sync_fast_reads_total"),
|
||||||
"(SyncFastReadsTotal)",
|
"(SyncFastReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.syncMDLReadsTotal = prometheus.NewDesc(
|
c.syncMDLReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sync_mdl_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sync_mdl_reads_total"),
|
||||||
"(SyncMDLReadsTotal)",
|
"(SyncMDLReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.syncPinReadsTotal = prometheus.NewDesc(
|
c.syncPinReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sync_pin_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sync_pin_reads_total"),
|
||||||
"(SyncPinReadsTotal)",
|
"(SyncPinReadsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -312,7 +312,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Collect implements the Collector interface.
|
// Collect implements the Collector interface.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
if utils.PDHEnabled() {
|
if utils.PDHEnabled() {
|
||||||
return c.collectPDH(ch)
|
return c.collectPDH(ch)
|
||||||
}
|
}
|
||||||
@@ -329,7 +329,7 @@ func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch c
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
var dst []perflibCache // Single-instance class, array is required but will have single entry.
|
var dst []perflibCache // Single-instance class, array is required but will have single entry.
|
||||||
|
|
||||||
if err := perflib.UnmarshalObject(ctx.PerfObjects["Cache"], &dst, logger); err != nil {
|
if err := perflib.UnmarshalObject(ctx.PerfObjects["Cache"], &dst, logger); err != nil {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"github.com/Microsoft/hcsshim"
|
"github.com/Microsoft/hcsshim"
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -88,109 +88,109 @@ func (c *Collector) Close(_ *slog.Logger) error {
|
|||||||
|
|
||||||
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
||||||
c.containerAvailable = prometheus.NewDesc(
|
c.containerAvailable = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "available"),
|
prometheus.BuildFQName(types.Namespace, Name, "available"),
|
||||||
"Available",
|
"Available",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.containersCount = prometheus.NewDesc(
|
c.containersCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "count"),
|
prometheus.BuildFQName(types.Namespace, Name, "count"),
|
||||||
"Number of containers",
|
"Number of containers",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usageCommitBytes = prometheus.NewDesc(
|
c.usageCommitBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "memory_usage_commit_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "memory_usage_commit_bytes"),
|
||||||
"Memory Usage Commit Bytes",
|
"Memory Usage Commit Bytes",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usageCommitPeakBytes = prometheus.NewDesc(
|
c.usageCommitPeakBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "memory_usage_commit_peak_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "memory_usage_commit_peak_bytes"),
|
||||||
"Memory Usage Commit Peak Bytes",
|
"Memory Usage Commit Peak Bytes",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usagePrivateWorkingSetBytes = prometheus.NewDesc(
|
c.usagePrivateWorkingSetBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "memory_usage_private_working_set_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "memory_usage_private_working_set_bytes"),
|
||||||
"Memory Usage Private Working Set Bytes",
|
"Memory Usage Private Working Set Bytes",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.runtimeTotal = prometheus.NewDesc(
|
c.runtimeTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_usage_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_usage_seconds_total"),
|
||||||
"Total Run time in Seconds",
|
"Total Run time in Seconds",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.runtimeUser = prometheus.NewDesc(
|
c.runtimeUser = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_usage_seconds_usermode"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_usage_seconds_usermode"),
|
||||||
"Run Time in User mode in Seconds",
|
"Run Time in User mode in Seconds",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.runtimeKernel = prometheus.NewDesc(
|
c.runtimeKernel = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_usage_seconds_kernelmode"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_usage_seconds_kernelmode"),
|
||||||
"Run time in Kernel mode in Seconds",
|
"Run time in Kernel mode in Seconds",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesReceived = prometheus.NewDesc(
|
c.bytesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "network_receive_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "network_receive_bytes_total"),
|
||||||
"Bytes Received on Interface",
|
"Bytes Received on Interface",
|
||||||
[]string{"container_id", "interface"},
|
[]string{"container_id", "interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesSent = prometheus.NewDesc(
|
c.bytesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "network_transmit_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "network_transmit_bytes_total"),
|
||||||
"Bytes Sent on Interface",
|
"Bytes Sent on Interface",
|
||||||
[]string{"container_id", "interface"},
|
[]string{"container_id", "interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsReceived = prometheus.NewDesc(
|
c.packetsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "network_receive_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "network_receive_packets_total"),
|
||||||
"Packets Received on Interface",
|
"Packets Received on Interface",
|
||||||
[]string{"container_id", "interface"},
|
[]string{"container_id", "interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsSent = prometheus.NewDesc(
|
c.packetsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "network_transmit_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "network_transmit_packets_total"),
|
||||||
"Packets Sent on Interface",
|
"Packets Sent on Interface",
|
||||||
[]string{"container_id", "interface"},
|
[]string{"container_id", "interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.droppedPacketsIncoming = prometheus.NewDesc(
|
c.droppedPacketsIncoming = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "network_receive_packets_dropped_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "network_receive_packets_dropped_total"),
|
||||||
"Dropped Incoming Packets on Interface",
|
"Dropped Incoming Packets on Interface",
|
||||||
[]string{"container_id", "interface"},
|
[]string{"container_id", "interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.droppedPacketsOutgoing = prometheus.NewDesc(
|
c.droppedPacketsOutgoing = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "network_transmit_packets_dropped_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "network_transmit_packets_dropped_total"),
|
||||||
"Dropped Outgoing Packets on Interface",
|
"Dropped Outgoing Packets on Interface",
|
||||||
[]string{"container_id", "interface"},
|
[]string{"container_id", "interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.readCountNormalized = prometheus.NewDesc(
|
c.readCountNormalized = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "storage_read_count_normalized_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "storage_read_count_normalized_total"),
|
||||||
"Read Count Normalized",
|
"Read Count Normalized",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.readSizeBytes = prometheus.NewDesc(
|
c.readSizeBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "storage_read_size_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "storage_read_size_bytes_total"),
|
||||||
"Read Size Bytes",
|
"Read Size Bytes",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.writeCountNormalized = prometheus.NewDesc(
|
c.writeCountNormalized = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "storage_write_count_normalized_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "storage_write_count_normalized_total"),
|
||||||
"Write Count Normalized",
|
"Write Count Normalized",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.writeSizeBytes = prometheus.NewDesc(
|
c.writeSizeBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "storage_write_size_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "storage_write_size_bytes_total"),
|
||||||
"Write Size Bytes",
|
"Write Size Bytes",
|
||||||
[]string{"container_id"},
|
[]string{"container_id"},
|
||||||
nil,
|
nil,
|
||||||
@@ -201,7 +201,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(logger, ch); err != nil {
|
if err := c.collect(logger, ch); err != nil {
|
||||||
logger.Error("failed collecting collector metrics",
|
logger.Error("failed collecting collector metrics",
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -120,110 +120,110 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.logicalProcessors = prometheus.NewDesc(
|
c.logicalProcessors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "logical_processor"),
|
prometheus.BuildFQName(types.Namespace, Name, "logical_processor"),
|
||||||
"Total number of logical processors",
|
"Total number of logical processors",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.cStateSecondsTotal = prometheus.NewDesc(
|
c.cStateSecondsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cstate_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cstate_seconds_total"),
|
||||||
"Time spent in low-power idle state",
|
"Time spent in low-power idle state",
|
||||||
[]string{"core", "state"},
|
[]string{"core", "state"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.timeTotal = prometheus.NewDesc(
|
c.timeTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "time_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "time_total"),
|
||||||
"Time that processor spent in different modes (dpc, idle, interrupt, privileged, user)",
|
"Time that processor spent in different modes (dpc, idle, interrupt, privileged, user)",
|
||||||
[]string{"core", "mode"},
|
[]string{"core", "mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.interruptsTotal = prometheus.NewDesc(
|
c.interruptsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "interrupts_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "interrupts_total"),
|
||||||
"Total number of received and serviced hardware interrupts",
|
"Total number of received and serviced hardware interrupts",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dpcsTotal = prometheus.NewDesc(
|
c.dpcsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "dpcs_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "dpcs_total"),
|
||||||
"Total number of received and serviced deferred procedure calls (DPCs)",
|
"Total number of received and serviced deferred procedure calls (DPCs)",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cStateSecondsTotal = prometheus.NewDesc(
|
c.cStateSecondsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cstate_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cstate_seconds_total"),
|
||||||
"Time spent in low-power idle state",
|
"Time spent in low-power idle state",
|
||||||
[]string{"core", "state"},
|
[]string{"core", "state"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.timeTotal = prometheus.NewDesc(
|
c.timeTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "time_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "time_total"),
|
||||||
"Time that processor spent in different modes (dpc, idle, interrupt, privileged, user)",
|
"Time that processor spent in different modes (dpc, idle, interrupt, privileged, user)",
|
||||||
[]string{"core", "mode"},
|
[]string{"core", "mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.interruptsTotal = prometheus.NewDesc(
|
c.interruptsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "interrupts_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "interrupts_total"),
|
||||||
"Total number of received and serviced hardware interrupts",
|
"Total number of received and serviced hardware interrupts",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dpcsTotal = prometheus.NewDesc(
|
c.dpcsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "dpcs_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "dpcs_total"),
|
||||||
"Total number of received and serviced deferred procedure calls (DPCs)",
|
"Total number of received and serviced deferred procedure calls (DPCs)",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.clockInterruptsTotal = prometheus.NewDesc(
|
c.clockInterruptsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "clock_interrupts_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "clock_interrupts_total"),
|
||||||
"Total number of received and serviced clock tick interrupts",
|
"Total number of received and serviced clock tick interrupts",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.idleBreakEventsTotal = prometheus.NewDesc(
|
c.idleBreakEventsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "idle_break_events_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "idle_break_events_total"),
|
||||||
"Total number of time processor was woken from idle",
|
"Total number of time processor was woken from idle",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.parkingStatus = prometheus.NewDesc(
|
c.parkingStatus = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "parking_status"),
|
prometheus.BuildFQName(types.Namespace, Name, "parking_status"),
|
||||||
"Parking Status represents whether a processor is parked or not",
|
"Parking Status represents whether a processor is parked or not",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processorFrequencyMHz = prometheus.NewDesc(
|
c.processorFrequencyMHz = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "core_frequency_mhz"),
|
prometheus.BuildFQName(types.Namespace, Name, "core_frequency_mhz"),
|
||||||
"Core frequency in megahertz",
|
"Core frequency in megahertz",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processorPerformance = prometheus.NewDesc(
|
c.processorPerformance = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processor_performance_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "processor_performance_total"),
|
||||||
"Processor Performance is the average performance of the processor while it is executing instructions, as a percentage of the nominal performance of the processor. On some processors, Processor Performance may exceed 100%",
|
"Processor Performance is the average performance of the processor while it is executing instructions, as a percentage of the nominal performance of the processor. On some processors, Processor Performance may exceed 100%",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processorMPerf = prometheus.NewDesc(
|
c.processorMPerf = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processor_mperf_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "processor_mperf_total"),
|
||||||
"Processor MPerf is the number of TSC ticks incremented while executing instructions",
|
"Processor MPerf is the number of TSC ticks incremented while executing instructions",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processorRTC = prometheus.NewDesc(
|
c.processorRTC = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processor_rtc_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "processor_rtc_total"),
|
||||||
"Processor RTC represents the number of RTC ticks made since the system booted. It should consistently be 64e6, and can be used to properly derive Processor Utility Rate",
|
"Processor RTC represents the number of RTC ticks made since the system booted. It should consistently be 64e6, and can be used to properly derive Processor Utility Rate",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processorUtility = prometheus.NewDesc(
|
c.processorUtility = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processor_utility_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "processor_utility_total"),
|
||||||
"Processor Utility represents is the amount of time the core spends executing instructions",
|
"Processor Utility represents is the amount of time the core spends executing instructions",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processorPrivilegedUtility = prometheus.NewDesc(
|
c.processorPrivilegedUtility = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processor_privileged_utility_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "processor_privileged_utility_total"),
|
||||||
"Processor Privileged Utility represents is the amount of time the core has spent executing instructions inside the kernel",
|
"Processor Privileged Utility represents is the amount of time the core has spent executing instructions inside the kernel",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
@@ -235,7 +235,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
if utils.PDHEnabled() {
|
if utils.PDHEnabled() {
|
||||||
return c.collectPDH(ch)
|
return c.collectPDH(ch)
|
||||||
}
|
}
|
||||||
@@ -245,7 +245,7 @@ func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch c
|
|||||||
return c.collectFull(ctx, logger, ch)
|
return c.collectFull(ctx, logger, ch)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectFull(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectFull(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
data := make([]perflibProcessorInformation, 0)
|
data := make([]perflibProcessorInformation, 0)
|
||||||
|
|
||||||
err := perflib.UnmarshalObject(ctx.PerfObjects["Processor Information"], &data, logger)
|
err := perflib.UnmarshalObject(ctx.PerfObjects["Processor Information"], &data, logger)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -70,7 +70,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
c.cpuInfo = prometheus.NewDesc(
|
c.cpuInfo = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "", Name),
|
prometheus.BuildFQName(types.Namespace, "", Name),
|
||||||
"Labelled CPU information as provided by Win32_Processor",
|
"Labelled CPU information as provided by Win32_Processor",
|
||||||
[]string{
|
[]string{
|
||||||
"architecture",
|
"architecture",
|
||||||
@@ -82,7 +82,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuThreadCount = prometheus.NewDesc(
|
c.cpuThreadCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "thread"),
|
prometheus.BuildFQName(types.Namespace, Name, "thread"),
|
||||||
"Number of threads per CPU",
|
"Number of threads per CPU",
|
||||||
[]string{
|
[]string{
|
||||||
"device_id",
|
"device_id",
|
||||||
@@ -90,7 +90,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuCoreCount = prometheus.NewDesc(
|
c.cpuCoreCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "core"),
|
prometheus.BuildFQName(types.Namespace, Name, "core"),
|
||||||
"Number of cores per CPU",
|
"Number of cores per CPU",
|
||||||
[]string{
|
[]string{
|
||||||
"device_id",
|
"device_id",
|
||||||
@@ -98,7 +98,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuEnabledCoreCount = prometheus.NewDesc(
|
c.cpuEnabledCoreCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "enabled_core"),
|
prometheus.BuildFQName(types.Namespace, Name, "enabled_core"),
|
||||||
"Number of enabled cores per CPU",
|
"Number of enabled cores per CPU",
|
||||||
[]string{
|
[]string{
|
||||||
"device_id",
|
"device_id",
|
||||||
@@ -106,7 +106,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuLogicalProcessorsCount = prometheus.NewDesc(
|
c.cpuLogicalProcessorsCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "logical_processor"),
|
prometheus.BuildFQName(types.Namespace, Name, "logical_processor"),
|
||||||
"Number of logical processors per CPU",
|
"Number of logical processors per CPU",
|
||||||
[]string{
|
[]string{
|
||||||
"device_id",
|
"device_id",
|
||||||
@@ -114,7 +114,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuL2CacheSize = prometheus.NewDesc(
|
c.cpuL2CacheSize = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "l2_cache_size"),
|
prometheus.BuildFQName(types.Namespace, Name, "l2_cache_size"),
|
||||||
"Size of L2 cache per CPU",
|
"Size of L2 cache per CPU",
|
||||||
[]string{
|
[]string{
|
||||||
"device_id",
|
"device_id",
|
||||||
@@ -122,7 +122,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuL3CacheSize = prometheus.NewDesc(
|
c.cpuL3CacheSize = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "l3_cache_size"),
|
prometheus.BuildFQName(types.Namespace, Name, "l3_cache_size"),
|
||||||
"Size of L3 cache per CPU",
|
"Size of L3 cache per CPU",
|
||||||
[]string{
|
[]string{
|
||||||
"device_id",
|
"device_id",
|
||||||
@@ -149,7 +149,7 @@ type win32Processor struct {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting cpu_info metrics",
|
logger.Error("failed collecting cpu_info metrics",
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/headers/sysinfoapi"
|
"github.com/prometheus-community/windows_exporter/internal/headers/sysinfoapi"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -68,19 +68,19 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
"Hostname has been moved to os collector.")
|
"Hostname has been moved to os collector.")
|
||||||
|
|
||||||
c.logicalProcessors = prometheus.NewDesc(
|
c.logicalProcessors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "logical_processors"),
|
prometheus.BuildFQName(types.Namespace, Name, "logical_processors"),
|
||||||
"Deprecated: Use windows_cpu_logical_processor instead",
|
"Deprecated: Use windows_cpu_logical_processor instead",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.physicalMemoryBytes = prometheus.NewDesc(
|
c.physicalMemoryBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "physical_memory_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "physical_memory_bytes"),
|
||||||
"Deprecated: Use windows_physical_memory_total_bytes instead",
|
"Deprecated: Use windows_physical_memory_total_bytes instead",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.hostname = prometheus.NewDesc(
|
c.hostname = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "hostname"),
|
prometheus.BuildFQName(types.Namespace, Name, "hostname"),
|
||||||
"Deprecated: Use windows_os_hostname instead",
|
"Deprecated: Use windows_os_hostname instead",
|
||||||
[]string{
|
[]string{
|
||||||
"hostname",
|
"hostname",
|
||||||
@@ -95,7 +95,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -87,7 +87,7 @@ type Collector struct {
|
|||||||
dfsrChildCollectors []dfsrCollectorFunc
|
dfsrChildCollectors []dfsrCollectorFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
type dfsrCollectorFunc func(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error
|
type dfsrCollectorFunc func(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error
|
||||||
|
|
||||||
// Map Perflib sources to DFSR Collector names
|
// Map Perflib sources to DFSR Collector names
|
||||||
// e.g, volume -> DFS Replication Service Volumes.
|
// e.g, volume -> DFS Replication Service Volumes.
|
||||||
@@ -250,63 +250,63 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// connection
|
// connection
|
||||||
c.connectionBandwidthSavingsUsingDFSReplicationTotal = prometheus.NewDesc(
|
c.connectionBandwidthSavingsUsingDFSReplicationTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_bandwidth_savings_using_dfs_replication_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_bandwidth_savings_using_dfs_replication_bytes_total"),
|
||||||
"Total bytes of bandwidth saved using DFS Replication for this connection",
|
"Total bytes of bandwidth saved using DFS Replication for this connection",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.connectionBytesReceivedTotal = prometheus.NewDesc(
|
c.connectionBytesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_bytes_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_bytes_received_total"),
|
||||||
"Total bytes received for connection",
|
"Total bytes received for connection",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.connectionCompressedSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
c.connectionCompressedSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_compressed_size_of_files_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_compressed_size_of_files_received_bytes_total"),
|
||||||
"Total compressed size of files received on the connection, in bytes",
|
"Total compressed size of files received on the connection, in bytes",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.connectionFilesReceivedTotal = prometheus.NewDesc(
|
c.connectionFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_received_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_received_files_total"),
|
||||||
"Total number of files received for connection",
|
"Total number of files received for connection",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.connectionRDCBytesReceivedTotal = prometheus.NewDesc(
|
c.connectionRDCBytesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_rdc_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_rdc_received_bytes_total"),
|
||||||
"Total bytes received on the connection while replicating files using Remote Differential Compression",
|
"Total bytes received on the connection while replicating files using Remote Differential Compression",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.connectionRDCCompressedSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
c.connectionRDCCompressedSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_rdc_compressed_size_of_received_files_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_rdc_compressed_size_of_received_files_bytes_total"),
|
||||||
"Total uncompressed size of files received with Remote Differential Compression for connection",
|
"Total uncompressed size of files received with Remote Differential Compression for connection",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.connectionRDCNumberOfFilesReceivedTotal = prometheus.NewDesc(
|
c.connectionRDCNumberOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_rdc_received_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_rdc_received_files_total"),
|
||||||
"Total number of files received using remote differential compression",
|
"Total number of files received using remote differential compression",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.connectionRDCSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
c.connectionRDCSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_rdc_size_of_received_files_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_rdc_size_of_received_files_bytes_total"),
|
||||||
"Total size of received Remote Differential Compression files, in bytes.",
|
"Total size of received Remote Differential Compression files, in bytes.",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.connectionSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
c.connectionSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_files_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_files_received_bytes_total"),
|
||||||
"Total size of files received, in bytes",
|
"Total size of files received, in bytes",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
@@ -314,189 +314,189 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// folder
|
// folder
|
||||||
c.folderBandwidthSavingsUsingDFSReplicationTotal = prometheus.NewDesc(
|
c.folderBandwidthSavingsUsingDFSReplicationTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_bandwidth_savings_using_dfs_replication_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_bandwidth_savings_using_dfs_replication_bytes_total"),
|
||||||
"Total bytes of bandwidth saved using DFS Replication for this folder",
|
"Total bytes of bandwidth saved using DFS Replication for this folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderCompressedSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
c.folderCompressedSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_compressed_size_of_received_files_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_compressed_size_of_received_files_bytes_total"),
|
||||||
"Total compressed size of files received on the folder, in bytes",
|
"Total compressed size of files received on the folder, in bytes",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderConflictBytesCleanedUpTotal = prometheus.NewDesc(
|
c.folderConflictBytesCleanedUpTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_conflict_cleaned_up_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_conflict_cleaned_up_bytes_total"),
|
||||||
"Total size of conflict loser files and folders deleted from the Conflict and Deleted folder, in bytes",
|
"Total size of conflict loser files and folders deleted from the Conflict and Deleted folder, in bytes",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderConflictBytesGeneratedTotal = prometheus.NewDesc(
|
c.folderConflictBytesGeneratedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_conflict_generated_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_conflict_generated_bytes_total"),
|
||||||
"Total size of conflict loser files and folders moved to the Conflict and Deleted folder, in bytes",
|
"Total size of conflict loser files and folders moved to the Conflict and Deleted folder, in bytes",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderConflictFilesCleanedUpTotal = prometheus.NewDesc(
|
c.folderConflictFilesCleanedUpTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_conflict_cleaned_up_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_conflict_cleaned_up_files_total"),
|
||||||
"Number of conflict loser files deleted from the Conflict and Deleted folder",
|
"Number of conflict loser files deleted from the Conflict and Deleted folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderConflictFilesGeneratedTotal = prometheus.NewDesc(
|
c.folderConflictFilesGeneratedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_conflict_generated_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_conflict_generated_files_total"),
|
||||||
"Number of files and folders moved to the Conflict and Deleted folder",
|
"Number of files and folders moved to the Conflict and Deleted folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderConflictFolderCleanupsCompletedTotal = prometheus.NewDesc(
|
c.folderConflictFolderCleanupsCompletedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_conflict_folder_cleanups_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_conflict_folder_cleanups_total"),
|
||||||
"Number of deletions of conflict loser files and folders in the Conflict and Deleted",
|
"Number of deletions of conflict loser files and folders in the Conflict and Deleted",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderConflictSpaceInUse = prometheus.NewDesc(
|
c.folderConflictSpaceInUse = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_conflict_space_in_use_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_conflict_space_in_use_bytes"),
|
||||||
"Total size of the conflict loser files and folders currently in the Conflict and Deleted folder",
|
"Total size of the conflict loser files and folders currently in the Conflict and Deleted folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderDeletedSpaceInUse = prometheus.NewDesc(
|
c.folderDeletedSpaceInUse = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_deleted_space_in_use_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_deleted_space_in_use_bytes"),
|
||||||
"Total size (in bytes) of the deleted files and folders currently in the Conflict and Deleted folder",
|
"Total size (in bytes) of the deleted files and folders currently in the Conflict and Deleted folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderDeletedBytesCleanedUpTotal = prometheus.NewDesc(
|
c.folderDeletedBytesCleanedUpTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_deleted_cleaned_up_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_deleted_cleaned_up_bytes_total"),
|
||||||
"Total size (in bytes) of replicating deleted files and folders that were cleaned up from the Conflict and Deleted folder",
|
"Total size (in bytes) of replicating deleted files and folders that were cleaned up from the Conflict and Deleted folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderDeletedBytesGeneratedTotal = prometheus.NewDesc(
|
c.folderDeletedBytesGeneratedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_deleted_generated_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_deleted_generated_bytes_total"),
|
||||||
"Total size (in bytes) of replicated deleted files and folders that were moved to the Conflict and Deleted folder after they were deleted from a replicated folder on a sending member",
|
"Total size (in bytes) of replicated deleted files and folders that were moved to the Conflict and Deleted folder after they were deleted from a replicated folder on a sending member",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderDeletedFilesCleanedUpTotal = prometheus.NewDesc(
|
c.folderDeletedFilesCleanedUpTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_deleted_cleaned_up_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_deleted_cleaned_up_files_total"),
|
||||||
"Number of files and folders that were cleaned up from the Conflict and Deleted folder",
|
"Number of files and folders that were cleaned up from the Conflict and Deleted folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderDeletedFilesGeneratedTotal = prometheus.NewDesc(
|
c.folderDeletedFilesGeneratedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_deleted_generated_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_deleted_generated_files_total"),
|
||||||
"Number of deleted files and folders that were moved to the Conflict and Deleted folder",
|
"Number of deleted files and folders that were moved to the Conflict and Deleted folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderFileInstallsRetriedTotal = prometheus.NewDesc(
|
c.folderFileInstallsRetriedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_file_installs_retried_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_file_installs_retried_total"),
|
||||||
"Total number of file installs that are being retried due to sharing violations or other errors encountered when installing the files",
|
"Total number of file installs that are being retried due to sharing violations or other errors encountered when installing the files",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderFileInstallsSucceededTotal = prometheus.NewDesc(
|
c.folderFileInstallsSucceededTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_file_installs_succeeded_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_file_installs_succeeded_total"),
|
||||||
"Total number of files that were successfully received from sending members and installed locally on this server",
|
"Total number of files that were successfully received from sending members and installed locally on this server",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderFilesReceivedTotal = prometheus.NewDesc(
|
c.folderFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_received_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_received_files_total"),
|
||||||
"Total number of files received",
|
"Total number of files received",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderRDCBytesReceivedTotal = prometheus.NewDesc(
|
c.folderRDCBytesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_rdc_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_rdc_received_bytes_total"),
|
||||||
"Total number of bytes received in replicating files using Remote Differential Compression",
|
"Total number of bytes received in replicating files using Remote Differential Compression",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderRDCCompressedSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
c.folderRDCCompressedSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_rdc_compressed_size_of_received_files_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_rdc_compressed_size_of_received_files_bytes_total"),
|
||||||
"Total compressed size (in bytes) of the files received with Remote Differential Compression",
|
"Total compressed size (in bytes) of the files received with Remote Differential Compression",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderRDCNumberOfFilesReceivedTotal = prometheus.NewDesc(
|
c.folderRDCNumberOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_rdc_received_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_rdc_received_files_total"),
|
||||||
"Total number of files received with Remote Differential Compression",
|
"Total number of files received with Remote Differential Compression",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderRDCSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
c.folderRDCSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_rdc_files_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_rdc_files_received_bytes_total"),
|
||||||
"Total uncompressed size (in bytes) of the files received with Remote Differential Compression",
|
"Total uncompressed size (in bytes) of the files received with Remote Differential Compression",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
c.folderSizeOfFilesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_files_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_files_received_bytes_total"),
|
||||||
"Total uncompressed size (in bytes) of the files received",
|
"Total uncompressed size (in bytes) of the files received",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderStagingSpaceInUse = prometheus.NewDesc(
|
c.folderStagingSpaceInUse = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_staging_space_in_use_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_staging_space_in_use_bytes"),
|
||||||
"Total size of files and folders currently in the staging folder.",
|
"Total size of files and folders currently in the staging folder.",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderStagingBytesCleanedUpTotal = prometheus.NewDesc(
|
c.folderStagingBytesCleanedUpTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_staging_cleaned_up_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_staging_cleaned_up_bytes_total"),
|
||||||
"Total size (in bytes) of the files and folders that have been cleaned up from the staging folder",
|
"Total size (in bytes) of the files and folders that have been cleaned up from the staging folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderStagingBytesGeneratedTotal = prometheus.NewDesc(
|
c.folderStagingBytesGeneratedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_staging_generated_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_staging_generated_bytes_total"),
|
||||||
"Total size (in bytes) of replicated files and folders in the staging folder created by the DFS Replication service since last restart",
|
"Total size (in bytes) of replicated files and folders in the staging folder created by the DFS Replication service since last restart",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderStagingFilesCleanedUpTotal = prometheus.NewDesc(
|
c.folderStagingFilesCleanedUpTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_staging_cleaned_up_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_staging_cleaned_up_files_total"),
|
||||||
"Total number of files and folders that have been cleaned up from the staging folder",
|
"Total number of files and folders that have been cleaned up from the staging folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderStagingFilesGeneratedTotal = prometheus.NewDesc(
|
c.folderStagingFilesGeneratedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_staging_generated_files_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_staging_generated_files_total"),
|
||||||
"Total number of times replicated files and folders have been staged by the DFS Replication service",
|
"Total number of times replicated files and folders have been staged by the DFS Replication service",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.folderUpdatesDroppedTotal = prometheus.NewDesc(
|
c.folderUpdatesDroppedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "folder_dropped_updates_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "folder_dropped_updates_total"),
|
||||||
"Total number of redundant file replication update records that have been ignored by the DFS Replication service because they did not change the replicated file or folder",
|
"Total number of redundant file replication update records that have been ignored by the DFS Replication service because they did not change the replicated file or folder",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
@@ -504,35 +504,35 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// volume
|
// volume
|
||||||
c.volumeDatabaseCommitsTotal = prometheus.NewDesc(
|
c.volumeDatabaseCommitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "volume_database_commits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "volume_database_commits_total"),
|
||||||
"Total number of DFSR volume database commits",
|
"Total number of DFSR volume database commits",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.volumeDatabaseLookupsTotal = prometheus.NewDesc(
|
c.volumeDatabaseLookupsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "volume_database_lookups_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "volume_database_lookups_total"),
|
||||||
"Total number of DFSR volume database lookups",
|
"Total number of DFSR volume database lookups",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.volumeUSNJournalUnreadPercentage = prometheus.NewDesc(
|
c.volumeUSNJournalUnreadPercentage = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "volume_usn_journal_unread_percentage"),
|
prometheus.BuildFQName(types.Namespace, Name, "volume_usn_journal_unread_percentage"),
|
||||||
"Percentage of DFSR volume USN journal records that are unread",
|
"Percentage of DFSR volume USN journal records that are unread",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.volumeUSNJournalRecordsAcceptedTotal = prometheus.NewDesc(
|
c.volumeUSNJournalRecordsAcceptedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "volume_usn_journal_accepted_records_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "volume_usn_journal_accepted_records_total"),
|
||||||
"Total number of USN journal records accepted",
|
"Total number of USN journal records accepted",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.volumeUSNJournalRecordsReadTotal = prometheus.NewDesc(
|
c.volumeUSNJournalRecordsReadTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "volume_usn_journal_read_records_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "volume_usn_journal_read_records_total"),
|
||||||
"Total number of DFSR volume USN journal records read",
|
"Total number of DFSR volume USN journal records read",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
@@ -566,7 +566,7 @@ func (c *Collector) getDFSRChildCollectors(enabledCollectors []string) []dfsrCol
|
|||||||
|
|
||||||
// Collect implements the Collector interface.
|
// Collect implements the Collector interface.
|
||||||
// Sends metric values for each metric to the provided prometheus Metric channel.
|
// Sends metric values for each metric to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
if utils.PDHEnabled() {
|
if utils.PDHEnabled() {
|
||||||
return c.collectPDH(ch)
|
return c.collectPDH(ch)
|
||||||
}
|
}
|
||||||
@@ -582,7 +582,7 @@ func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch c
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectConnection(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectConnection(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
var dst []PerflibDFSRConnection
|
var dst []PerflibDFSRConnection
|
||||||
|
|
||||||
if err := perflib.UnmarshalObject(ctx.PerfObjects["DFS Replication Connections"], &dst, logger); err != nil {
|
if err := perflib.UnmarshalObject(ctx.PerfObjects["DFS Replication Connections"], &dst, logger); err != nil {
|
||||||
@@ -657,7 +657,7 @@ func (c *Collector) collectConnection(ctx *types2.ScrapeContext, logger *slog.Lo
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectFolder(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectFolder(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
var dst []perflibDFSRFolder
|
var dst []perflibDFSRFolder
|
||||||
|
|
||||||
if err := perflib.UnmarshalObject(ctx.PerfObjects["DFS Replicated Folders"], &dst, logger); err != nil {
|
if err := perflib.UnmarshalObject(ctx.PerfObjects["DFS Replicated Folders"], &dst, logger); err != nil {
|
||||||
@@ -858,7 +858,7 @@ func (c *Collector) collectFolder(ctx *types2.ScrapeContext, logger *slog.Logger
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectVolume(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectVolume(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
var dst []perflibDFSRVolume
|
var dst []perflibDFSRVolume
|
||||||
|
|
||||||
if err := perflib.UnmarshalObject(ctx.PerfObjects["DFS Replication Service Volumes"], &dst, logger); err != nil {
|
if err := perflib.UnmarshalObject(ctx.PerfObjects["DFS Replication Service Volumes"], &dst, logger); err != nil {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -79,151 +79,151 @@ func (c *Collector) Close(_ *slog.Logger) error {
|
|||||||
|
|
||||||
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
||||||
c.packetsReceivedTotal = prometheus.NewDesc(
|
c.packetsReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_received_total"),
|
||||||
"Total number of packets received by the DHCP server (PacketsReceivedTotal)",
|
"Total number of packets received by the DHCP server (PacketsReceivedTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.duplicatesDroppedTotal = prometheus.NewDesc(
|
c.duplicatesDroppedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "duplicates_dropped_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "duplicates_dropped_total"),
|
||||||
"Total number of duplicate packets received by the DHCP server (DuplicatesDroppedTotal)",
|
"Total number of duplicate packets received by the DHCP server (DuplicatesDroppedTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsExpiredTotal = prometheus.NewDesc(
|
c.packetsExpiredTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_expired_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_expired_total"),
|
||||||
"Total number of packets expired in the DHCP server message queue (PacketsExpiredTotal)",
|
"Total number of packets expired in the DHCP server message queue (PacketsExpiredTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.activeQueueLength = prometheus.NewDesc(
|
c.activeQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "active_queue_length"),
|
prometheus.BuildFQName(types.Namespace, Name, "active_queue_length"),
|
||||||
"Number of packets in the processing queue of the DHCP server (ActiveQueueLength)",
|
"Number of packets in the processing queue of the DHCP server (ActiveQueueLength)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.conflictCheckQueueLength = prometheus.NewDesc(
|
c.conflictCheckQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "conflict_check_queue_length"),
|
prometheus.BuildFQName(types.Namespace, Name, "conflict_check_queue_length"),
|
||||||
"Number of packets in the DHCP server queue waiting on conflict detection (ping). (ConflictCheckQueueLength)",
|
"Number of packets in the DHCP server queue waiting on conflict detection (ping). (ConflictCheckQueueLength)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.discoversTotal = prometheus.NewDesc(
|
c.discoversTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "discovers_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "discovers_total"),
|
||||||
"Total DHCP Discovers received by the DHCP server (DiscoversTotal)",
|
"Total DHCP Discovers received by the DHCP server (DiscoversTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.offersTotal = prometheus.NewDesc(
|
c.offersTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "offers_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "offers_total"),
|
||||||
"Total DHCP Offers sent by the DHCP server (OffersTotal)",
|
"Total DHCP Offers sent by the DHCP server (OffersTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.requestsTotal = prometheus.NewDesc(
|
c.requestsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "requests_total"),
|
||||||
"Total DHCP Requests received by the DHCP server (RequestsTotal)",
|
"Total DHCP Requests received by the DHCP server (RequestsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.informsTotal = prometheus.NewDesc(
|
c.informsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "informs_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "informs_total"),
|
||||||
"Total DHCP Informs received by the DHCP server (InformsTotal)",
|
"Total DHCP Informs received by the DHCP server (InformsTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.acksTotal = prometheus.NewDesc(
|
c.acksTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "acks_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "acks_total"),
|
||||||
"Total DHCP Acks sent by the DHCP server (AcksTotal)",
|
"Total DHCP Acks sent by the DHCP server (AcksTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.nACKsTotal = prometheus.NewDesc(
|
c.nACKsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "nacks_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "nacks_total"),
|
||||||
"Total DHCP Nacks sent by the DHCP server (NacksTotal)",
|
"Total DHCP Nacks sent by the DHCP server (NacksTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.declinesTotal = prometheus.NewDesc(
|
c.declinesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "declines_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "declines_total"),
|
||||||
"Total DHCP Declines received by the DHCP server (DeclinesTotal)",
|
"Total DHCP Declines received by the DHCP server (DeclinesTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.releasesTotal = prometheus.NewDesc(
|
c.releasesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "releases_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "releases_total"),
|
||||||
"Total DHCP Releases received by the DHCP server (ReleasesTotal)",
|
"Total DHCP Releases received by the DHCP server (ReleasesTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.offerQueueLength = prometheus.NewDesc(
|
c.offerQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "offer_queue_length"),
|
prometheus.BuildFQName(types.Namespace, Name, "offer_queue_length"),
|
||||||
"Number of packets in the offer queue of the DHCP server (OfferQueueLength)",
|
"Number of packets in the offer queue of the DHCP server (OfferQueueLength)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.deniedDueToMatch = prometheus.NewDesc(
|
c.deniedDueToMatch = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "denied_due_to_match_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "denied_due_to_match_total"),
|
||||||
"Total number of DHCP requests denied, based on matches from the Deny list (DeniedDueToMatch)",
|
"Total number of DHCP requests denied, based on matches from the Deny list (DeniedDueToMatch)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.deniedDueToNonMatch = prometheus.NewDesc(
|
c.deniedDueToNonMatch = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "denied_due_to_nonmatch_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "denied_due_to_nonmatch_total"),
|
||||||
"Total number of DHCP requests denied, based on non-matches from the Allow list (DeniedDueToNonMatch)",
|
"Total number of DHCP requests denied, based on non-matches from the Allow list (DeniedDueToNonMatch)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failoverBndupdSentTotal = prometheus.NewDesc(
|
c.failoverBndupdSentTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failover_bndupd_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "failover_bndupd_sent_total"),
|
||||||
"Number of DHCP fail over Binding Update messages sent (FailoverBndupdSentTotal)",
|
"Number of DHCP fail over Binding Update messages sent (FailoverBndupdSentTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failoverBndupdReceivedTotal = prometheus.NewDesc(
|
c.failoverBndupdReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failover_bndupd_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "failover_bndupd_received_total"),
|
||||||
"Number of DHCP fail over Binding Update messages received (FailoverBndupdReceivedTotal)",
|
"Number of DHCP fail over Binding Update messages received (FailoverBndupdReceivedTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failoverBndackSentTotal = prometheus.NewDesc(
|
c.failoverBndackSentTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failover_bndack_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "failover_bndack_sent_total"),
|
||||||
"Number of DHCP fail over Binding Ack messages sent (FailoverBndackSentTotal)",
|
"Number of DHCP fail over Binding Ack messages sent (FailoverBndackSentTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failoverBndackReceivedTotal = prometheus.NewDesc(
|
c.failoverBndackReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failover_bndack_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "failover_bndack_received_total"),
|
||||||
"Number of DHCP fail over Binding Ack messages received (FailoverBndackReceivedTotal)",
|
"Number of DHCP fail over Binding Ack messages received (FailoverBndackReceivedTotal)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failoverBndupdPendingOutboundQueue = prometheus.NewDesc(
|
c.failoverBndupdPendingOutboundQueue = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failover_bndupd_pending_in_outbound_queue"),
|
prometheus.BuildFQName(types.Namespace, Name, "failover_bndupd_pending_in_outbound_queue"),
|
||||||
"Number of pending outbound DHCP fail over Binding Update messages (FailoverBndupdPendingOutboundQueue)",
|
"Number of pending outbound DHCP fail over Binding Update messages (FailoverBndupdPendingOutboundQueue)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failoverTransitionsCommunicationInterruptedState = prometheus.NewDesc(
|
c.failoverTransitionsCommunicationInterruptedState = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failover_transitions_communicationinterrupted_state_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "failover_transitions_communicationinterrupted_state_total"),
|
||||||
"Total number of transitions into COMMUNICATION INTERRUPTED state (FailoverTransitionsCommunicationinterruptedState)",
|
"Total number of transitions into COMMUNICATION INTERRUPTED state (FailoverTransitionsCommunicationinterruptedState)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failoverTransitionsPartnerDownState = prometheus.NewDesc(
|
c.failoverTransitionsPartnerDownState = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failover_transitions_partnerdown_state_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "failover_transitions_partnerdown_state_total"),
|
||||||
"Total number of transitions into PARTNER DOWN state (FailoverTransitionsPartnerdownState)",
|
"Total number of transitions into PARTNER DOWN state (FailoverTransitionsPartnerdownState)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failoverTransitionsRecoverState = prometheus.NewDesc(
|
c.failoverTransitionsRecoverState = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failover_transitions_recover_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "failover_transitions_recover_total"),
|
||||||
"Total number of transitions into RECOVER state (FailoverTransitionsRecoverState)",
|
"Total number of transitions into RECOVER state (FailoverTransitionsRecoverState)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.failoverBndupdDropped = prometheus.NewDesc(
|
c.failoverBndupdDropped = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "failover_bndupd_dropped_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "failover_bndupd_dropped_total"),
|
||||||
"Total number of DHCP fail over Binding Updates dropped (FailoverBndupdDropped)",
|
"Total number of DHCP fail over Binding Updates dropped (FailoverBndupdDropped)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -263,7 +263,7 @@ type dhcpPerf struct {
|
|||||||
FailoverBndupdDropped float64 `perflib:"Failover: BndUpd Dropped."`
|
FailoverBndupdDropped float64 `perflib:"Failover: BndUpd Dropped."`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var dhcpPerfs []dhcpPerf
|
var dhcpPerfs []dhcpPerf
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -69,7 +69,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
c.diskInfo = prometheus.NewDesc(
|
c.diskInfo = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "info"),
|
prometheus.BuildFQName(types.Namespace, Name, "info"),
|
||||||
"General drive information",
|
"General drive information",
|
||||||
[]string{
|
[]string{
|
||||||
"device_id",
|
"device_id",
|
||||||
@@ -80,25 +80,25 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.status = prometheus.NewDesc(
|
c.status = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "status"),
|
prometheus.BuildFQName(types.Namespace, Name, "status"),
|
||||||
"Status of the drive",
|
"Status of the drive",
|
||||||
[]string{"name", "status"},
|
[]string{"name", "status"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.size = prometheus.NewDesc(
|
c.size = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "size"),
|
prometheus.BuildFQName(types.Namespace, Name, "size"),
|
||||||
"Size of the disk drive. It is calculated by multiplying the total number of cylinders, tracks in each cylinder, sectors in each track, and bytes in each sector.",
|
"Size of the disk drive. It is calculated by multiplying the total number of cylinders, tracks in each cylinder, sectors in each track, and bytes in each sector.",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.partitions = prometheus.NewDesc(
|
c.partitions = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "partitions"),
|
prometheus.BuildFQName(types.Namespace, Name, "partitions"),
|
||||||
"Number of partitions",
|
"Number of partitions",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.availability = prometheus.NewDesc(
|
c.availability = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "availability"),
|
prometheus.BuildFQName(types.Namespace, Name, "availability"),
|
||||||
"Availability Status",
|
"Availability Status",
|
||||||
[]string{"name", "availability"},
|
[]string{"name", "availability"},
|
||||||
nil,
|
nil,
|
||||||
@@ -160,7 +160,7 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Collect sends the metric values for each metric to the provided prometheus Metric channel.
|
// Collect sends the metric values for each metric to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting disk_drive_info metrics",
|
logger.Error("failed collecting disk_drive_info metrics",
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -83,133 +83,133 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
|
|
||||||
c.zoneTransferRequestsReceived = prometheus.NewDesc(
|
c.zoneTransferRequestsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "zone_transfer_requests_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "zone_transfer_requests_received_total"),
|
||||||
"Number of zone transfer requests (AXFR/IXFR) received by the master DNS server",
|
"Number of zone transfer requests (AXFR/IXFR) received by the master DNS server",
|
||||||
[]string{"qtype"},
|
[]string{"qtype"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.zoneTransferRequestsSent = prometheus.NewDesc(
|
c.zoneTransferRequestsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "zone_transfer_requests_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "zone_transfer_requests_sent_total"),
|
||||||
"Number of zone transfer requests (AXFR/IXFR) sent by the secondary DNS server",
|
"Number of zone transfer requests (AXFR/IXFR) sent by the secondary DNS server",
|
||||||
[]string{"qtype"},
|
[]string{"qtype"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.zoneTransferResponsesReceived = prometheus.NewDesc(
|
c.zoneTransferResponsesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "zone_transfer_response_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "zone_transfer_response_received_total"),
|
||||||
"Number of zone transfer responses (AXFR/IXFR) received by the secondary DNS server",
|
"Number of zone transfer responses (AXFR/IXFR) received by the secondary DNS server",
|
||||||
[]string{"qtype"},
|
[]string{"qtype"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.zoneTransferSuccessReceived = prometheus.NewDesc(
|
c.zoneTransferSuccessReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "zone_transfer_success_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "zone_transfer_success_received_total"),
|
||||||
"Number of successful zone transfers (AXFR/IXFR) received by the secondary DNS server",
|
"Number of successful zone transfers (AXFR/IXFR) received by the secondary DNS server",
|
||||||
[]string{"qtype", "protocol"},
|
[]string{"qtype", "protocol"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.zoneTransferSuccessSent = prometheus.NewDesc(
|
c.zoneTransferSuccessSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "zone_transfer_success_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "zone_transfer_success_sent_total"),
|
||||||
"Number of successful zone transfers (AXFR/IXFR) of the master DNS server",
|
"Number of successful zone transfers (AXFR/IXFR) of the master DNS server",
|
||||||
[]string{"qtype"},
|
[]string{"qtype"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.zoneTransferFailures = prometheus.NewDesc(
|
c.zoneTransferFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "zone_transfer_failures_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "zone_transfer_failures_total"),
|
||||||
"Number of failed zone transfers of the master DNS server",
|
"Number of failed zone transfers of the master DNS server",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memoryUsedBytes = prometheus.NewDesc(
|
c.memoryUsedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "memory_used_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "memory_used_bytes"),
|
||||||
"Current memory used by DNS server",
|
"Current memory used by DNS server",
|
||||||
[]string{"area"},
|
[]string{"area"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dynamicUpdatesQueued = prometheus.NewDesc(
|
c.dynamicUpdatesQueued = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "dynamic_updates_queued"),
|
prometheus.BuildFQName(types.Namespace, Name, "dynamic_updates_queued"),
|
||||||
"Number of dynamic updates queued by the DNS server",
|
"Number of dynamic updates queued by the DNS server",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dynamicUpdatesReceived = prometheus.NewDesc(
|
c.dynamicUpdatesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "dynamic_updates_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "dynamic_updates_received_total"),
|
||||||
"Number of secure update requests received by the DNS server",
|
"Number of secure update requests received by the DNS server",
|
||||||
[]string{"operation"},
|
[]string{"operation"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dynamicUpdatesFailures = prometheus.NewDesc(
|
c.dynamicUpdatesFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "dynamic_updates_failures_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "dynamic_updates_failures_total"),
|
||||||
"Number of dynamic updates which timed out or were rejected by the DNS server",
|
"Number of dynamic updates which timed out or were rejected by the DNS server",
|
||||||
[]string{"reason"},
|
[]string{"reason"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.notifyReceived = prometheus.NewDesc(
|
c.notifyReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "notify_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "notify_received_total"),
|
||||||
"Number of notifies received by the secondary DNS server",
|
"Number of notifies received by the secondary DNS server",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.notifySent = prometheus.NewDesc(
|
c.notifySent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "notify_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "notify_sent_total"),
|
||||||
"Number of notifies sent by the master DNS server",
|
"Number of notifies sent by the master DNS server",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.secureUpdateFailures = prometheus.NewDesc(
|
c.secureUpdateFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "secure_update_failures_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "secure_update_failures_total"),
|
||||||
"Number of secure updates that failed on the DNS server",
|
"Number of secure updates that failed on the DNS server",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.secureUpdateReceived = prometheus.NewDesc(
|
c.secureUpdateReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "secure_update_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "secure_update_received_total"),
|
||||||
"Number of secure update requests received by the DNS server",
|
"Number of secure update requests received by the DNS server",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.queries = prometheus.NewDesc(
|
c.queries = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "queries_total"),
|
||||||
"Number of queries received by DNS server",
|
"Number of queries received by DNS server",
|
||||||
[]string{"protocol"},
|
[]string{"protocol"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.responses = prometheus.NewDesc(
|
c.responses = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "responses_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "responses_total"),
|
||||||
"Number of responses sent by DNS server",
|
"Number of responses sent by DNS server",
|
||||||
[]string{"protocol"},
|
[]string{"protocol"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.recursiveQueries = prometheus.NewDesc(
|
c.recursiveQueries = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "recursive_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "recursive_queries_total"),
|
||||||
"Number of recursive queries received by DNS server",
|
"Number of recursive queries received by DNS server",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.recursiveQueryFailures = prometheus.NewDesc(
|
c.recursiveQueryFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "recursive_query_failures_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "recursive_query_failures_total"),
|
||||||
"Number of recursive query failures",
|
"Number of recursive query failures",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.recursiveQuerySendTimeouts = prometheus.NewDesc(
|
c.recursiveQuerySendTimeouts = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "recursive_query_send_timeouts_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "recursive_query_send_timeouts_total"),
|
||||||
"Number of recursive query sending timeouts",
|
"Number of recursive query sending timeouts",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.winsQueries = prometheus.NewDesc(
|
c.winsQueries = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "wins_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "wins_queries_total"),
|
||||||
"Number of WINS lookup requests received by the server",
|
"Number of WINS lookup requests received by the server",
|
||||||
[]string{"direction"},
|
[]string{"direction"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.winsResponses = prometheus.NewDesc(
|
c.winsResponses = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "wins_responses_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "wins_responses_total"),
|
||||||
"Number of WINS lookup responses sent by the server",
|
"Number of WINS lookup responses sent by the server",
|
||||||
[]string{"direction"},
|
[]string{"direction"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.unmatchedResponsesReceived = prometheus.NewDesc(
|
c.unmatchedResponsesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "unmatched_responses_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "unmatched_responses_total"),
|
||||||
"Number of response packets received by the DNS server that do not match any outstanding remote query",
|
"Number of response packets received by the DNS server that do not match any outstanding remote query",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -220,7 +220,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting dns metrics",
|
logger.Error("failed collecting dns metrics",
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -181,7 +181,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
// desc creates a new prometheus description
|
// desc creates a new prometheus description
|
||||||
desc := func(metricName string, description string, labels ...string) *prometheus.Desc {
|
desc := func(metricName string, description string, labels ...string) *prometheus.Desc {
|
||||||
return prometheus.NewDesc(
|
return prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "exchange", metricName),
|
prometheus.BuildFQName(types.Namespace, "exchange", metricName),
|
||||||
description,
|
description,
|
||||||
labels,
|
labels,
|
||||||
nil,
|
nil,
|
||||||
@@ -231,9 +231,9 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Collect collects exchange metrics and sends them to prometheus.
|
// Collect collects exchange metrics and sends them to prometheus.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
collectorFuncs := map[string]func(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error{
|
collectorFuncs := map[string]func(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error{
|
||||||
"ADAccessProcesses": c.collectADAccessProcesses,
|
"ADAccessProcesses": c.collectADAccessProcesses,
|
||||||
"TransportQueues": c.collectTransportQueues,
|
"TransportQueues": c.collectTransportQueues,
|
||||||
"HttpProxy": c.collectHTTPProxy,
|
"HttpProxy": c.collectHTTPProxy,
|
||||||
@@ -270,7 +270,7 @@ type perflibADAccessProcesses struct {
|
|||||||
LongRunningLDAPOperationsPerMin float64 `perflib:"Long Running LDAP Operations/min"`
|
LongRunningLDAPOperationsPerMin float64 `perflib:"Long Running LDAP Operations/min"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectADAccessProcesses(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectADAccessProcesses(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibADAccessProcesses
|
var data []perflibADAccessProcesses
|
||||||
@@ -333,7 +333,7 @@ type perflibAvailabilityService struct {
|
|||||||
RequestsSec float64 `perflib:"Availability Requests (sec)"`
|
RequestsSec float64 `perflib:"Availability Requests (sec)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectAvailabilityService(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectAvailabilityService(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibAvailabilityService
|
var data []perflibAvailabilityService
|
||||||
@@ -365,7 +365,7 @@ type perflibHTTPProxy struct {
|
|||||||
ProxyRequestsPerSec float64 `perflib:"Proxy Requests/Sec"`
|
ProxyRequestsPerSec float64 `perflib:"Proxy Requests/Sec"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectHTTPProxy(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectHTTPProxy(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibHTTPProxy
|
var data []perflibHTTPProxy
|
||||||
@@ -423,7 +423,7 @@ type perflibOWA struct {
|
|||||||
RequestsPerSec float64 `perflib:"Requests/sec"`
|
RequestsPerSec float64 `perflib:"Requests/sec"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectOWA(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectOWA(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibOWA
|
var data []perflibOWA
|
||||||
@@ -455,7 +455,7 @@ type perflibActiveSync struct {
|
|||||||
SyncCommandsPerSec float64 `perflib:"Sync Commands/sec"`
|
SyncCommandsPerSec float64 `perflib:"Sync Commands/sec"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectActiveSync(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectActiveSync(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibActiveSync
|
var data []perflibActiveSync
|
||||||
@@ -495,7 +495,7 @@ type perflibRPCClientAccess struct {
|
|||||||
UserCount float64 `perflib:"User Count"`
|
UserCount float64 `perflib:"User Count"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectRPC(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectRPC(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibRPCClientAccess
|
var data []perflibRPCClientAccess
|
||||||
@@ -554,7 +554,7 @@ type perflibTransportQueues struct {
|
|||||||
PoisonQueueLength float64 `perflib:"Poison Queue Length"`
|
PoisonQueueLength float64 `perflib:"Poison Queue Length"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectTransportQueues(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectTransportQueues(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibTransportQueues
|
var data []perflibTransportQueues
|
||||||
@@ -632,7 +632,7 @@ type perflibWorkloadManagementWorkloads struct {
|
|||||||
IsActive float64 `perflib:"Active"`
|
IsActive float64 `perflib:"Active"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectWorkloadManagementWorkloads(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectWorkloadManagementWorkloads(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibWorkloadManagementWorkloads
|
var data []perflibWorkloadManagementWorkloads
|
||||||
@@ -686,7 +686,7 @@ type perflibAutodiscover struct {
|
|||||||
RequestsPerSec float64 `perflib:"Requests/sec"`
|
RequestsPerSec float64 `perflib:"Requests/sec"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectAutoDiscover(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectAutoDiscover(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibAutodiscover
|
var data []perflibAutodiscover
|
||||||
@@ -711,7 +711,7 @@ type perflibMapiHttpEmsmdb struct {
|
|||||||
ActiveUserCount float64 `perflib:"Active User Count"`
|
ActiveUserCount float64 `perflib:"Active User Count"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectMapiHttpEmsmdb(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectMapiHttpEmsmdb(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibMapiHttpEmsmdb
|
var data []perflibMapiHttpEmsmdb
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/bmatcuk/doublestar/v4"
|
"github.com/bmatcuk/doublestar/v4"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -91,7 +91,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
)
|
)
|
||||||
|
|
||||||
c.fileMTime = prometheus.NewDesc(
|
c.fileMTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mtime_timestamp_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "mtime_timestamp_seconds"),
|
||||||
"File modification time",
|
"File modification time",
|
||||||
[]string{"file"},
|
[]string{"file"},
|
||||||
nil,
|
nil,
|
||||||
@@ -111,7 +111,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
return c.collectGlob(logger, ch)
|
return c.collectGlob(logger, ch)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -71,55 +71,55 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
|
|
||||||
c.quotasCount = prometheus.NewDesc(
|
c.quotasCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "count"),
|
prometheus.BuildFQName(types.Namespace, Name, "count"),
|
||||||
"Number of Quotas",
|
"Number of Quotas",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.peakUsage = prometheus.NewDesc(
|
c.peakUsage = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "peak_usage_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "peak_usage_bytes"),
|
||||||
"The highest amount of disk space usage charged to this quota. (PeakUsage)",
|
"The highest amount of disk space usage charged to this quota. (PeakUsage)",
|
||||||
[]string{"path", "template"},
|
[]string{"path", "template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.size = prometheus.NewDesc(
|
c.size = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "size_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "size_bytes"),
|
||||||
"The size of the quota. (Size)",
|
"The size of the quota. (Size)",
|
||||||
[]string{"path", "template"},
|
[]string{"path", "template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usage = prometheus.NewDesc(
|
c.usage = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "usage_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "usage_bytes"),
|
||||||
"The current amount of disk space usage charged to this quota. (Usage)",
|
"The current amount of disk space usage charged to this quota. (Usage)",
|
||||||
[]string{"path", "template"},
|
[]string{"path", "template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.description = prometheus.NewDesc(
|
c.description = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "description"),
|
prometheus.BuildFQName(types.Namespace, Name, "description"),
|
||||||
"Description of the quota (Description)",
|
"Description of the quota (Description)",
|
||||||
[]string{"path", "template", "description"},
|
[]string{"path", "template", "description"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.disabled = prometheus.NewDesc(
|
c.disabled = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "disabled"),
|
prometheus.BuildFQName(types.Namespace, Name, "disabled"),
|
||||||
"If 1, the quota is disabled. The default value is 0. (Disabled)",
|
"If 1, the quota is disabled. The default value is 0. (Disabled)",
|
||||||
[]string{"path", "template"},
|
[]string{"path", "template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.softLimit = prometheus.NewDesc(
|
c.softLimit = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "softlimit"),
|
prometheus.BuildFQName(types.Namespace, Name, "softlimit"),
|
||||||
"If 1, the quota is a soft limit. If 0, the quota is a hard limit. The default value is 0. Optional (SoftLimit)",
|
"If 1, the quota is a soft limit. If 0, the quota is a hard limit. The default value is 0. Optional (SoftLimit)",
|
||||||
[]string{"path", "template"},
|
[]string{"path", "template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.template = prometheus.NewDesc(
|
c.template = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "template"),
|
prometheus.BuildFQName(types.Namespace, Name, "template"),
|
||||||
"Quota template name. (Template)",
|
"Quota template name. (Template)",
|
||||||
[]string{"path", "template"},
|
[]string{"path", "template"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.matchesTemplate = prometheus.NewDesc(
|
c.matchesTemplate = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "matchestemplate"),
|
prometheus.BuildFQName(types.Namespace, Name, "matchestemplate"),
|
||||||
"If 1, the property values of this quota match those values of the template from which it was derived. (MatchesTemplate)",
|
"If 1, the property values of this quota match those values of the template from which it was derived. (MatchesTemplate)",
|
||||||
[]string{"path", "template"},
|
[]string{"path", "template"},
|
||||||
nil,
|
nil,
|
||||||
@@ -130,7 +130,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting fsrmquota metrics",
|
logger.Error("failed collecting fsrmquota metrics",
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -178,13 +178,13 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
buildSubsystemName := func(component string) string { return "hyperv_" + component }
|
buildSubsystemName := func(component string) string { return "hyperv_" + component }
|
||||||
|
|
||||||
c.healthCritical = prometheus.NewDesc(
|
c.healthCritical = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("health"), "critical"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("health"), "critical"),
|
||||||
"This counter represents the number of virtual machines with critical health",
|
"This counter represents the number of virtual machines with critical health",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.healthOk = prometheus.NewDesc(
|
c.healthOk = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("health"), "ok"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("health"), "ok"),
|
||||||
"This counter represents the number of virtual machines with ok health",
|
"This counter represents the number of virtual machines with ok health",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -193,19 +193,19 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.physicalPagesAllocated = prometheus.NewDesc(
|
c.physicalPagesAllocated = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vid"), "physical_pages_allocated"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vid"), "physical_pages_allocated"),
|
||||||
"The number of physical pages allocated",
|
"The number of physical pages allocated",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.preferredNUMANodeIndex = prometheus.NewDesc(
|
c.preferredNUMANodeIndex = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vid"), "preferred_numa_node_index"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vid"), "preferred_numa_node_index"),
|
||||||
"The preferred NUMA node index associated with this partition",
|
"The preferred NUMA node index associated with this partition",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.remotePhysicalPages = prometheus.NewDesc(
|
c.remotePhysicalPages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vid"), "remote_physical_pages"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vid"), "remote_physical_pages"),
|
||||||
"The number of physical pages not allocated from the preferred NUMA node",
|
"The number of physical pages not allocated from the preferred NUMA node",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
@@ -214,127 +214,127 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.addressSpaces = prometheus.NewDesc(
|
c.addressSpaces = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "address_spaces"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "address_spaces"),
|
||||||
"The number of address spaces in the virtual TLB of the partition",
|
"The number of address spaces in the virtual TLB of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.attachedDevices = prometheus.NewDesc(
|
c.attachedDevices = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "attached_devices"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "attached_devices"),
|
||||||
"The number of devices attached to the partition",
|
"The number of devices attached to the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.depositedPages = prometheus.NewDesc(
|
c.depositedPages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "deposited_pages"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "deposited_pages"),
|
||||||
"The number of pages deposited into the partition",
|
"The number of pages deposited into the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.deviceDMAErrors = prometheus.NewDesc(
|
c.deviceDMAErrors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "device_dma_errors"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "device_dma_errors"),
|
||||||
"An indicator of illegal DMA requests generated by all devices assigned to the partition",
|
"An indicator of illegal DMA requests generated by all devices assigned to the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.deviceInterruptErrors = prometheus.NewDesc(
|
c.deviceInterruptErrors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "device_interrupt_errors"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "device_interrupt_errors"),
|
||||||
"An indicator of illegal interrupt requests generated by all devices assigned to the partition",
|
"An indicator of illegal interrupt requests generated by all devices assigned to the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.deviceInterruptMappings = prometheus.NewDesc(
|
c.deviceInterruptMappings = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "device_interrupt_mappings"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "device_interrupt_mappings"),
|
||||||
"The number of device interrupt mappings used by the partition",
|
"The number of device interrupt mappings used by the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.deviceInterruptThrottleEvents = prometheus.NewDesc(
|
c.deviceInterruptThrottleEvents = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "device_interrupt_throttle_events"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "device_interrupt_throttle_events"),
|
||||||
"The number of times an interrupt from a device assigned to the partition was temporarily throttled because the device was generating too many interrupts",
|
"The number of times an interrupt from a device assigned to the partition was temporarily throttled because the device was generating too many interrupts",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.gpaPages = prometheus.NewDesc(
|
c.gpaPages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "preferred_numa_node_index"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "preferred_numa_node_index"),
|
||||||
"The number of pages present in the GPA space of the partition (zero for root partition)",
|
"The number of pages present in the GPA space of the partition (zero for root partition)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.gpaSpaceModifications = prometheus.NewDesc(
|
c.gpaSpaceModifications = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "gpa_space_modifications"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "gpa_space_modifications"),
|
||||||
"The rate of modifications to the GPA space of the partition",
|
"The rate of modifications to the GPA space of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ioTLBFlushCost = prometheus.NewDesc(
|
c.ioTLBFlushCost = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "io_tlb_flush_cost"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "io_tlb_flush_cost"),
|
||||||
"The average time (in nanoseconds) spent processing an I/O TLB flush",
|
"The average time (in nanoseconds) spent processing an I/O TLB flush",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ioTLBFlushes = prometheus.NewDesc(
|
c.ioTLBFlushes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "io_tlb_flush"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "io_tlb_flush"),
|
||||||
"The rate of flushes of I/O TLBs of the partition",
|
"The rate of flushes of I/O TLBs of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.recommendedVirtualTLBSize = prometheus.NewDesc(
|
c.recommendedVirtualTLBSize = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "recommended_virtual_tlb_size"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "recommended_virtual_tlb_size"),
|
||||||
"The recommended number of pages to be deposited for the virtual TLB",
|
"The recommended number of pages to be deposited for the virtual TLB",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.skippedTimerTicks = prometheus.NewDesc(
|
c.skippedTimerTicks = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "physical_pages_allocated"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "physical_pages_allocated"),
|
||||||
"The number of timer interrupts skipped for the partition",
|
"The number of timer interrupts skipped for the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.value1Gdevicepages = prometheus.NewDesc(
|
c.value1Gdevicepages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "1G_device_pages"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "1G_device_pages"),
|
||||||
"The number of 1G pages present in the device space of the partition",
|
"The number of 1G pages present in the device space of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.value1GGPApages = prometheus.NewDesc(
|
c.value1GGPApages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "1G_gpa_pages"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "1G_gpa_pages"),
|
||||||
"The number of 1G pages present in the GPA space of the partition",
|
"The number of 1G pages present in the GPA space of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.value2Mdevicepages = prometheus.NewDesc(
|
c.value2Mdevicepages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "2M_device_pages"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "2M_device_pages"),
|
||||||
"The number of 2M pages present in the device space of the partition",
|
"The number of 2M pages present in the device space of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.value2MGPApages = prometheus.NewDesc(
|
c.value2MGPApages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "2M_gpa_pages"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "2M_gpa_pages"),
|
||||||
"The number of 2M pages present in the GPA space of the partition",
|
"The number of 2M pages present in the GPA space of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.value4Kdevicepages = prometheus.NewDesc(
|
c.value4Kdevicepages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "4K_device_pages"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "4K_device_pages"),
|
||||||
"The number of 4K pages present in the device space of the partition",
|
"The number of 4K pages present in the device space of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.value4KGPApages = prometheus.NewDesc(
|
c.value4KGPApages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "4K_gpa_pages"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "4K_gpa_pages"),
|
||||||
"The number of 4K pages present in the GPA space of the partition",
|
"The number of 4K pages present in the GPA space of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.virtualTLBFlushEntires = prometheus.NewDesc(
|
c.virtualTLBFlushEntires = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "virtual_tlb_flush_entires"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "virtual_tlb_flush_entires"),
|
||||||
"The rate of flushes of the entire virtual TLB",
|
"The rate of flushes of the entire virtual TLB",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.virtualTLBPages = prometheus.NewDesc(
|
c.virtualTLBPages = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("root_partition"), "virtual_tlb_pages"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("root_partition"), "virtual_tlb_pages"),
|
||||||
"The number of pages used by the virtual TLB of the partition",
|
"The number of pages used by the virtual TLB of the partition",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -343,13 +343,13 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.virtualProcessors = prometheus.NewDesc(
|
c.virtualProcessors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("hypervisor"), "virtual_processors"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("hypervisor"), "virtual_processors"),
|
||||||
"The number of virtual processors present in the system",
|
"The number of virtual processors present in the system",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.logicalProcessors = prometheus.NewDesc(
|
c.logicalProcessors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("hypervisor"), "logical_processors"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("hypervisor"), "logical_processors"),
|
||||||
"The number of logical processors present in the system",
|
"The number of logical processors present in the system",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -358,19 +358,19 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.hostLPGuestRunTimePercent = prometheus.NewDesc(
|
c.hostLPGuestRunTimePercent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("host_lp"), "guest_run_time_percent"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("host_lp"), "guest_run_time_percent"),
|
||||||
"The percentage of time spent by the processor in guest code",
|
"The percentage of time spent by the processor in guest code",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.hostLPHypervisorRunTimePercent = prometheus.NewDesc(
|
c.hostLPHypervisorRunTimePercent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("host_lp"), "hypervisor_run_time_percent"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("host_lp"), "hypervisor_run_time_percent"),
|
||||||
"The percentage of time spent by the processor in hypervisor code",
|
"The percentage of time spent by the processor in hypervisor code",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.hostLPTotalRunTimePercent = prometheus.NewDesc(
|
c.hostLPTotalRunTimePercent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("host_lp"), "total_run_time_percent"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("host_lp"), "total_run_time_percent"),
|
||||||
"The percentage of time spent by the processor in guest and hypervisor code",
|
"The percentage of time spent by the processor in guest and hypervisor code",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
@@ -379,31 +379,31 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.hostGuestRunTime = prometheus.NewDesc(
|
c.hostGuestRunTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("host_cpu"), "guest_run_time"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("host_cpu"), "guest_run_time"),
|
||||||
"The time spent by the virtual processor in guest code",
|
"The time spent by the virtual processor in guest code",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.hostHypervisorRunTime = prometheus.NewDesc(
|
c.hostHypervisorRunTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("host_cpu"), "hypervisor_run_time"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("host_cpu"), "hypervisor_run_time"),
|
||||||
"The time spent by the virtual processor in hypervisor code",
|
"The time spent by the virtual processor in hypervisor code",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.hostRemoteRunTime = prometheus.NewDesc(
|
c.hostRemoteRunTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("host_cpu"), "remote_run_time"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("host_cpu"), "remote_run_time"),
|
||||||
"The time spent by the virtual processor running on a remote node",
|
"The time spent by the virtual processor running on a remote node",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.hostTotalRunTime = prometheus.NewDesc(
|
c.hostTotalRunTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("host_cpu"), "total_run_time"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("host_cpu"), "total_run_time"),
|
||||||
"The time spent by the virtual processor in guest and hypervisor code",
|
"The time spent by the virtual processor in guest and hypervisor code",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.hostCPUWaitTimePerDispatch = prometheus.NewDesc(
|
c.hostCPUWaitTimePerDispatch = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("host_cpu"), "wait_time_per_dispatch_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("host_cpu"), "wait_time_per_dispatch_total"),
|
||||||
"Time in nanoseconds waiting for a virtual processor to be dispatched onto a logical processor",
|
"Time in nanoseconds waiting for a virtual processor to be dispatched onto a logical processor",
|
||||||
[]string{"core"},
|
[]string{"core"},
|
||||||
nil,
|
nil,
|
||||||
@@ -412,31 +412,31 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.vmGuestRunTime = prometheus.NewDesc(
|
c.vmGuestRunTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_cpu"), "guest_run_time"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_cpu"), "guest_run_time"),
|
||||||
"The time spent by the virtual processor in guest code",
|
"The time spent by the virtual processor in guest code",
|
||||||
[]string{"vm", "core"},
|
[]string{"vm", "core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmHypervisorRunTime = prometheus.NewDesc(
|
c.vmHypervisorRunTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_cpu"), "hypervisor_run_time"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_cpu"), "hypervisor_run_time"),
|
||||||
"The time spent by the virtual processor in hypervisor code",
|
"The time spent by the virtual processor in hypervisor code",
|
||||||
[]string{"vm", "core"},
|
[]string{"vm", "core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmRemoteRunTime = prometheus.NewDesc(
|
c.vmRemoteRunTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_cpu"), "remote_run_time"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_cpu"), "remote_run_time"),
|
||||||
"The time spent by the virtual processor running on a remote node",
|
"The time spent by the virtual processor running on a remote node",
|
||||||
[]string{"vm", "core"},
|
[]string{"vm", "core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmTotalRunTime = prometheus.NewDesc(
|
c.vmTotalRunTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_cpu"), "total_run_time"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_cpu"), "total_run_time"),
|
||||||
"The time spent by the virtual processor in guest and hypervisor code",
|
"The time spent by the virtual processor in guest and hypervisor code",
|
||||||
[]string{"vm", "core"},
|
[]string{"vm", "core"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmCPUWaitTimePerDispatch = prometheus.NewDesc(
|
c.vmCPUWaitTimePerDispatch = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_cpu"), "wait_time_per_dispatch_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_cpu"), "wait_time_per_dispatch_total"),
|
||||||
"Time in nanoseconds waiting for a virtual processor to be dispatched onto a logical processor",
|
"Time in nanoseconds waiting for a virtual processor to be dispatched onto a logical processor",
|
||||||
[]string{"vm", "core"},
|
[]string{"vm", "core"},
|
||||||
nil,
|
nil,
|
||||||
@@ -444,127 +444,127 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
//
|
//
|
||||||
c.broadcastPacketsReceived = prometheus.NewDesc(
|
c.broadcastPacketsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "broadcast_packets_received_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "broadcast_packets_received_total"),
|
||||||
"This represents the total number of broadcast packets received per second by the virtual switch",
|
"This represents the total number of broadcast packets received per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.broadcastPacketsSent = prometheus.NewDesc(
|
c.broadcastPacketsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "broadcast_packets_sent_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "broadcast_packets_sent_total"),
|
||||||
"This represents the total number of broadcast packets sent per second by the virtual switch",
|
"This represents the total number of broadcast packets sent per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytes = prometheus.NewDesc(
|
c.bytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "bytes_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "bytes_total"),
|
||||||
"This represents the total number of bytes per second traversing the virtual switch",
|
"This represents the total number of bytes per second traversing the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesReceived = prometheus.NewDesc(
|
c.bytesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "bytes_received_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "bytes_received_total"),
|
||||||
"This represents the total number of bytes received per second by the virtual switch",
|
"This represents the total number of bytes received per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesSent = prometheus.NewDesc(
|
c.bytesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "bytes_sent_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "bytes_sent_total"),
|
||||||
"This represents the total number of bytes sent per second by the virtual switch",
|
"This represents the total number of bytes sent per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.directedPacketsReceived = prometheus.NewDesc(
|
c.directedPacketsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "directed_packets_received_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "directed_packets_received_total"),
|
||||||
"This represents the total number of directed packets received per second by the virtual switch",
|
"This represents the total number of directed packets received per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.directedPacketsSent = prometheus.NewDesc(
|
c.directedPacketsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "directed_packets_send_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "directed_packets_send_total"),
|
||||||
"This represents the total number of directed packets sent per second by the virtual switch",
|
"This represents the total number of directed packets sent per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.droppedPacketsIncoming = prometheus.NewDesc(
|
c.droppedPacketsIncoming = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "dropped_packets_incoming_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "dropped_packets_incoming_total"),
|
||||||
"This represents the total number of packet dropped per second by the virtual switch in the incoming direction",
|
"This represents the total number of packet dropped per second by the virtual switch in the incoming direction",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.droppedPacketsOutgoing = prometheus.NewDesc(
|
c.droppedPacketsOutgoing = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "dropped_packets_outcoming_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "dropped_packets_outcoming_total"),
|
||||||
"This represents the total number of packet dropped per second by the virtual switch in the outgoing direction",
|
"This represents the total number of packet dropped per second by the virtual switch in the outgoing direction",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.extensionsDroppedPacketsIncoming = prometheus.NewDesc(
|
c.extensionsDroppedPacketsIncoming = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "extensions_dropped_packets_incoming_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "extensions_dropped_packets_incoming_total"),
|
||||||
"This represents the total number of packet dropped per second by the virtual switch extensions in the incoming direction",
|
"This represents the total number of packet dropped per second by the virtual switch extensions in the incoming direction",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.extensionsDroppedPacketsOutgoing = prometheus.NewDesc(
|
c.extensionsDroppedPacketsOutgoing = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "extensions_dropped_packets_outcoming_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "extensions_dropped_packets_outcoming_total"),
|
||||||
"This represents the total number of packet dropped per second by the virtual switch extensions in the outgoing direction",
|
"This represents the total number of packet dropped per second by the virtual switch extensions in the outgoing direction",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.learnedMacAddresses = prometheus.NewDesc(
|
c.learnedMacAddresses = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "learned_mac_addresses_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "learned_mac_addresses_total"),
|
||||||
"This counter represents the total number of learned MAC addresses of the virtual switch",
|
"This counter represents the total number of learned MAC addresses of the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.multicastPacketsReceived = prometheus.NewDesc(
|
c.multicastPacketsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "multicast_packets_received_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "multicast_packets_received_total"),
|
||||||
"This represents the total number of multicast packets received per second by the virtual switch",
|
"This represents the total number of multicast packets received per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.multicastPacketsSent = prometheus.NewDesc(
|
c.multicastPacketsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "multicast_packets_sent_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "multicast_packets_sent_total"),
|
||||||
"This represents the total number of multicast packets sent per second by the virtual switch",
|
"This represents the total number of multicast packets sent per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.numberOfSendChannelMoves = prometheus.NewDesc(
|
c.numberOfSendChannelMoves = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "number_of_send_channel_moves_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "number_of_send_channel_moves_total"),
|
||||||
"This represents the total number of send channel moves per second on this virtual switch",
|
"This represents the total number of send channel moves per second on this virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.numberOfVMQMoves = prometheus.NewDesc(
|
c.numberOfVMQMoves = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "number_of_vmq_moves_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "number_of_vmq_moves_total"),
|
||||||
"This represents the total number of VMQ moves per second on this virtual switch",
|
"This represents the total number of VMQ moves per second on this virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsFlooded = prometheus.NewDesc(
|
c.packetsFlooded = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "packets_flooded_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "packets_flooded_total"),
|
||||||
"This counter represents the total number of packets flooded by the virtual switch",
|
"This counter represents the total number of packets flooded by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packets = prometheus.NewDesc(
|
c.packets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "packets_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "packets_total"),
|
||||||
"This represents the total number of packets per second traversing the virtual switch",
|
"This represents the total number of packets per second traversing the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsReceived = prometheus.NewDesc(
|
c.packetsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "packets_received_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "packets_received_total"),
|
||||||
"This represents the total number of packets received per second by the virtual switch",
|
"This represents the total number of packets received per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsSent = prometheus.NewDesc(
|
c.packetsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "packets_sent_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "packets_sent_total"),
|
||||||
"This represents the total number of packets send per second by the virtual switch",
|
"This represents the total number of packets send per second by the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.purgedMacAddresses = prometheus.NewDesc(
|
c.purgedMacAddresses = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vswitch"), "purged_mac_addresses_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vswitch"), "purged_mac_addresses_total"),
|
||||||
"This counter represents the total number of purged MAC addresses of the virtual switch",
|
"This counter represents the total number of purged MAC addresses of the virtual switch",
|
||||||
[]string{"vswitch"},
|
[]string{"vswitch"},
|
||||||
nil,
|
nil,
|
||||||
@@ -573,37 +573,37 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.adapterBytesDropped = prometheus.NewDesc(
|
c.adapterBytesDropped = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("ethernet"), "bytes_dropped"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("ethernet"), "bytes_dropped"),
|
||||||
"Bytes Dropped is the number of bytes dropped on the network adapter",
|
"Bytes Dropped is the number of bytes dropped on the network adapter",
|
||||||
[]string{"adapter"},
|
[]string{"adapter"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.adapterBytesReceived = prometheus.NewDesc(
|
c.adapterBytesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("ethernet"), "bytes_received"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("ethernet"), "bytes_received"),
|
||||||
"Bytes received is the number of bytes received on the network adapter",
|
"Bytes received is the number of bytes received on the network adapter",
|
||||||
[]string{"adapter"},
|
[]string{"adapter"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.adapterBytesSent = prometheus.NewDesc(
|
c.adapterBytesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("ethernet"), "bytes_sent"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("ethernet"), "bytes_sent"),
|
||||||
"Bytes sent is the number of bytes sent over the network adapter",
|
"Bytes sent is the number of bytes sent over the network adapter",
|
||||||
[]string{"adapter"},
|
[]string{"adapter"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.adapterFramesDropped = prometheus.NewDesc(
|
c.adapterFramesDropped = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("ethernet"), "frames_dropped"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("ethernet"), "frames_dropped"),
|
||||||
"Frames Dropped is the number of frames dropped on the network adapter",
|
"Frames Dropped is the number of frames dropped on the network adapter",
|
||||||
[]string{"adapter"},
|
[]string{"adapter"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.adapterFramesReceived = prometheus.NewDesc(
|
c.adapterFramesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("ethernet"), "frames_received"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("ethernet"), "frames_received"),
|
||||||
"Frames received is the number of frames received on the network adapter",
|
"Frames received is the number of frames received on the network adapter",
|
||||||
[]string{"adapter"},
|
[]string{"adapter"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.adapterFramesSent = prometheus.NewDesc(
|
c.adapterFramesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("ethernet"), "frames_sent"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("ethernet"), "frames_sent"),
|
||||||
"Frames sent is the number of frames sent over the network adapter",
|
"Frames sent is the number of frames sent over the network adapter",
|
||||||
[]string{"adapter"},
|
[]string{"adapter"},
|
||||||
nil,
|
nil,
|
||||||
@@ -612,37 +612,37 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.vmStorageErrorCount = prometheus.NewDesc(
|
c.vmStorageErrorCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_device"), "error_count"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_device"), "error_count"),
|
||||||
"This counter represents the total number of errors that have occurred on this virtual device",
|
"This counter represents the total number of errors that have occurred on this virtual device",
|
||||||
[]string{"vm_device"},
|
[]string{"vm_device"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStorageQueueLength = prometheus.NewDesc(
|
c.vmStorageQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_device"), "queue_length"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_device"), "queue_length"),
|
||||||
"This counter represents the current queue length on this virtual device",
|
"This counter represents the current queue length on this virtual device",
|
||||||
[]string{"vm_device"},
|
[]string{"vm_device"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStorageReadBytes = prometheus.NewDesc(
|
c.vmStorageReadBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_device"), "bytes_read"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_device"), "bytes_read"),
|
||||||
"This counter represents the total number of bytes that have been read per second on this virtual device",
|
"This counter represents the total number of bytes that have been read per second on this virtual device",
|
||||||
[]string{"vm_device"},
|
[]string{"vm_device"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStorageReadOperations = prometheus.NewDesc(
|
c.vmStorageReadOperations = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_device"), "operations_read"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_device"), "operations_read"),
|
||||||
"This counter represents the number of read operations that have occurred per second on this virtual device",
|
"This counter represents the number of read operations that have occurred per second on this virtual device",
|
||||||
[]string{"vm_device"},
|
[]string{"vm_device"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStorageWriteBytes = prometheus.NewDesc(
|
c.vmStorageWriteBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_device"), "bytes_written"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_device"), "bytes_written"),
|
||||||
"This counter represents the total number of bytes that have been written per second on this virtual device",
|
"This counter represents the total number of bytes that have been written per second on this virtual device",
|
||||||
[]string{"vm_device"},
|
[]string{"vm_device"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStorageWriteOperations = prometheus.NewDesc(
|
c.vmStorageWriteOperations = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_device"), "operations_written"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_device"), "operations_written"),
|
||||||
"This counter represents the number of write operations that have occurred per second on this virtual device",
|
"This counter represents the number of write operations that have occurred per second on this virtual device",
|
||||||
[]string{"vm_device"},
|
[]string{"vm_device"},
|
||||||
nil,
|
nil,
|
||||||
@@ -651,37 +651,37 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.vmStorageBytesReceived = prometheus.NewDesc(
|
c.vmStorageBytesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_interface"), "bytes_received"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_interface"), "bytes_received"),
|
||||||
"This counter represents the total number of bytes received per second by the network adapter",
|
"This counter represents the total number of bytes received per second by the network adapter",
|
||||||
[]string{"vm_interface"},
|
[]string{"vm_interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStorageBytesSent = prometheus.NewDesc(
|
c.vmStorageBytesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_interface"), "bytes_sent"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_interface"), "bytes_sent"),
|
||||||
"This counter represents the total number of bytes sent per second by the network adapter",
|
"This counter represents the total number of bytes sent per second by the network adapter",
|
||||||
[]string{"vm_interface"},
|
[]string{"vm_interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStorageDroppedPacketsIncoming = prometheus.NewDesc(
|
c.vmStorageDroppedPacketsIncoming = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_interface"), "packets_incoming_dropped"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_interface"), "packets_incoming_dropped"),
|
||||||
"This counter represents the total number of dropped packets per second in the incoming direction of the network adapter",
|
"This counter represents the total number of dropped packets per second in the incoming direction of the network adapter",
|
||||||
[]string{"vm_interface"},
|
[]string{"vm_interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStorageDroppedPacketsOutgoing = prometheus.NewDesc(
|
c.vmStorageDroppedPacketsOutgoing = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_interface"), "packets_outgoing_dropped"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_interface"), "packets_outgoing_dropped"),
|
||||||
"This counter represents the total number of dropped packets per second in the outgoing direction of the network adapter",
|
"This counter represents the total number of dropped packets per second in the outgoing direction of the network adapter",
|
||||||
[]string{"vm_interface"},
|
[]string{"vm_interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStoragePacketsReceived = prometheus.NewDesc(
|
c.vmStoragePacketsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_interface"), "packets_received"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_interface"), "packets_received"),
|
||||||
"This counter represents the total number of packets received per second by the network adapter",
|
"This counter represents the total number of packets received per second by the network adapter",
|
||||||
[]string{"vm_interface"},
|
[]string{"vm_interface"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmStoragePacketsSent = prometheus.NewDesc(
|
c.vmStoragePacketsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_interface"), "packets_sent"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_interface"), "packets_sent"),
|
||||||
"This counter represents the total number of packets sent per second by the network adapter",
|
"This counter represents the total number of packets sent per second by the network adapter",
|
||||||
[]string{"vm_interface"},
|
[]string{"vm_interface"},
|
||||||
nil,
|
nil,
|
||||||
@@ -690,61 +690,61 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
//
|
//
|
||||||
|
|
||||||
c.vmMemoryAddedMemory = prometheus.NewDesc(
|
c.vmMemoryAddedMemory = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "added_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "added_total"),
|
||||||
"This counter represents memory in MB added to the VM",
|
"This counter represents memory in MB added to the VM",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmMemoryAveragePressure = prometheus.NewDesc(
|
c.vmMemoryAveragePressure = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "pressure_average"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "pressure_average"),
|
||||||
"This gauge represents the average pressure in the VM.",
|
"This gauge represents the average pressure in the VM.",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmMemoryCurrentPressure = prometheus.NewDesc(
|
c.vmMemoryCurrentPressure = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "pressure_current"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "pressure_current"),
|
||||||
"This gauge represents the current pressure in the VM.",
|
"This gauge represents the current pressure in the VM.",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmMemoryGuestVisiblePhysicalMemory = prometheus.NewDesc(
|
c.vmMemoryGuestVisiblePhysicalMemory = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "physical_guest_visible"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "physical_guest_visible"),
|
||||||
"'This gauge represents the amount of memory in MB visible to the VM guest.'",
|
"'This gauge represents the amount of memory in MB visible to the VM guest.'",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmMemoryMaximumPressure = prometheus.NewDesc(
|
c.vmMemoryMaximumPressure = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "pressure_maximum"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "pressure_maximum"),
|
||||||
"This gauge represents the maximum pressure band in the VM.",
|
"This gauge represents the maximum pressure band in the VM.",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmMemoryMemoryAddOperations = prometheus.NewDesc(
|
c.vmMemoryMemoryAddOperations = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "add_operations_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "add_operations_total"),
|
||||||
"This counter represents the number of operations adding memory to the VM.",
|
"This counter represents the number of operations adding memory to the VM.",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmMemoryMemoryRemoveOperations = prometheus.NewDesc(
|
c.vmMemoryMemoryRemoveOperations = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "remove_operations_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "remove_operations_total"),
|
||||||
"This counter represents the number of operations removing memory from the VM.",
|
"This counter represents the number of operations removing memory from the VM.",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmMemoryMinimumPressure = prometheus.NewDesc(
|
c.vmMemoryMinimumPressure = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "pressure_minimum"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "pressure_minimum"),
|
||||||
"This gauge represents the minimum pressure band in the VM.",
|
"This gauge represents the minimum pressure band in the VM.",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmMemoryPhysicalMemory = prometheus.NewDesc(
|
c.vmMemoryPhysicalMemory = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "physical"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "physical"),
|
||||||
"This gauge represents the current amount of memory in MB assigned to the VM.",
|
"This gauge represents the current amount of memory in MB assigned to the VM.",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.vmMemoryRemovedMemory = prometheus.NewDesc(
|
c.vmMemoryRemovedMemory = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, buildSubsystemName("vm_memory"), "removed_total"),
|
prometheus.BuildFQName(types.Namespace, buildSubsystemName("vm_memory"), "removed_total"),
|
||||||
"This counter represents memory in MB removed from the VM",
|
"This counter represents memory in MB removed from the VM",
|
||||||
[]string{"vm"},
|
[]string{"vm"},
|
||||||
nil,
|
nil,
|
||||||
@@ -755,7 +755,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectVmHealth(ch); err != nil {
|
if err := c.collectVmHealth(ch); err != nil {
|
||||||
logger.Error("failed collecting hyperV health status metrics",
|
logger.Error("failed collecting hyperV health status metrics",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
"golang.org/x/sys/windows/registry"
|
"golang.org/x/sys/windows/registry"
|
||||||
@@ -27,10 +27,10 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConfigDefaults = Config{
|
var ConfigDefaults = Config{
|
||||||
SiteInclude: types2.RegExpAny,
|
SiteInclude: types.RegExpAny,
|
||||||
SiteExclude: types2.RegExpEmpty,
|
SiteExclude: types.RegExpEmpty,
|
||||||
AppInclude: types2.RegExpAny,
|
AppInclude: types.RegExpAny,
|
||||||
AppExclude: types2.RegExpEmpty,
|
AppExclude: types.RegExpEmpty,
|
||||||
}
|
}
|
||||||
|
|
||||||
type Collector struct {
|
type Collector struct {
|
||||||
@@ -268,7 +268,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
c.iisVersion = getIISVersion(logger)
|
c.iisVersion = getIISVersion(logger)
|
||||||
|
|
||||||
c.info = prometheus.NewDesc(
|
c.info = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "info"),
|
prometheus.BuildFQName(types.Namespace, Name, "info"),
|
||||||
"ISS information",
|
"ISS information",
|
||||||
[]string{},
|
[]string{},
|
||||||
prometheus.Labels{
|
prometheus.Labels{
|
||||||
@@ -278,133 +278,133 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Web Service
|
// Web Service
|
||||||
c.currentAnonymousUsers = prometheus.NewDesc(
|
c.currentAnonymousUsers = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_anonymous_users"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_anonymous_users"),
|
||||||
"Number of users who currently have an anonymous connection using the Web service (WebService.CurrentAnonymousUsers)",
|
"Number of users who currently have an anonymous connection using the Web service (WebService.CurrentAnonymousUsers)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentBlockedAsyncIORequests = prometheus.NewDesc(
|
c.currentBlockedAsyncIORequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_blocked_async_io_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_blocked_async_io_requests"),
|
||||||
"Current requests temporarily blocked due to bandwidth throttling settings (WebService.CurrentBlockedAsyncIORequests)",
|
"Current requests temporarily blocked due to bandwidth throttling settings (WebService.CurrentBlockedAsyncIORequests)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentCGIRequests = prometheus.NewDesc(
|
c.currentCGIRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_cgi_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_cgi_requests"),
|
||||||
"Current number of CGI requests being simultaneously processed by the Web service (WebService.CurrentCGIRequests)",
|
"Current number of CGI requests being simultaneously processed by the Web service (WebService.CurrentCGIRequests)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentConnections = prometheus.NewDesc(
|
c.currentConnections = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_connections"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_connections"),
|
||||||
"Current number of connections established with the Web service (WebService.CurrentConnections)",
|
"Current number of connections established with the Web service (WebService.CurrentConnections)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentISAPIExtensionRequests = prometheus.NewDesc(
|
c.currentISAPIExtensionRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_isapi_extension_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_isapi_extension_requests"),
|
||||||
"Current number of ISAPI requests being simultaneously processed by the Web service (WebService.CurrentISAPIExtensionRequests)",
|
"Current number of ISAPI requests being simultaneously processed by the Web service (WebService.CurrentISAPIExtensionRequests)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentNonAnonymousUsers = prometheus.NewDesc(
|
c.currentNonAnonymousUsers = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_non_anonymous_users"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_non_anonymous_users"),
|
||||||
"Number of users who currently have a non-anonymous connection using the Web service (WebService.CurrentNonAnonymousUsers)",
|
"Number of users who currently have a non-anonymous connection using the Web service (WebService.CurrentNonAnonymousUsers)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceUptime = prometheus.NewDesc(
|
c.serviceUptime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "service_uptime"),
|
prometheus.BuildFQName(types.Namespace, Name, "service_uptime"),
|
||||||
"Number of seconds the WebService is up (WebService.ServiceUptime)",
|
"Number of seconds the WebService is up (WebService.ServiceUptime)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalBytesReceived = prometheus.NewDesc(
|
c.totalBytesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "received_bytes_total"),
|
||||||
"Number of data bytes that have been received by the Web service (WebService.TotalBytesReceived)",
|
"Number of data bytes that have been received by the Web service (WebService.TotalBytesReceived)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalBytesSent = prometheus.NewDesc(
|
c.totalBytesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "sent_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "sent_bytes_total"),
|
||||||
"Number of data bytes that have been sent by the Web service (WebService.TotalBytesSent)",
|
"Number of data bytes that have been sent by the Web service (WebService.TotalBytesSent)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalAnonymousUsers = prometheus.NewDesc(
|
c.totalAnonymousUsers = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "anonymous_users_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "anonymous_users_total"),
|
||||||
"Total number of users who established an anonymous connection with the Web service (WebService.TotalAnonymousUsers)",
|
"Total number of users who established an anonymous connection with the Web service (WebService.TotalAnonymousUsers)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalBlockedAsyncIORequests = prometheus.NewDesc(
|
c.totalBlockedAsyncIORequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "blocked_async_io_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "blocked_async_io_requests_total"),
|
||||||
"Total requests temporarily blocked due to bandwidth throttling settings (WebService.TotalBlockedAsyncIORequests)",
|
"Total requests temporarily blocked due to bandwidth throttling settings (WebService.TotalBlockedAsyncIORequests)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalCGIRequests = prometheus.NewDesc(
|
c.totalCGIRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cgi_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cgi_requests_total"),
|
||||||
"Total CGI requests is the total number of CGI requests (WebService.TotalCGIRequests)",
|
"Total CGI requests is the total number of CGI requests (WebService.TotalCGIRequests)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalConnectionAttemptsAllInstances = prometheus.NewDesc(
|
c.totalConnectionAttemptsAllInstances = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_attempts_all_instances_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_attempts_all_instances_total"),
|
||||||
"Number of connections that have been attempted using the Web service (WebService.TotalConnectionAttemptsAllInstances)",
|
"Number of connections that have been attempted using the Web service (WebService.TotalConnectionAttemptsAllInstances)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalRequests = prometheus.NewDesc(
|
c.totalRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "requests_total"),
|
||||||
"Number of HTTP requests (WebService.TotalRequests)",
|
"Number of HTTP requests (WebService.TotalRequests)",
|
||||||
[]string{"site", "method"},
|
[]string{"site", "method"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalFilesReceived = prometheus.NewDesc(
|
c.totalFilesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "files_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "files_received_total"),
|
||||||
"Number of files received by the Web service (WebService.TotalFilesReceived)",
|
"Number of files received by the Web service (WebService.TotalFilesReceived)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalFilesSent = prometheus.NewDesc(
|
c.totalFilesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "files_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "files_sent_total"),
|
||||||
"Number of files sent by the Web service (WebService.TotalFilesSent)",
|
"Number of files sent by the Web service (WebService.TotalFilesSent)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalISAPIExtensionRequests = prometheus.NewDesc(
|
c.totalISAPIExtensionRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ipapi_extension_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ipapi_extension_requests_total"),
|
||||||
"ISAPI Extension Requests received (WebService.TotalISAPIExtensionRequests)",
|
"ISAPI Extension Requests received (WebService.TotalISAPIExtensionRequests)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalLockedErrors = prometheus.NewDesc(
|
c.totalLockedErrors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "locked_errors_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "locked_errors_total"),
|
||||||
"Number of requests that couldn't be satisfied by the server because the requested resource was locked (WebService.TotalLockedErrors)",
|
"Number of requests that couldn't be satisfied by the server because the requested resource was locked (WebService.TotalLockedErrors)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalLogonAttempts = prometheus.NewDesc(
|
c.totalLogonAttempts = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "logon_attempts_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "logon_attempts_total"),
|
||||||
"Number of logons attempts to the Web Service (WebService.TotalLogonAttempts)",
|
"Number of logons attempts to the Web Service (WebService.TotalLogonAttempts)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalNonAnonymousUsers = prometheus.NewDesc(
|
c.totalNonAnonymousUsers = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "non_anonymous_users_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "non_anonymous_users_total"),
|
||||||
"Number of users who established a non-anonymous connection with the Web service (WebService.TotalNonAnonymousUsers)",
|
"Number of users who established a non-anonymous connection with the Web service (WebService.TotalNonAnonymousUsers)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalNotFoundErrors = prometheus.NewDesc(
|
c.totalNotFoundErrors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "not_found_errors_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "not_found_errors_total"),
|
||||||
"Number of requests that couldn't be satisfied by the server because the requested document could not be found (WebService.TotalNotFoundErrors)",
|
"Number of requests that couldn't be satisfied by the server because the requested document could not be found (WebService.TotalNotFoundErrors)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalRejectedAsyncIORequests = prometheus.NewDesc(
|
c.totalRejectedAsyncIORequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rejected_async_io_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "rejected_async_io_requests_total"),
|
||||||
"Requests rejected due to bandwidth throttling settings (WebService.TotalRejectedAsyncIORequests)",
|
"Requests rejected due to bandwidth throttling settings (WebService.TotalRejectedAsyncIORequests)",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
@@ -412,79 +412,79 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// APP_POOL_WAS
|
// APP_POOL_WAS
|
||||||
c.currentApplicationPoolState = prometheus.NewDesc(
|
c.currentApplicationPoolState = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_application_pool_state"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_application_pool_state"),
|
||||||
"The current status of the application pool (1 - Uninitialized, 2 - Initialized, 3 - Running, 4 - Disabling, 5 - Disabled, 6 - Shutdown Pending, 7 - Delete Pending) (CurrentApplicationPoolState)",
|
"The current status of the application pool (1 - Uninitialized, 2 - Initialized, 3 - Running, 4 - Disabling, 5 - Disabled, 6 - Shutdown Pending, 7 - Delete Pending) (CurrentApplicationPoolState)",
|
||||||
[]string{"app", "state"},
|
[]string{"app", "state"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentApplicationPoolUptime = prometheus.NewDesc(
|
c.currentApplicationPoolUptime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_application_pool_start_time"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_application_pool_start_time"),
|
||||||
"The unix timestamp for the application pool start time (CurrentApplicationPoolUptime)",
|
"The unix timestamp for the application pool start time (CurrentApplicationPoolUptime)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentWorkerProcesses = prometheus.NewDesc(
|
c.currentWorkerProcesses = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_worker_processes"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_worker_processes"),
|
||||||
"The current number of worker processes that are running in the application pool (CurrentWorkerProcesses)",
|
"The current number of worker processes that are running in the application pool (CurrentWorkerProcesses)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.maximumWorkerProcesses = prometheus.NewDesc(
|
c.maximumWorkerProcesses = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "maximum_worker_processes"),
|
prometheus.BuildFQName(types.Namespace, Name, "maximum_worker_processes"),
|
||||||
"The maximum number of worker processes that have been created for the application pool since Windows Process Activation Service (WAS) started (MaximumWorkerProcesses)",
|
"The maximum number of worker processes that have been created for the application pool since Windows Process Activation Service (WAS) started (MaximumWorkerProcesses)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.recentWorkerProcessFailures = prometheus.NewDesc(
|
c.recentWorkerProcessFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "recent_worker_process_failures"),
|
prometheus.BuildFQName(types.Namespace, Name, "recent_worker_process_failures"),
|
||||||
"The number of times that worker processes for the application pool failed during the rapid-fail protection interval (RecentWorkerProcessFailures)",
|
"The number of times that worker processes for the application pool failed during the rapid-fail protection interval (RecentWorkerProcessFailures)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.timeSinceLastWorkerProcessFailure = prometheus.NewDesc(
|
c.timeSinceLastWorkerProcessFailure = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "time_since_last_worker_process_failure"),
|
prometheus.BuildFQName(types.Namespace, Name, "time_since_last_worker_process_failure"),
|
||||||
"The length of time, in seconds, since the last worker process failure occurred for the application pool (TimeSinceLastWorkerProcessFailure)",
|
"The length of time, in seconds, since the last worker process failure occurred for the application pool (TimeSinceLastWorkerProcessFailure)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalApplicationPoolRecycles = prometheus.NewDesc(
|
c.totalApplicationPoolRecycles = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "total_application_pool_recycles"),
|
prometheus.BuildFQName(types.Namespace, Name, "total_application_pool_recycles"),
|
||||||
"The number of times that the application pool has been recycled since Windows Process Activation Service (WAS) started (TotalApplicationPoolRecycles)",
|
"The number of times that the application pool has been recycled since Windows Process Activation Service (WAS) started (TotalApplicationPoolRecycles)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalApplicationPoolUptime = prometheus.NewDesc(
|
c.totalApplicationPoolUptime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "total_application_pool_start_time"),
|
prometheus.BuildFQName(types.Namespace, Name, "total_application_pool_start_time"),
|
||||||
"The unix timestamp for the application pool of when the Windows Process Activation Service (WAS) started (TotalApplicationPoolUptime)",
|
"The unix timestamp for the application pool of when the Windows Process Activation Service (WAS) started (TotalApplicationPoolUptime)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalWorkerProcessesCreated = prometheus.NewDesc(
|
c.totalWorkerProcessesCreated = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "total_worker_processes_created"),
|
prometheus.BuildFQName(types.Namespace, Name, "total_worker_processes_created"),
|
||||||
"The number of worker processes created for the application pool since Windows Process Activation Service (WAS) started (TotalWorkerProcessesCreated)",
|
"The number of worker processes created for the application pool since Windows Process Activation Service (WAS) started (TotalWorkerProcessesCreated)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalWorkerProcessFailures = prometheus.NewDesc(
|
c.totalWorkerProcessFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "total_worker_process_failures"),
|
prometheus.BuildFQName(types.Namespace, Name, "total_worker_process_failures"),
|
||||||
"The number of times that worker processes have crashed since the application pool was started (TotalWorkerProcessFailures)",
|
"The number of times that worker processes have crashed since the application pool was started (TotalWorkerProcessFailures)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalWorkerProcessPingFailures = prometheus.NewDesc(
|
c.totalWorkerProcessPingFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "total_worker_process_ping_failures"),
|
prometheus.BuildFQName(types.Namespace, Name, "total_worker_process_ping_failures"),
|
||||||
"The number of times that Windows Process Activation Service (WAS) did not receive a response to ping messages sent to a worker process (TotalWorkerProcessPingFailures)",
|
"The number of times that Windows Process Activation Service (WAS) did not receive a response to ping messages sent to a worker process (TotalWorkerProcessPingFailures)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalWorkerProcessShutdownFailures = prometheus.NewDesc(
|
c.totalWorkerProcessShutdownFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "total_worker_process_shutdown_failures"),
|
prometheus.BuildFQName(types.Namespace, Name, "total_worker_process_shutdown_failures"),
|
||||||
"The number of times that Windows Process Activation Service (WAS) failed to shut down a worker process (TotalWorkerProcessShutdownFailures)",
|
"The number of times that Windows Process Activation Service (WAS) failed to shut down a worker process (TotalWorkerProcessShutdownFailures)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalWorkerProcessStartupFailures = prometheus.NewDesc(
|
c.totalWorkerProcessStartupFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "total_worker_process_startup_failures"),
|
prometheus.BuildFQName(types.Namespace, Name, "total_worker_process_startup_failures"),
|
||||||
"The number of times that Windows Process Activation Service (WAS) failed to start a worker process (TotalWorkerProcessStartupFailures)",
|
"The number of times that Windows Process Activation Service (WAS) failed to start a worker process (TotalWorkerProcessStartupFailures)",
|
||||||
[]string{"app"},
|
[]string{"app"},
|
||||||
nil,
|
nil,
|
||||||
@@ -492,224 +492,224 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// W3SVC_W3WP
|
// W3SVC_W3WP
|
||||||
c.threads = prometheus.NewDesc(
|
c.threads = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_threads"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_threads"),
|
||||||
"Number of threads actively processing requests in the worker process",
|
"Number of threads actively processing requests in the worker process",
|
||||||
[]string{"app", "pid", "state"},
|
[]string{"app", "pid", "state"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.maximumThreads = prometheus.NewDesc(
|
c.maximumThreads = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_max_threads"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_max_threads"),
|
||||||
"Maximum number of threads to which the thread pool can grow as needed",
|
"Maximum number of threads to which the thread pool can grow as needed",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.requestsTotal = prometheus.NewDesc(
|
c.requestsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_requests_total"),
|
||||||
"Total number of HTTP requests served by the worker process",
|
"Total number of HTTP requests served by the worker process",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.requestsActive = prometheus.NewDesc(
|
c.requestsActive = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_current_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_current_requests"),
|
||||||
"Current number of requests being processed by the worker process",
|
"Current number of requests being processed by the worker process",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.activeFlushedEntries = prometheus.NewDesc(
|
c.activeFlushedEntries = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_cache_active_flushed_entries"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_cache_active_flushed_entries"),
|
||||||
"Number of file handles cached in user-mode that will be closed when all current transfers complete.",
|
"Number of file handles cached in user-mode that will be closed when all current transfers complete.",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentFileCacheMemoryUsage = prometheus.NewDesc(
|
c.currentFileCacheMemoryUsage = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_file_cache_memory_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_file_cache_memory_bytes"),
|
||||||
"Current number of bytes used by user-mode file cache",
|
"Current number of bytes used by user-mode file cache",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.maximumFileCacheMemoryUsage = prometheus.NewDesc(
|
c.maximumFileCacheMemoryUsage = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_file_cache_max_memory_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_file_cache_max_memory_bytes"),
|
||||||
"Maximum number of bytes used by user-mode file cache",
|
"Maximum number of bytes used by user-mode file cache",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.fileCacheFlushesTotal = prometheus.NewDesc(
|
c.fileCacheFlushesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_file_cache_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_file_cache_flushes_total"),
|
||||||
"Total number of files removed from the user-mode cache",
|
"Total number of files removed from the user-mode cache",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.fileCacheQueriesTotal = prometheus.NewDesc(
|
c.fileCacheQueriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_file_cache_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_file_cache_queries_total"),
|
||||||
"Total file cache queries (hits + misses)",
|
"Total file cache queries (hits + misses)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.fileCacheHitsTotal = prometheus.NewDesc(
|
c.fileCacheHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_file_cache_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_file_cache_hits_total"),
|
||||||
"Total number of successful lookups in the user-mode file cache",
|
"Total number of successful lookups in the user-mode file cache",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.filesCached = prometheus.NewDesc(
|
c.filesCached = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_file_cache_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_file_cache_items"),
|
||||||
"Current number of files whose contents are present in user-mode cache",
|
"Current number of files whose contents are present in user-mode cache",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.filesCachedTotal = prometheus.NewDesc(
|
c.filesCachedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_file_cache_items_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_file_cache_items_total"),
|
||||||
"Total number of files whose contents were ever added to the user-mode cache (since service startup)",
|
"Total number of files whose contents were ever added to the user-mode cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.filesFlushedTotal = prometheus.NewDesc(
|
c.filesFlushedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_file_cache_items_flushed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_file_cache_items_flushed_total"),
|
||||||
"Total number of file handles that have been removed from the user-mode cache (since service startup)",
|
"Total number of file handles that have been removed from the user-mode cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.uriCacheFlushesTotal = prometheus.NewDesc(
|
c.uriCacheFlushesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_uri_cache_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_uri_cache_flushes_total"),
|
||||||
"Total number of URI cache flushes (since service startup)",
|
"Total number of URI cache flushes (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.uriCacheQueriesTotal = prometheus.NewDesc(
|
c.uriCacheQueriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_uri_cache_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_uri_cache_queries_total"),
|
||||||
"Total number of uri cache queries (hits + misses)",
|
"Total number of uri cache queries (hits + misses)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.uriCacheHitsTotal = prometheus.NewDesc(
|
c.uriCacheHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_uri_cache_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_uri_cache_hits_total"),
|
||||||
"Total number of successful lookups in the user-mode URI cache (since service startup)",
|
"Total number of successful lookups in the user-mode URI cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.urisCached = prometheus.NewDesc(
|
c.urisCached = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_uri_cache_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_uri_cache_items"),
|
||||||
"Number of URI information blocks currently in the user-mode cache",
|
"Number of URI information blocks currently in the user-mode cache",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.urisCachedTotal = prometheus.NewDesc(
|
c.urisCachedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_uri_cache_items_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_uri_cache_items_total"),
|
||||||
"Total number of URI information blocks added to the user-mode cache (since service startup)",
|
"Total number of URI information blocks added to the user-mode cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.urisFlushedTotal = prometheus.NewDesc(
|
c.urisFlushedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_uri_cache_items_flushed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_uri_cache_items_flushed_total"),
|
||||||
"The number of URI information blocks that have been removed from the user-mode cache (since service startup)",
|
"The number of URI information blocks that have been removed from the user-mode cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.metadataCached = prometheus.NewDesc(
|
c.metadataCached = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_metadata_cache_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_metadata_cache_items"),
|
||||||
"Number of metadata information blocks currently present in user-mode cache",
|
"Number of metadata information blocks currently present in user-mode cache",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.metadataCacheFlushes = prometheus.NewDesc(
|
c.metadataCacheFlushes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_metadata_cache_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_metadata_cache_flushes_total"),
|
||||||
"Total number of user-mode metadata cache flushes (since service startup)",
|
"Total number of user-mode metadata cache flushes (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.metadataCacheQueriesTotal = prometheus.NewDesc(
|
c.metadataCacheQueriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_metadata_cache_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_metadata_cache_queries_total"),
|
||||||
"Total metadata cache queries (hits + misses)",
|
"Total metadata cache queries (hits + misses)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.metadataCacheHitsTotal = prometheus.NewDesc(
|
c.metadataCacheHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_metadata_cache_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_metadata_cache_hits_total"),
|
||||||
"Total number of successful lookups in the user-mode metadata cache (since service startup)",
|
"Total number of successful lookups in the user-mode metadata cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.metadataCachedTotal = prometheus.NewDesc(
|
c.metadataCachedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_metadata_cache_items_cached_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_metadata_cache_items_cached_total"),
|
||||||
"Total number of metadata information blocks added to the user-mode cache (since service startup)",
|
"Total number of metadata information blocks added to the user-mode cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.metadataFlushedTotal = prometheus.NewDesc(
|
c.metadataFlushedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_metadata_cache_items_flushed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_metadata_cache_items_flushed_total"),
|
||||||
"Total number of metadata information blocks removed from the user-mode cache (since service startup)",
|
"Total number of metadata information blocks removed from the user-mode cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outputCacheActiveFlushedItems = prometheus.NewDesc(
|
c.outputCacheActiveFlushedItems = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_output_cache_active_flushed_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_output_cache_active_flushed_items"),
|
||||||
"",
|
"",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outputCacheItems = prometheus.NewDesc(
|
c.outputCacheItems = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_output_cache_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_output_cache_items"),
|
||||||
"Number of items current present in output cache",
|
"Number of items current present in output cache",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outputCacheMemoryUsage = prometheus.NewDesc(
|
c.outputCacheMemoryUsage = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_output_cache_memory_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_output_cache_memory_bytes"),
|
||||||
"Current number of bytes used by output cache",
|
"Current number of bytes used by output cache",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outputCacheQueriesTotal = prometheus.NewDesc(
|
c.outputCacheQueriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_output_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_output_queries_total"),
|
||||||
"Total number of output cache queries (hits + misses)",
|
"Total number of output cache queries (hits + misses)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outputCacheHitsTotal = prometheus.NewDesc(
|
c.outputCacheHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_output_cache_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_output_cache_hits_total"),
|
||||||
"Total number of successful lookups in output cache (since service startup)",
|
"Total number of successful lookups in output cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outputCacheFlushedItemsTotal = prometheus.NewDesc(
|
c.outputCacheFlushedItemsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_output_cache_items_flushed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_output_cache_items_flushed_total"),
|
||||||
"Total number of items flushed from output cache (since service startup)",
|
"Total number of items flushed from output cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outputCacheFlushesTotal = prometheus.NewDesc(
|
c.outputCacheFlushesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_output_cache_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_output_cache_flushes_total"),
|
||||||
"Total number of flushes of output cache (since service startup)",
|
"Total number of flushes of output cache (since service startup)",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
// W3SVC_W3WP_IIS8
|
// W3SVC_W3WP_IIS8
|
||||||
c.requestErrorsTotal = prometheus.NewDesc(
|
c.requestErrorsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_request_errors_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_request_errors_total"),
|
||||||
"Total number of requests that returned an error",
|
"Total number of requests that returned an error",
|
||||||
[]string{"app", "pid", "status_code"},
|
[]string{"app", "pid", "status_code"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.webSocketRequestsActive = prometheus.NewDesc(
|
c.webSocketRequestsActive = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_current_websocket_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_current_websocket_requests"),
|
||||||
"",
|
"",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.webSocketConnectionAttempts = prometheus.NewDesc(
|
c.webSocketConnectionAttempts = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_websocket_connection_attempts_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_websocket_connection_attempts_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.webSocketConnectionsAccepted = prometheus.NewDesc(
|
c.webSocketConnectionsAccepted = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_websocket_connection_accepted_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_websocket_connection_accepted_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.webSocketConnectionsRejected = prometheus.NewDesc(
|
c.webSocketConnectionsRejected = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "worker_websocket_connection_rejected_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "worker_websocket_connection_rejected_total"),
|
||||||
"",
|
"",
|
||||||
[]string{"app", "pid"},
|
[]string{"app", "pid"},
|
||||||
nil,
|
nil,
|
||||||
@@ -717,169 +717,169 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Web Service Cache
|
// Web Service Cache
|
||||||
c.serviceCacheActiveFlushedEntries = prometheus.NewDesc(
|
c.serviceCacheActiveFlushedEntries = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_cache_active_flushed_entries"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_cache_active_flushed_entries"),
|
||||||
"Number of file handles cached that will be closed when all current transfers complete.",
|
"Number of file handles cached that will be closed when all current transfers complete.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheCurrentFileCacheMemoryUsage = prometheus.NewDesc(
|
c.serviceCacheCurrentFileCacheMemoryUsage = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_file_cache_memory_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_file_cache_memory_bytes"),
|
||||||
"Current number of bytes used by file cache",
|
"Current number of bytes used by file cache",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheMaximumFileCacheMemoryUsage = prometheus.NewDesc(
|
c.serviceCacheMaximumFileCacheMemoryUsage = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_file_cache_max_memory_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_file_cache_max_memory_bytes"),
|
||||||
"Maximum number of bytes used by file cache",
|
"Maximum number of bytes used by file cache",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheFileCacheFlushesTotal = prometheus.NewDesc(
|
c.serviceCacheFileCacheFlushesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_file_cache_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_file_cache_flushes_total"),
|
||||||
"Total number of file cache flushes (since service startup)",
|
"Total number of file cache flushes (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheFileCacheQueriesTotal = prometheus.NewDesc(
|
c.serviceCacheFileCacheQueriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_file_cache_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_file_cache_queries_total"),
|
||||||
"Total number of file cache queries (hits + misses)",
|
"Total number of file cache queries (hits + misses)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheFileCacheHitsTotal = prometheus.NewDesc(
|
c.serviceCacheFileCacheHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_file_cache_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_file_cache_hits_total"),
|
||||||
"Total number of successful lookups in the user-mode file cache",
|
"Total number of successful lookups in the user-mode file cache",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheFilesCached = prometheus.NewDesc(
|
c.serviceCacheFilesCached = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_file_cache_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_file_cache_items"),
|
||||||
"Current number of files whose contents are present in cache",
|
"Current number of files whose contents are present in cache",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheFilesCachedTotal = prometheus.NewDesc(
|
c.serviceCacheFilesCachedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_file_cache_items_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_file_cache_items_total"),
|
||||||
"Total number of files whose contents were ever added to the cache (since service startup)",
|
"Total number of files whose contents were ever added to the cache (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheFilesFlushedTotal = prometheus.NewDesc(
|
c.serviceCacheFilesFlushedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_file_cache_items_flushed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_file_cache_items_flushed_total"),
|
||||||
"Total number of file handles that have been removed from the cache (since service startup)",
|
"Total number of file handles that have been removed from the cache (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheURICacheFlushesTotal = prometheus.NewDesc(
|
c.serviceCacheURICacheFlushesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_uri_cache_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_uri_cache_flushes_total"),
|
||||||
"Total number of URI cache flushes (since service startup)",
|
"Total number of URI cache flushes (since service startup)",
|
||||||
[]string{"mode"},
|
[]string{"mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheURICacheQueriesTotal = prometheus.NewDesc(
|
c.serviceCacheURICacheQueriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_uri_cache_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_uri_cache_queries_total"),
|
||||||
"Total number of uri cache queries (hits + misses)",
|
"Total number of uri cache queries (hits + misses)",
|
||||||
[]string{"mode"},
|
[]string{"mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheURICacheHitsTotal = prometheus.NewDesc(
|
c.serviceCacheURICacheHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_uri_cache_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_uri_cache_hits_total"),
|
||||||
"Total number of successful lookups in the URI cache (since service startup)",
|
"Total number of successful lookups in the URI cache (since service startup)",
|
||||||
[]string{"mode"},
|
[]string{"mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheURIsCached = prometheus.NewDesc(
|
c.serviceCacheURIsCached = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_uri_cache_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_uri_cache_items"),
|
||||||
"Number of URI information blocks currently in the cache",
|
"Number of URI information blocks currently in the cache",
|
||||||
[]string{"mode"},
|
[]string{"mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheURIsCachedTotal = prometheus.NewDesc(
|
c.serviceCacheURIsCachedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_uri_cache_items_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_uri_cache_items_total"),
|
||||||
"Total number of URI information blocks added to the cache (since service startup)",
|
"Total number of URI information blocks added to the cache (since service startup)",
|
||||||
[]string{"mode"},
|
[]string{"mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheURIsFlushedTotal = prometheus.NewDesc(
|
c.serviceCacheURIsFlushedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_uri_cache_items_flushed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_uri_cache_items_flushed_total"),
|
||||||
"The number of URI information blocks that have been removed from the cache (since service startup)",
|
"The number of URI information blocks that have been removed from the cache (since service startup)",
|
||||||
[]string{"mode"},
|
[]string{"mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheMetadataCached = prometheus.NewDesc(
|
c.serviceCacheMetadataCached = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_metadata_cache_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_metadata_cache_items"),
|
||||||
"Number of metadata information blocks currently present in cache",
|
"Number of metadata information blocks currently present in cache",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheMetadataCacheFlushes = prometheus.NewDesc(
|
c.serviceCacheMetadataCacheFlushes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_metadata_cache_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_metadata_cache_flushes_total"),
|
||||||
"Total number of metadata cache flushes (since service startup)",
|
"Total number of metadata cache flushes (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheMetadataCacheQueriesTotal = prometheus.NewDesc(
|
c.serviceCacheMetadataCacheQueriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_metadata_cache_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_metadata_cache_queries_total"),
|
||||||
"Total metadata cache queries (hits + misses)",
|
"Total metadata cache queries (hits + misses)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheMetadataCacheHitsTotal = prometheus.NewDesc(
|
c.serviceCacheMetadataCacheHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_metadata_cache_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_metadata_cache_hits_total"),
|
||||||
"Total number of successful lookups in the metadata cache (since service startup)",
|
"Total number of successful lookups in the metadata cache (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheMetadataCachedTotal = prometheus.NewDesc(
|
c.serviceCacheMetadataCachedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_metadata_cache_items_cached_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_metadata_cache_items_cached_total"),
|
||||||
"Total number of metadata information blocks added to the cache (since service startup)",
|
"Total number of metadata information blocks added to the cache (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheMetadataFlushedTotal = prometheus.NewDesc(
|
c.serviceCacheMetadataFlushedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_metadata_cache_items_flushed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_metadata_cache_items_flushed_total"),
|
||||||
"Total number of metadata information blocks removed from the cache (since service startup)",
|
"Total number of metadata information blocks removed from the cache (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheOutputCacheActiveFlushedItems = prometheus.NewDesc(
|
c.serviceCacheOutputCacheActiveFlushedItems = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_output_cache_active_flushed_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_output_cache_active_flushed_items"),
|
||||||
"",
|
"",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheOutputCacheItems = prometheus.NewDesc(
|
c.serviceCacheOutputCacheItems = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_output_cache_items"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_output_cache_items"),
|
||||||
"Number of items current present in output cache",
|
"Number of items current present in output cache",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheOutputCacheMemoryUsage = prometheus.NewDesc(
|
c.serviceCacheOutputCacheMemoryUsage = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_output_cache_memory_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_output_cache_memory_bytes"),
|
||||||
"Current number of bytes used by output cache",
|
"Current number of bytes used by output cache",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheOutputCacheQueriesTotal = prometheus.NewDesc(
|
c.serviceCacheOutputCacheQueriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_output_cache_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_output_cache_queries_total"),
|
||||||
"Total output cache queries (hits + misses)",
|
"Total output cache queries (hits + misses)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheOutputCacheHitsTotal = prometheus.NewDesc(
|
c.serviceCacheOutputCacheHitsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_output_cache_hits_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_output_cache_hits_total"),
|
||||||
"Total number of successful lookups in output cache (since service startup)",
|
"Total number of successful lookups in output cache (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheOutputCacheFlushedItemsTotal = prometheus.NewDesc(
|
c.serviceCacheOutputCacheFlushedItemsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_output_cache_items_flushed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_output_cache_items_flushed_total"),
|
||||||
"Total number of items flushed from output cache (since service startup)",
|
"Total number of items flushed from output cache (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serviceCacheOutputCacheFlushesTotal = prometheus.NewDesc(
|
c.serviceCacheOutputCacheFlushesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "server_output_cache_flushes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "server_output_cache_flushes_total"),
|
||||||
"Total number of flushes of output cache (since service startup)",
|
"Total number of flushes of output cache (since service startup)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -940,7 +940,7 @@ func getIISVersion(logger *slog.Logger) simpleVersion {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectWebService(ctx, logger, ch); err != nil {
|
if err := c.collectWebService(ctx, logger, ch); err != nil {
|
||||||
logger.Error("failed collecting iis metrics",
|
logger.Error("failed collecting iis metrics",
|
||||||
@@ -1068,7 +1068,7 @@ func dedupIISNames[V hasGetIISName](services []V) map[string]V {
|
|||||||
return webServiceDeDuplicated
|
return webServiceDeDuplicated
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectWebService(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectWebService(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var webService []perflibWebService
|
var webService []perflibWebService
|
||||||
@@ -1363,7 +1363,7 @@ var applicationStates = map[uint32]string{
|
|||||||
7: "Delete Pending",
|
7: "Delete Pending",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectAPP_POOL_WAS(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectAPP_POOL_WAS(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var APP_POOL_WAS []perflibAPP_POOL_WAS
|
var APP_POOL_WAS []perflibAPP_POOL_WAS
|
||||||
@@ -1543,7 +1543,7 @@ type perflibW3SVC_W3WP_IIS8 struct {
|
|||||||
WebSocketConnectionsRejected float64 `perflib:"WebSocket Connections Rejected / Sec"`
|
WebSocketConnectionsRejected float64 `perflib:"WebSocket Connections Rejected / Sec"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectW3SVC_W3WP(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectW3SVC_W3WP(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var W3SVC_W3WP []perflibW3SVC_W3WP
|
var W3SVC_W3WP []perflibW3SVC_W3WP
|
||||||
@@ -1945,7 +1945,7 @@ type perflibWebServiceCache struct {
|
|||||||
ServiceCache_OutputCacheQueriesTotal float64
|
ServiceCache_OutputCacheQueriesTotal float64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectWebServiceCache(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectWebServiceCache(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var WebServiceCache []perflibWebServiceCache
|
var WebServiceCache []perflibWebServiceCache
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/headers/slc"
|
"github.com/prometheus-community/windows_exporter/internal/headers/slc"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -63,7 +63,7 @@ func (c *Collector) Close(_ *slog.Logger) error {
|
|||||||
|
|
||||||
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
||||||
c.licenseStatus = prometheus.NewDesc(
|
c.licenseStatus = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "status"),
|
prometheus.BuildFQName(types.Namespace, Name, "status"),
|
||||||
"Status of windows license",
|
"Status of windows license",
|
||||||
[]string{"state"},
|
[]string{"state"},
|
||||||
nil,
|
nil,
|
||||||
@@ -74,7 +74,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting license metrics",
|
logger.Error("failed collecting license metrics",
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
@@ -27,8 +27,8 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConfigDefaults = Config{
|
var ConfigDefaults = Config{
|
||||||
VolumeInclude: types2.RegExpAny,
|
VolumeInclude: types.RegExpAny,
|
||||||
VolumeExclude: types2.RegExpEmpty,
|
VolumeExclude: types.RegExpEmpty,
|
||||||
}
|
}
|
||||||
|
|
||||||
// A Collector is a Prometheus Collector for perflib logicalDisk metrics.
|
// A Collector is a Prometheus Collector for perflib logicalDisk metrics.
|
||||||
@@ -133,124 +133,124 @@ func (c *Collector) Close(_ *slog.Logger) error {
|
|||||||
|
|
||||||
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
||||||
c.information = prometheus.NewDesc(
|
c.information = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "info"),
|
prometheus.BuildFQName(types.Namespace, Name, "info"),
|
||||||
"A metric with a constant '1' value labeled with logical disk information",
|
"A metric with a constant '1' value labeled with logical disk information",
|
||||||
[]string{"disk", "type", "volume", "volume_name", "filesystem", "serial_number"},
|
[]string{"disk", "type", "volume", "volume_name", "filesystem", "serial_number"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.readOnly = prometheus.NewDesc(
|
c.readOnly = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "readonly"),
|
prometheus.BuildFQName(types.Namespace, Name, "readonly"),
|
||||||
"Whether the logical disk is read-only",
|
"Whether the logical disk is read-only",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.requestsQueued = prometheus.NewDesc(
|
c.requestsQueued = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "requests_queued"),
|
prometheus.BuildFQName(types.Namespace, Name, "requests_queued"),
|
||||||
"The number of requests queued to the disk (LogicalDisk.CurrentDiskQueueLength)",
|
"The number of requests queued to the disk (LogicalDisk.CurrentDiskQueueLength)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.avgReadQueue = prometheus.NewDesc(
|
c.avgReadQueue = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "avg_read_requests_queued"),
|
prometheus.BuildFQName(types.Namespace, Name, "avg_read_requests_queued"),
|
||||||
"Average number of read requests that were queued for the selected disk during the sample interval (LogicalDisk.AvgDiskReadQueueLength)",
|
"Average number of read requests that were queued for the selected disk during the sample interval (LogicalDisk.AvgDiskReadQueueLength)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.avgWriteQueue = prometheus.NewDesc(
|
c.avgWriteQueue = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "avg_write_requests_queued"),
|
prometheus.BuildFQName(types.Namespace, Name, "avg_write_requests_queued"),
|
||||||
"Average number of write requests that were queued for the selected disk during the sample interval (LogicalDisk.AvgDiskWriteQueueLength)",
|
"Average number of write requests that were queued for the selected disk during the sample interval (LogicalDisk.AvgDiskWriteQueueLength)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readBytesTotal = prometheus.NewDesc(
|
c.readBytesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "read_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "read_bytes_total"),
|
||||||
"The number of bytes transferred from the disk during read operations (LogicalDisk.DiskReadBytesPerSec)",
|
"The number of bytes transferred from the disk during read operations (LogicalDisk.DiskReadBytesPerSec)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readsTotal = prometheus.NewDesc(
|
c.readsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "reads_total"),
|
||||||
"The number of read operations on the disk (LogicalDisk.DiskReadsPerSec)",
|
"The number of read operations on the disk (LogicalDisk.DiskReadsPerSec)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.writeBytesTotal = prometheus.NewDesc(
|
c.writeBytesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "write_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "write_bytes_total"),
|
||||||
"The number of bytes transferred to the disk during write operations (LogicalDisk.DiskWriteBytesPerSec)",
|
"The number of bytes transferred to the disk during write operations (LogicalDisk.DiskWriteBytesPerSec)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.writesTotal = prometheus.NewDesc(
|
c.writesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "writes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "writes_total"),
|
||||||
"The number of write operations on the disk (LogicalDisk.DiskWritesPerSec)",
|
"The number of write operations on the disk (LogicalDisk.DiskWritesPerSec)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readTime = prometheus.NewDesc(
|
c.readTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "read_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "read_seconds_total"),
|
||||||
"Seconds that the disk was busy servicing read requests (LogicalDisk.PercentDiskReadTime)",
|
"Seconds that the disk was busy servicing read requests (LogicalDisk.PercentDiskReadTime)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.writeTime = prometheus.NewDesc(
|
c.writeTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "write_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "write_seconds_total"),
|
||||||
"Seconds that the disk was busy servicing write requests (LogicalDisk.PercentDiskWriteTime)",
|
"Seconds that the disk was busy servicing write requests (LogicalDisk.PercentDiskWriteTime)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.freeSpace = prometheus.NewDesc(
|
c.freeSpace = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "free_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "free_bytes"),
|
||||||
"Free space in bytes, updates every 10-15 min (LogicalDisk.PercentFreeSpace)",
|
"Free space in bytes, updates every 10-15 min (LogicalDisk.PercentFreeSpace)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.totalSpace = prometheus.NewDesc(
|
c.totalSpace = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "size_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "size_bytes"),
|
||||||
"Total space in bytes, updates every 10-15 min (LogicalDisk.PercentFreeSpace_Base)",
|
"Total space in bytes, updates every 10-15 min (LogicalDisk.PercentFreeSpace_Base)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.idleTime = prometheus.NewDesc(
|
c.idleTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "idle_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "idle_seconds_total"),
|
||||||
"Seconds that the disk was idle (LogicalDisk.PercentIdleTime)",
|
"Seconds that the disk was idle (LogicalDisk.PercentIdleTime)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.splitIOs = prometheus.NewDesc(
|
c.splitIOs = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "split_ios_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "split_ios_total"),
|
||||||
"The number of I/Os to the disk were split into multiple I/Os (LogicalDisk.SplitIOPerSec)",
|
"The number of I/Os to the disk were split into multiple I/Os (LogicalDisk.SplitIOPerSec)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readLatency = prometheus.NewDesc(
|
c.readLatency = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "read_latency_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "read_latency_seconds_total"),
|
||||||
"Shows the average time, in seconds, of a read operation from the disk (LogicalDisk.AvgDiskSecPerRead)",
|
"Shows the average time, in seconds, of a read operation from the disk (LogicalDisk.AvgDiskSecPerRead)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.writeLatency = prometheus.NewDesc(
|
c.writeLatency = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "write_latency_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "write_latency_seconds_total"),
|
||||||
"Shows the average time, in seconds, of a write operation to the disk (LogicalDisk.AvgDiskSecPerWrite)",
|
"Shows the average time, in seconds, of a write operation to the disk (LogicalDisk.AvgDiskSecPerWrite)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readWriteLatency = prometheus.NewDesc(
|
c.readWriteLatency = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "read_write_latency_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "read_write_latency_seconds_total"),
|
||||||
"Shows the time, in seconds, of the average disk transfer (LogicalDisk.AvgDiskSecPerTransfer)",
|
"Shows the time, in seconds, of the average disk transfer (LogicalDisk.AvgDiskSecPerTransfer)",
|
||||||
[]string{"volume"},
|
[]string{"volume"},
|
||||||
nil,
|
nil,
|
||||||
@@ -261,7 +261,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ctx, logger, ch); err != nil {
|
if err := c.collect(ctx, logger, ch); err != nil {
|
||||||
logger.Error("failed collecting logical_disk metrics",
|
logger.Error("failed collecting logical_disk metrics",
|
||||||
@@ -297,7 +297,7 @@ type logicalDisk struct {
|
|||||||
AvgDiskSecPerTransfer float64 `perflib:"Avg. Disk sec/Transfer"`
|
AvgDiskSecPerTransfer float64 `perflib:"Avg. Disk sec/Transfer"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -61,7 +61,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
c.logonType = prometheus.NewDesc(
|
c.logonType = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "logon_type"),
|
prometheus.BuildFQName(types.Namespace, Name, "logon_type"),
|
||||||
"Number of active logon sessions (LogonSession.LogonType)",
|
"Number of active logon sessions (LogonSession.LogonType)",
|
||||||
[]string{"status"},
|
[]string{"status"},
|
||||||
nil,
|
nil,
|
||||||
@@ -72,7 +72,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting user metrics",
|
logger.Error("failed collecting user metrics",
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/headers/sysinfoapi"
|
"github.com/prometheus-community/windows_exporter/internal/headers/sysinfoapi"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -98,223 +98,223 @@ func (c *Collector) Close(_ *slog.Logger) error {
|
|||||||
|
|
||||||
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
||||||
c.availableBytes = prometheus.NewDesc(
|
c.availableBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "available_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "available_bytes"),
|
||||||
"The amount of physical memory immediately available for allocation to a process or for system use. It is equal to the sum of memory assigned to"+
|
"The amount of physical memory immediately available for allocation to a process or for system use. It is equal to the sum of memory assigned to"+
|
||||||
" the standby (cached), free and zero page lists (AvailableBytes)",
|
" the standby (cached), free and zero page lists (AvailableBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cacheBytes = prometheus.NewDesc(
|
c.cacheBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cache_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "cache_bytes"),
|
||||||
"(CacheBytes)",
|
"(CacheBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cacheBytesPeak = prometheus.NewDesc(
|
c.cacheBytesPeak = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cache_bytes_peak"),
|
prometheus.BuildFQName(types.Namespace, Name, "cache_bytes_peak"),
|
||||||
"(CacheBytesPeak)",
|
"(CacheBytesPeak)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cacheFaultsTotal = prometheus.NewDesc(
|
c.cacheFaultsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cache_faults_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cache_faults_total"),
|
||||||
"Number of faults which occur when a page sought in the file system cache is not found there and must be retrieved from elsewhere in memory (soft fault) "+
|
"Number of faults which occur when a page sought in the file system cache is not found there and must be retrieved from elsewhere in memory (soft fault) "+
|
||||||
"or from disk (hard fault) (Cache Faults/sec)",
|
"or from disk (hard fault) (Cache Faults/sec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.commitLimit = prometheus.NewDesc(
|
c.commitLimit = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "commit_limit"),
|
prometheus.BuildFQName(types.Namespace, Name, "commit_limit"),
|
||||||
"(CommitLimit)",
|
"(CommitLimit)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.committedBytes = prometheus.NewDesc(
|
c.committedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "committed_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "committed_bytes"),
|
||||||
"(CommittedBytes)",
|
"(CommittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.demandZeroFaultsTotal = prometheus.NewDesc(
|
c.demandZeroFaultsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "demand_zero_faults_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "demand_zero_faults_total"),
|
||||||
"The number of zeroed pages required to satisfy faults. Zeroed pages, pages emptied of previously stored data and filled with zeros, are a security"+
|
"The number of zeroed pages required to satisfy faults. Zeroed pages, pages emptied of previously stored data and filled with zeros, are a security"+
|
||||||
" feature of Windows that prevent processes from seeing data stored by earlier processes that used the memory space (Demand Zero Faults/sec)",
|
" feature of Windows that prevent processes from seeing data stored by earlier processes that used the memory space (Demand Zero Faults/sec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.freeAndZeroPageListBytes = prometheus.NewDesc(
|
c.freeAndZeroPageListBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "free_and_zero_page_list_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "free_and_zero_page_list_bytes"),
|
||||||
"The amount of physical memory, in bytes, that is assigned to the free and zero page lists. This memory does not contain cached data. It is immediately"+
|
"The amount of physical memory, in bytes, that is assigned to the free and zero page lists. This memory does not contain cached data. It is immediately"+
|
||||||
" available for allocation to a process or for system use (FreeAndZeroPageListBytes)",
|
" available for allocation to a process or for system use (FreeAndZeroPageListBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.freeSystemPageTableEntries = prometheus.NewDesc(
|
c.freeSystemPageTableEntries = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "free_system_page_table_entries"),
|
prometheus.BuildFQName(types.Namespace, Name, "free_system_page_table_entries"),
|
||||||
"(FreeSystemPageTableEntries)",
|
"(FreeSystemPageTableEntries)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.modifiedPageListBytes = prometheus.NewDesc(
|
c.modifiedPageListBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "modified_page_list_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "modified_page_list_bytes"),
|
||||||
"The amount of physical memory, in bytes, that is assigned to the modified page list. This memory contains cached data and code that is not actively in "+
|
"The amount of physical memory, in bytes, that is assigned to the modified page list. This memory contains cached data and code that is not actively in "+
|
||||||
"use by processes, the system and the system cache (ModifiedPageListBytes)",
|
"use by processes, the system and the system cache (ModifiedPageListBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pageFaultsTotal = prometheus.NewDesc(
|
c.pageFaultsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "page_faults_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "page_faults_total"),
|
||||||
"Overall rate at which faulted pages are handled by the processor (Page Faults/sec)",
|
"Overall rate at which faulted pages are handled by the processor (Page Faults/sec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.swapPageReadsTotal = prometheus.NewDesc(
|
c.swapPageReadsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "swap_page_reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "swap_page_reads_total"),
|
||||||
"Number of disk page reads (a single read operation reading several pages is still only counted once) (PageReadsPersec)",
|
"Number of disk page reads (a single read operation reading several pages is still only counted once) (PageReadsPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.swapPagesReadTotal = prometheus.NewDesc(
|
c.swapPagesReadTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "swap_pages_read_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "swap_pages_read_total"),
|
||||||
"Number of pages read across all page reads (ie counting all pages read even if they are read in a single operation) (PagesInputPersec)",
|
"Number of pages read across all page reads (ie counting all pages read even if they are read in a single operation) (PagesInputPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.swapPagesWrittenTotal = prometheus.NewDesc(
|
c.swapPagesWrittenTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "swap_pages_written_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "swap_pages_written_total"),
|
||||||
"Number of pages written across all page writes (ie counting all pages written even if they are written in a single operation) (PagesOutputPersec)",
|
"Number of pages written across all page writes (ie counting all pages written even if they are written in a single operation) (PagesOutputPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.swapPageOperationsTotal = prometheus.NewDesc(
|
c.swapPageOperationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "swap_page_operations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "swap_page_operations_total"),
|
||||||
"Total number of swap page read and writes (PagesPersec)",
|
"Total number of swap page read and writes (PagesPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.swapPageWritesTotal = prometheus.NewDesc(
|
c.swapPageWritesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "swap_page_writes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "swap_page_writes_total"),
|
||||||
"Number of disk page writes (a single write operation writing several pages is still only counted once) (PageWritesPersec)",
|
"Number of disk page writes (a single write operation writing several pages is still only counted once) (PageWritesPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.poolNonPagedAllocationsTotal = prometheus.NewDesc(
|
c.poolNonPagedAllocationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pool_nonpaged_allocs_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "pool_nonpaged_allocs_total"),
|
||||||
"The number of calls to allocate space in the nonpaged pool. The nonpaged pool is an area of system memory area for objects that cannot be written"+
|
"The number of calls to allocate space in the nonpaged pool. The nonpaged pool is an area of system memory area for objects that cannot be written"+
|
||||||
" to disk, and must remain in physical memory as long as they are allocated (PoolNonpagedAllocs)",
|
" to disk, and must remain in physical memory as long as they are allocated (PoolNonpagedAllocs)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.poolNonPagedBytes = prometheus.NewDesc(
|
c.poolNonPagedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pool_nonpaged_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "pool_nonpaged_bytes"),
|
||||||
"Number of bytes in the non-paged pool, an area of the system virtual memory that is used for objects that cannot be written to disk, but must "+
|
"Number of bytes in the non-paged pool, an area of the system virtual memory that is used for objects that cannot be written to disk, but must "+
|
||||||
"remain in physical memory as long as they are allocated (PoolNonpagedBytes)",
|
"remain in physical memory as long as they are allocated (PoolNonpagedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.poolPagedAllocationsTotal = prometheus.NewDesc(
|
c.poolPagedAllocationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pool_paged_allocs_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "pool_paged_allocs_total"),
|
||||||
"Number of calls to allocate space in the paged pool, regardless of the amount of space allocated in each call (PoolPagedAllocs)",
|
"Number of calls to allocate space in the paged pool, regardless of the amount of space allocated in each call (PoolPagedAllocs)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.poolPagedBytes = prometheus.NewDesc(
|
c.poolPagedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pool_paged_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "pool_paged_bytes"),
|
||||||
"(PoolPagedBytes)",
|
"(PoolPagedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.poolPagedResidentBytes = prometheus.NewDesc(
|
c.poolPagedResidentBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pool_paged_resident_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "pool_paged_resident_bytes"),
|
||||||
"The size, in bytes, of the portion of the paged pool that is currently resident and active in physical memory. The paged pool is an area of the "+
|
"The size, in bytes, of the portion of the paged pool that is currently resident and active in physical memory. The paged pool is an area of the "+
|
||||||
"system virtual memory that is used for objects that can be written to disk when they are not being used (PoolPagedResidentBytes)",
|
"system virtual memory that is used for objects that can be written to disk when they are not being used (PoolPagedResidentBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.standbyCacheCoreBytes = prometheus.NewDesc(
|
c.standbyCacheCoreBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "standby_cache_core_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "standby_cache_core_bytes"),
|
||||||
"The amount of physical memory, in bytes, that is assigned to the core standby cache page lists. This memory contains cached data and code that is "+
|
"The amount of physical memory, in bytes, that is assigned to the core standby cache page lists. This memory contains cached data and code that is "+
|
||||||
"not actively in use by processes, the system and the system cache (StandbyCacheCoreBytes)",
|
"not actively in use by processes, the system and the system cache (StandbyCacheCoreBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.standbyCacheNormalPriorityBytes = prometheus.NewDesc(
|
c.standbyCacheNormalPriorityBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "standby_cache_normal_priority_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "standby_cache_normal_priority_bytes"),
|
||||||
"The amount of physical memory, in bytes, that is assigned to the normal priority standby cache page lists. This memory contains cached data and "+
|
"The amount of physical memory, in bytes, that is assigned to the normal priority standby cache page lists. This memory contains cached data and "+
|
||||||
"code that is not actively in use by processes, the system and the system cache (StandbyCacheNormalPriorityBytes)",
|
"code that is not actively in use by processes, the system and the system cache (StandbyCacheNormalPriorityBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.standbyCacheReserveBytes = prometheus.NewDesc(
|
c.standbyCacheReserveBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "standby_cache_reserve_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "standby_cache_reserve_bytes"),
|
||||||
"The amount of physical memory, in bytes, that is assigned to the reserve standby cache page lists. This memory contains cached data and code "+
|
"The amount of physical memory, in bytes, that is assigned to the reserve standby cache page lists. This memory contains cached data and code "+
|
||||||
"that is not actively in use by processes, the system and the system cache (StandbyCacheReserveBytes)",
|
"that is not actively in use by processes, the system and the system cache (StandbyCacheReserveBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.systemCacheResidentBytes = prometheus.NewDesc(
|
c.systemCacheResidentBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "system_cache_resident_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "system_cache_resident_bytes"),
|
||||||
"The size, in bytes, of the portion of the system file cache which is currently resident and active in physical memory (SystemCacheResidentBytes)",
|
"The size, in bytes, of the portion of the system file cache which is currently resident and active in physical memory (SystemCacheResidentBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.systemCodeResidentBytes = prometheus.NewDesc(
|
c.systemCodeResidentBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "system_code_resident_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "system_code_resident_bytes"),
|
||||||
"The size, in bytes, of the pageable operating system code that is currently resident and active in physical memory (SystemCodeResidentBytes)",
|
"The size, in bytes, of the pageable operating system code that is currently resident and active in physical memory (SystemCodeResidentBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.systemCodeTotalBytes = prometheus.NewDesc(
|
c.systemCodeTotalBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "system_code_total_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "system_code_total_bytes"),
|
||||||
"The size, in bytes, of the pageable operating system code currently mapped into the system virtual address space (SystemCodeTotalBytes)",
|
"The size, in bytes, of the pageable operating system code currently mapped into the system virtual address space (SystemCodeTotalBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.systemDriverResidentBytes = prometheus.NewDesc(
|
c.systemDriverResidentBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "system_driver_resident_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "system_driver_resident_bytes"),
|
||||||
"The size, in bytes, of the pageable physical memory being used by device drivers. It is the working set (physical memory area) of the drivers (SystemDriverResidentBytes)",
|
"The size, in bytes, of the pageable physical memory being used by device drivers. It is the working set (physical memory area) of the drivers (SystemDriverResidentBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.systemDriverTotalBytes = prometheus.NewDesc(
|
c.systemDriverTotalBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "system_driver_total_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "system_driver_total_bytes"),
|
||||||
"The size, in bytes, of the pageable virtual memory currently being used by device drivers. Pageable memory can be written to disk when it is not being used (SystemDriverTotalBytes)",
|
"The size, in bytes, of the pageable virtual memory currently being used by device drivers. Pageable memory can be written to disk when it is not being used (SystemDriverTotalBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.transitionFaultsTotal = prometheus.NewDesc(
|
c.transitionFaultsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "transition_faults_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "transition_faults_total"),
|
||||||
"Number of faults rate at which page faults are resolved by recovering pages that were being used by another process sharing the page, or were on the "+
|
"Number of faults rate at which page faults are resolved by recovering pages that were being used by another process sharing the page, or were on the "+
|
||||||
"modified page list or the standby list, or were being written to disk at the time of the page fault (TransitionFaultsPersec)",
|
"modified page list or the standby list, or were being written to disk at the time of the page fault (TransitionFaultsPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.transitionPagesRepurposedTotal = prometheus.NewDesc(
|
c.transitionPagesRepurposedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "transition_pages_repurposed_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "transition_pages_repurposed_total"),
|
||||||
"Transition Pages RePurposed is the rate at which the number of transition cache pages were reused for a different purpose (TransitionPagesRePurposedPersec)",
|
"Transition Pages RePurposed is the rate at which the number of transition cache pages were reused for a different purpose (TransitionPagesRePurposedPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.writeCopiesTotal = prometheus.NewDesc(
|
c.writeCopiesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "write_copies_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "write_copies_total"),
|
||||||
"The number of page faults caused by attempting to write that were satisfied by copying the page from elsewhere in physical memory (WriteCopiesPersec)",
|
"The number of page faults caused by attempting to write that were satisfied by copying the page from elsewhere in physical memory (WriteCopiesPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processMemoryLimitBytes = prometheus.NewDesc(
|
c.processMemoryLimitBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "process_memory_limit_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "process_memory_limit_bytes"),
|
||||||
"The size of the user-mode portion of the virtual address space of the calling process, in bytes. This value depends on the type of process, the type of processor, and the configuration of the operating system.",
|
"The size of the user-mode portion of the virtual address space of the calling process, in bytes. This value depends on the type of process, the type of processor, and the configuration of the operating system.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.physicalMemoryTotalBytes = prometheus.NewDesc(
|
c.physicalMemoryTotalBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "physical_total_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "physical_total_bytes"),
|
||||||
"The amount of actual physical memory, in bytes.",
|
"The amount of actual physical memory, in bytes.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.physicalMemoryFreeBytes = prometheus.NewDesc(
|
c.physicalMemoryFreeBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "physical_free_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "physical_free_bytes"),
|
||||||
"The amount of physical memory currently available, in bytes. This is the amount of physical memory that can be immediately reused without having to write its contents to disk first. It is the sum of the size of the standby, free, and zero lists.",
|
"The amount of physical memory currently available, in bytes. This is the amount of physical memory that can be immediately reused without having to write its contents to disk first. It is the sum of the size of the standby, free, and zero lists.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -325,7 +325,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
errs := make([]error, 0, 2)
|
errs := make([]error, 0, 2)
|
||||||
@@ -413,7 +413,7 @@ type memory struct {
|
|||||||
WriteCopiesPersec float64 `perflib:"Write Copies/sec"`
|
WriteCopiesPersec float64 `perflib:"Write Copies/sec"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectPerformanceData(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectPerformanceData(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var dst []memory
|
var dst []memory
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -89,25 +89,25 @@ func (c *Collector) Build(logger *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.bytesInJournalQueue = prometheus.NewDesc(
|
c.bytesInJournalQueue = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "bytes_in_journal_queue"),
|
prometheus.BuildFQName(types.Namespace, Name, "bytes_in_journal_queue"),
|
||||||
"Size of queue journal in bytes",
|
"Size of queue journal in bytes",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesInQueue = prometheus.NewDesc(
|
c.bytesInQueue = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "bytes_in_queue"),
|
prometheus.BuildFQName(types.Namespace, Name, "bytes_in_queue"),
|
||||||
"Size of queue in bytes",
|
"Size of queue in bytes",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesInJournalQueue = prometheus.NewDesc(
|
c.messagesInJournalQueue = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_in_journal_queue"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_in_journal_queue"),
|
||||||
"Count messages in queue journal",
|
"Count messages in queue journal",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesInQueue = prometheus.NewDesc(
|
c.messagesInQueue = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_in_queue"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_in_queue"),
|
||||||
"Count messages in queue",
|
"Count messages in queue",
|
||||||
[]string{"name"},
|
[]string{"name"},
|
||||||
nil,
|
nil,
|
||||||
@@ -118,7 +118,7 @@ func (c *Collector) Build(logger *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting msmq metrics",
|
logger.Error("failed collecting msmq metrics",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -15,7 +15,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -31,8 +31,8 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConfigDefaults = Config{
|
var ConfigDefaults = Config{
|
||||||
NicExclude: types2.RegExpEmpty,
|
NicExclude: types.RegExpEmpty,
|
||||||
NicInclude: types2.RegExpAny,
|
NicInclude: types.RegExpAny,
|
||||||
CollectorsEnabled: []string{
|
CollectorsEnabled: []string{
|
||||||
"metrics",
|
"metrics",
|
||||||
"nic_addresses",
|
"nic_addresses",
|
||||||
@@ -182,91 +182,91 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.bytesReceivedTotal = prometheus.NewDesc(
|
c.bytesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "bytes_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "bytes_received_total"),
|
||||||
"(Network.BytesReceivedPerSec)",
|
"(Network.BytesReceivedPerSec)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesSentTotal = prometheus.NewDesc(
|
c.bytesSentTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "bytes_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "bytes_sent_total"),
|
||||||
"(Network.BytesSentPerSec)",
|
"(Network.BytesSentPerSec)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesTotal = prometheus.NewDesc(
|
c.bytesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "bytes_total"),
|
||||||
"(Network.BytesTotalPerSec)",
|
"(Network.BytesTotalPerSec)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outputQueueLength = prometheus.NewDesc(
|
c.outputQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "output_queue_length_packets"),
|
prometheus.BuildFQName(types.Namespace, Name, "output_queue_length_packets"),
|
||||||
"(Network.OutputQueueLength)",
|
"(Network.OutputQueueLength)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsOutboundDiscarded = prometheus.NewDesc(
|
c.packetsOutboundDiscarded = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_outbound_discarded_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_outbound_discarded_total"),
|
||||||
"(Network.PacketsOutboundDiscarded)",
|
"(Network.PacketsOutboundDiscarded)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsOutboundErrors = prometheus.NewDesc(
|
c.packetsOutboundErrors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_outbound_errors_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_outbound_errors_total"),
|
||||||
"(Network.PacketsOutboundErrors)",
|
"(Network.PacketsOutboundErrors)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsReceivedDiscarded = prometheus.NewDesc(
|
c.packetsReceivedDiscarded = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_received_discarded_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_received_discarded_total"),
|
||||||
"(Network.PacketsReceivedDiscarded)",
|
"(Network.PacketsReceivedDiscarded)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsReceivedErrors = prometheus.NewDesc(
|
c.packetsReceivedErrors = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_received_errors_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_received_errors_total"),
|
||||||
"(Network.PacketsReceivedErrors)",
|
"(Network.PacketsReceivedErrors)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsReceivedTotal = prometheus.NewDesc(
|
c.packetsReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_received_total"),
|
||||||
"(Network.PacketsReceivedPerSec)",
|
"(Network.PacketsReceivedPerSec)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsReceivedUnknown = prometheus.NewDesc(
|
c.packetsReceivedUnknown = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_received_unknown_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_received_unknown_total"),
|
||||||
"(Network.PacketsReceivedUnknown)",
|
"(Network.PacketsReceivedUnknown)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsTotal = prometheus.NewDesc(
|
c.packetsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_total"),
|
||||||
"(Network.PacketsPerSec)",
|
"(Network.PacketsPerSec)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsSentTotal = prometheus.NewDesc(
|
c.packetsSentTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_sent_total"),
|
||||||
"(Network.PacketsSentPerSec)",
|
"(Network.PacketsSentPerSec)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentBandwidth = prometheus.NewDesc(
|
c.currentBandwidth = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_bandwidth_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_bandwidth_bytes"),
|
||||||
"(Network.CurrentBandwidth)",
|
"(Network.CurrentBandwidth)",
|
||||||
[]string{"nic"},
|
[]string{"nic"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.nicAddressInfo = prometheus.NewDesc(
|
c.nicAddressInfo = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "nic_address_info"),
|
prometheus.BuildFQName(types.Namespace, Name, "nic_address_info"),
|
||||||
"A metric with a constant '1' value labeled with the network interface's address information.",
|
"A metric with a constant '1' value labeled with the network interface's address information.",
|
||||||
[]string{"nic", "friendly_name", "address", "family"},
|
[]string{"nic", "friendly_name", "address", "family"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.routeInfo = prometheus.NewDesc(
|
c.routeInfo = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "route_info"),
|
prometheus.BuildFQName(types.Namespace, Name, "route_info"),
|
||||||
"A metric with a constant '1' value labeled with the network interface's route information.",
|
"A metric with a constant '1' value labeled with the network interface's route information.",
|
||||||
[]string{"nic", "src", "dest", "metric"},
|
[]string{"nic", "src", "dest", "metric"},
|
||||||
nil,
|
nil,
|
||||||
@@ -277,7 +277,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
if slices.Contains(c.config.CollectorsEnabled, "metrics") {
|
if slices.Contains(c.config.CollectorsEnabled, "metrics") {
|
||||||
@@ -303,7 +303,7 @@ func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch c
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
var dst []perflibNetworkInterface
|
var dst []perflibNetworkInterface
|
||||||
|
|
||||||
if err := perflib.UnmarshalObject(ctx.PerfObjects["Network Interface"], &dst, logger); err != nil {
|
if err := perflib.UnmarshalObject(ctx.PerfObjects["Network Interface"], &dst, logger); err != nil {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -85,152 +85,152 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
c.accessAccepts = prometheus.NewDesc(
|
c.accessAccepts = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_accepts"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_accepts"),
|
||||||
"(AccessAccepts)",
|
"(AccessAccepts)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessChallenges = prometheus.NewDesc(
|
c.accessChallenges = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_challenges"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_challenges"),
|
||||||
"(AccessChallenges)",
|
"(AccessChallenges)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessRejects = prometheus.NewDesc(
|
c.accessRejects = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_rejects"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_rejects"),
|
||||||
"(AccessRejects)",
|
"(AccessRejects)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessRequests = prometheus.NewDesc(
|
c.accessRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_requests"),
|
||||||
"(AccessRequests)",
|
"(AccessRequests)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessBadAuthenticators = prometheus.NewDesc(
|
c.accessBadAuthenticators = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_bad_authenticators"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_bad_authenticators"),
|
||||||
"(BadAuthenticators)",
|
"(BadAuthenticators)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessDroppedPackets = prometheus.NewDesc(
|
c.accessDroppedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_dropped_packets"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_dropped_packets"),
|
||||||
"(DroppedPackets)",
|
"(DroppedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessInvalidRequests = prometheus.NewDesc(
|
c.accessInvalidRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_invalid_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_invalid_requests"),
|
||||||
"(InvalidRequests)",
|
"(InvalidRequests)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessMalformedPackets = prometheus.NewDesc(
|
c.accessMalformedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_malformed_packets"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_malformed_packets"),
|
||||||
"(MalformedPackets)",
|
"(MalformedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessPacketsReceived = prometheus.NewDesc(
|
c.accessPacketsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_packets_received"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_packets_received"),
|
||||||
"(PacketsReceived)",
|
"(PacketsReceived)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessPacketsSent = prometheus.NewDesc(
|
c.accessPacketsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_packets_sent"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_packets_sent"),
|
||||||
"(PacketsSent)",
|
"(PacketsSent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessServerResetTime = prometheus.NewDesc(
|
c.accessServerResetTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_server_reset_time"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_server_reset_time"),
|
||||||
"(ServerResetTime)",
|
"(ServerResetTime)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessServerUpTime = prometheus.NewDesc(
|
c.accessServerUpTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_server_up_time"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_server_up_time"),
|
||||||
"(ServerUpTime)",
|
"(ServerUpTime)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accessUnknownType = prometheus.NewDesc(
|
c.accessUnknownType = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "access_unknown_type"),
|
prometheus.BuildFQName(types.Namespace, Name, "access_unknown_type"),
|
||||||
"(UnknownType)",
|
"(UnknownType)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.accountingRequests = prometheus.NewDesc(
|
c.accountingRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_requests"),
|
||||||
"(AccountingRequests)",
|
"(AccountingRequests)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingResponses = prometheus.NewDesc(
|
c.accountingResponses = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_responses"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_responses"),
|
||||||
"(AccountingResponses)",
|
"(AccountingResponses)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingBadAuthenticators = prometheus.NewDesc(
|
c.accountingBadAuthenticators = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_bad_authenticators"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_bad_authenticators"),
|
||||||
"(BadAuthenticators)",
|
"(BadAuthenticators)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingDroppedPackets = prometheus.NewDesc(
|
c.accountingDroppedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_dropped_packets"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_dropped_packets"),
|
||||||
"(DroppedPackets)",
|
"(DroppedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingInvalidRequests = prometheus.NewDesc(
|
c.accountingInvalidRequests = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_invalid_requests"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_invalid_requests"),
|
||||||
"(InvalidRequests)",
|
"(InvalidRequests)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingMalformedPackets = prometheus.NewDesc(
|
c.accountingMalformedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_malformed_packets"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_malformed_packets"),
|
||||||
"(MalformedPackets)",
|
"(MalformedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingNoRecord = prometheus.NewDesc(
|
c.accountingNoRecord = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_no_record"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_no_record"),
|
||||||
"(NoRecord)",
|
"(NoRecord)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingPacketsReceived = prometheus.NewDesc(
|
c.accountingPacketsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_packets_received"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_packets_received"),
|
||||||
"(PacketsReceived)",
|
"(PacketsReceived)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingPacketsSent = prometheus.NewDesc(
|
c.accountingPacketsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_packets_sent"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_packets_sent"),
|
||||||
"(PacketsSent)",
|
"(PacketsSent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingServerResetTime = prometheus.NewDesc(
|
c.accountingServerResetTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_server_reset_time"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_server_reset_time"),
|
||||||
"(ServerResetTime)",
|
"(ServerResetTime)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingServerUpTime = prometheus.NewDesc(
|
c.accountingServerUpTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_server_up_time"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_server_up_time"),
|
||||||
"(ServerUpTime)",
|
"(ServerUpTime)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.accountingUnknownType = prometheus.NewDesc(
|
c.accountingUnknownType = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "accounting_unknown_type"),
|
prometheus.BuildFQName(types.Namespace, Name, "accounting_unknown_type"),
|
||||||
"(UnknownType)",
|
"(UnknownType)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -241,7 +241,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.CollectAccept(ch); err != nil {
|
if err := c.CollectAccept(ch); err != nil {
|
||||||
logger.Error(fmt.Sprintf("failed collecting NPS accept data: %s", err))
|
logger.Error(fmt.Sprintf("failed collecting NPS accept data: %s", err))
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import (
|
|||||||
"github.com/prometheus-community/windows_exporter/internal/headers/psapi"
|
"github.com/prometheus-community/windows_exporter/internal/headers/psapi"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/headers/sysinfoapi"
|
"github.com/prometheus-community/windows_exporter/internal/headers/sysinfoapi"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
@@ -124,7 +124,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.osInformation = prometheus.NewDesc(
|
c.osInformation = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "info"),
|
prometheus.BuildFQName(types.Namespace, Name, "info"),
|
||||||
`Contains full product name & version in labels. Note that the "major_version" for Windows 11 is \"10\"; a build number greater than 22000 represents Windows 11.`,
|
`Contains full product name & version in labels. Note that the "major_version" for Windows 11 is \"10\"; a build number greater than 22000 represents Windows 11.`,
|
||||||
nil,
|
nil,
|
||||||
prometheus.Labels{
|
prometheus.Labels{
|
||||||
@@ -138,7 +138,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
)
|
)
|
||||||
|
|
||||||
c.hostname = prometheus.NewDesc(
|
c.hostname = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "hostname"),
|
prometheus.BuildFQName(types.Namespace, Name, "hostname"),
|
||||||
"Labelled system hostname information as provided by ComputerSystem.DNSHostName and ComputerSystem.Domain",
|
"Labelled system hostname information as provided by ComputerSystem.DNSHostName and ComputerSystem.Domain",
|
||||||
[]string{
|
[]string{
|
||||||
"hostname",
|
"hostname",
|
||||||
@@ -148,73 +148,73 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pagingLimitBytes = prometheus.NewDesc(
|
c.pagingLimitBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "paging_limit_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "paging_limit_bytes"),
|
||||||
"OperatingSystem.SizeStoredInPagingFiles",
|
"OperatingSystem.SizeStoredInPagingFiles",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pagingFreeBytes = prometheus.NewDesc(
|
c.pagingFreeBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "paging_free_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "paging_free_bytes"),
|
||||||
"OperatingSystem.FreeSpaceInPagingFiles",
|
"OperatingSystem.FreeSpaceInPagingFiles",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.physicalMemoryFreeBytes = prometheus.NewDesc(
|
c.physicalMemoryFreeBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "physical_memory_free_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "physical_memory_free_bytes"),
|
||||||
"Deprecated: Use `windows_memory_physical_free_bytes` instead.",
|
"Deprecated: Use `windows_memory_physical_free_bytes` instead.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.time = prometheus.NewDesc(
|
c.time = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "time"),
|
prometheus.BuildFQName(types.Namespace, Name, "time"),
|
||||||
"Deprecated: Use windows_time_current_timestamp_seconds instead.",
|
"Deprecated: Use windows_time_current_timestamp_seconds instead.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.timezone = prometheus.NewDesc(
|
c.timezone = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "timezone"),
|
prometheus.BuildFQName(types.Namespace, Name, "timezone"),
|
||||||
"Deprecated: Use windows_time_timezone instead.",
|
"Deprecated: Use windows_time_timezone instead.",
|
||||||
[]string{"timezone"},
|
[]string{"timezone"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processes = prometheus.NewDesc(
|
c.processes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processes"),
|
prometheus.BuildFQName(types.Namespace, Name, "processes"),
|
||||||
"Deprecated: Use `windows_system_processes` instead.",
|
"Deprecated: Use `windows_system_processes` instead.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processesLimit = prometheus.NewDesc(
|
c.processesLimit = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processes_limit"),
|
prometheus.BuildFQName(types.Namespace, Name, "processes_limit"),
|
||||||
"Deprecated: Use `windows_system_process_limit` instead.",
|
"Deprecated: Use `windows_system_process_limit` instead.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processMemoryLimitBytes = prometheus.NewDesc(
|
c.processMemoryLimitBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "process_memory_limit_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "process_memory_limit_bytes"),
|
||||||
"Deprecated: Use `windows_memory_process_memory_limit_bytes` instead.",
|
"Deprecated: Use `windows_memory_process_memory_limit_bytes` instead.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.users = prometheus.NewDesc(
|
c.users = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "users"),
|
prometheus.BuildFQName(types.Namespace, Name, "users"),
|
||||||
"Deprecated: Use `count(windows_logon_logon_type)` instead.",
|
"Deprecated: Use `count(windows_logon_logon_type)` instead.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.virtualMemoryBytes = prometheus.NewDesc(
|
c.virtualMemoryBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "virtual_memory_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "virtual_memory_bytes"),
|
||||||
"Deprecated: Use `windows_memory_commit_limit` instead.",
|
"Deprecated: Use `windows_memory_commit_limit` instead.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.visibleMemoryBytes = prometheus.NewDesc(
|
c.visibleMemoryBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "visible_memory_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "visible_memory_bytes"),
|
||||||
"Deprecated: Use `windows_memory_physical_total_bytes` instead.",
|
"Deprecated: Use `windows_memory_physical_total_bytes` instead.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.virtualMemoryFreeBytes = prometheus.NewDesc(
|
c.virtualMemoryFreeBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "virtual_memory_free_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "virtual_memory_free_bytes"),
|
||||||
"Deprecated: Use `windows_memory_commit_limit - windows_memory_committed_bytes` instead.",
|
"Deprecated: Use `windows_memory_commit_limit - windows_memory_committed_bytes` instead.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -225,7 +225,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
errs := make([]error, 0, 5)
|
errs := make([]error, 0, 5)
|
||||||
@@ -382,7 +382,7 @@ func (c *Collector) collectMemory(ch chan<- prometheus.Metric) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectPaging(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectPaging(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
// Get total allocation of paging files across all disks.
|
// Get total allocation of paging files across all disks.
|
||||||
memManKey, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management`, registry.QUERY_VALUE)
|
memManKey, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management`, registry.QUERY_VALUE)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -114,7 +114,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting performance data metrics",
|
logger.Error("failed collecting performance data metrics",
|
||||||
slog.Any("err", err),
|
slog.Any("err", err),
|
||||||
@@ -153,7 +153,7 @@ func (c *Collector) collect(ch chan<- prometheus.Metric) error {
|
|||||||
|
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
prometheus.NewDesc(
|
prometheus.NewDesc(
|
||||||
sanitizeMetricName(fmt.Sprintf("%s_perfdata_%s_%s", types2.Namespace, object.Object, counter)),
|
sanitizeMetricName(fmt.Sprintf("%s_perfdata_%s_%s", types.Namespace, object.Object, counter)),
|
||||||
fmt.Sprintf("Performance data for \\%s\\%s", object.Object, counter),
|
fmt.Sprintf("Performance data for \\%s\\%s", object.Object, counter),
|
||||||
nil,
|
nil,
|
||||||
labels,
|
labels,
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"regexp"
|
"regexp"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
perfdata2 "github.com/prometheus-community/windows_exporter/internal/collector/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/collector/perfdata"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@@ -19,7 +19,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type collectorAdapter struct {
|
type collectorAdapter struct {
|
||||||
perfdata2.Collector
|
perfdata.Collector
|
||||||
}
|
}
|
||||||
|
|
||||||
// Describe implements the prometheus.Collector interface.
|
// Describe implements the prometheus.Collector interface.
|
||||||
@@ -40,27 +40,27 @@ func TestCollector(t *testing.T) {
|
|||||||
for _, tc := range []struct {
|
for _, tc := range []struct {
|
||||||
object string
|
object string
|
||||||
instances []string
|
instances []string
|
||||||
counters map[string]perfdata2.Counter
|
counters map[string]perfdata.Counter
|
||||||
expectedMetrics *regexp.Regexp
|
expectedMetrics *regexp.Regexp
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
object: "Memory",
|
object: "Memory",
|
||||||
instances: nil,
|
instances: nil,
|
||||||
counters: map[string]perfdata2.Counter{"Available Bytes": {Type: "gauge"}},
|
counters: map[string]perfdata.Counter{"Available Bytes": {Type: "gauge"}},
|
||||||
expectedMetrics: regexp.MustCompile(`^# HELP windows_perfdata_memory_available_bytes Performance data for \\\\Memory\\\\Available Bytes\s*# TYPE windows_perfdata_memory_available_bytes gauge\s*windows_perfdata_memory_available_bytes \d`),
|
expectedMetrics: regexp.MustCompile(`^# HELP windows_perfdata_memory_available_bytes Performance data for \\\\Memory\\\\Available Bytes\s*# TYPE windows_perfdata_memory_available_bytes gauge\s*windows_perfdata_memory_available_bytes \d`),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
object: "Process",
|
object: "Process",
|
||||||
instances: []string{"*"},
|
instances: []string{"*"},
|
||||||
counters: map[string]perfdata2.Counter{"Thread Count": {Type: "counter"}},
|
counters: map[string]perfdata.Counter{"Thread Count": {Type: "counter"}},
|
||||||
expectedMetrics: regexp.MustCompile(`^# HELP windows_perfdata_process_thread_count Performance data for \\\\Process\\\\Thread Count\s*# TYPE windows_perfdata_process_thread_count counter\s*windows_perfdata_process_thread_count\{instance=".+"} \d`),
|
expectedMetrics: regexp.MustCompile(`^# HELP windows_perfdata_process_thread_count Performance data for \\\\Process\\\\Thread Count\s*# TYPE windows_perfdata_process_thread_count counter\s*windows_perfdata_process_thread_count\{instance=".+"} \d`),
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
t.Run(tc.object, func(t *testing.T) {
|
t.Run(tc.object, func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
perfDataCollector := perfdata2.New(&perfdata2.Config{
|
perfDataCollector := perfdata.New(&perfdata.Config{
|
||||||
Objects: []perfdata2.Object{
|
Objects: []perfdata.Object{
|
||||||
{
|
{
|
||||||
Object: tc.object,
|
Object: tc.object,
|
||||||
Instances: tc.instances,
|
Instances: tc.instances,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -23,8 +23,8 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConfigDefaults = Config{
|
var ConfigDefaults = Config{
|
||||||
DiskInclude: types2.RegExpAny,
|
DiskInclude: types.RegExpAny,
|
||||||
DiskExclude: types2.RegExpEmpty,
|
DiskExclude: types.RegExpEmpty,
|
||||||
}
|
}
|
||||||
|
|
||||||
// A Collector is a Prometheus Collector for perflib PhysicalDisk metrics.
|
// A Collector is a Prometheus Collector for perflib PhysicalDisk metrics.
|
||||||
@@ -115,84 +115,84 @@ func (c *Collector) Close(_ *slog.Logger) error {
|
|||||||
|
|
||||||
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
||||||
c.requestsQueued = prometheus.NewDesc(
|
c.requestsQueued = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "requests_queued"),
|
prometheus.BuildFQName(types.Namespace, Name, "requests_queued"),
|
||||||
"The number of requests queued to the disk (PhysicalDisk.CurrentDiskQueueLength)",
|
"The number of requests queued to the disk (PhysicalDisk.CurrentDiskQueueLength)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readBytesTotal = prometheus.NewDesc(
|
c.readBytesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "read_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "read_bytes_total"),
|
||||||
"The number of bytes transferred from the disk during read operations (PhysicalDisk.DiskReadBytesPerSec)",
|
"The number of bytes transferred from the disk during read operations (PhysicalDisk.DiskReadBytesPerSec)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readsTotal = prometheus.NewDesc(
|
c.readsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "reads_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "reads_total"),
|
||||||
"The number of read operations on the disk (PhysicalDisk.DiskReadsPerSec)",
|
"The number of read operations on the disk (PhysicalDisk.DiskReadsPerSec)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.writeBytesTotal = prometheus.NewDesc(
|
c.writeBytesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "write_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "write_bytes_total"),
|
||||||
"The number of bytes transferred to the disk during write operations (PhysicalDisk.DiskWriteBytesPerSec)",
|
"The number of bytes transferred to the disk during write operations (PhysicalDisk.DiskWriteBytesPerSec)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.writesTotal = prometheus.NewDesc(
|
c.writesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "writes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "writes_total"),
|
||||||
"The number of write operations on the disk (PhysicalDisk.DiskWritesPerSec)",
|
"The number of write operations on the disk (PhysicalDisk.DiskWritesPerSec)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readTime = prometheus.NewDesc(
|
c.readTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "read_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "read_seconds_total"),
|
||||||
"Seconds that the disk was busy servicing read requests (PhysicalDisk.PercentDiskReadTime)",
|
"Seconds that the disk was busy servicing read requests (PhysicalDisk.PercentDiskReadTime)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.writeTime = prometheus.NewDesc(
|
c.writeTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "write_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "write_seconds_total"),
|
||||||
"Seconds that the disk was busy servicing write requests (PhysicalDisk.PercentDiskWriteTime)",
|
"Seconds that the disk was busy servicing write requests (PhysicalDisk.PercentDiskWriteTime)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.idleTime = prometheus.NewDesc(
|
c.idleTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "idle_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "idle_seconds_total"),
|
||||||
"Seconds that the disk was idle (PhysicalDisk.PercentIdleTime)",
|
"Seconds that the disk was idle (PhysicalDisk.PercentIdleTime)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.splitIOs = prometheus.NewDesc(
|
c.splitIOs = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "split_ios_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "split_ios_total"),
|
||||||
"The number of I/Os to the disk were split into multiple I/Os (PhysicalDisk.SplitIOPerSec)",
|
"The number of I/Os to the disk were split into multiple I/Os (PhysicalDisk.SplitIOPerSec)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readLatency = prometheus.NewDesc(
|
c.readLatency = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "read_latency_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "read_latency_seconds_total"),
|
||||||
"Shows the average time, in seconds, of a read operation from the disk (PhysicalDisk.AvgDiskSecPerRead)",
|
"Shows the average time, in seconds, of a read operation from the disk (PhysicalDisk.AvgDiskSecPerRead)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.writeLatency = prometheus.NewDesc(
|
c.writeLatency = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "write_latency_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "write_latency_seconds_total"),
|
||||||
"Shows the average time, in seconds, of a write operation to the disk (PhysicalDisk.AvgDiskSecPerWrite)",
|
"Shows the average time, in seconds, of a write operation to the disk (PhysicalDisk.AvgDiskSecPerWrite)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.readWriteLatency = prometheus.NewDesc(
|
c.readWriteLatency = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "read_write_latency_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "read_write_latency_seconds_total"),
|
||||||
"Shows the time, in seconds, of the average disk transfer (PhysicalDisk.AvgDiskSecPerTransfer)",
|
"Shows the time, in seconds, of the average disk transfer (PhysicalDisk.AvgDiskSecPerTransfer)",
|
||||||
[]string{"disk"},
|
[]string{"disk"},
|
||||||
nil,
|
nil,
|
||||||
@@ -203,7 +203,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ctx, logger, ch); err != nil {
|
if err := c.collect(ctx, logger, ch); err != nil {
|
||||||
logger.Error("failed collecting physical_disk metrics",
|
logger.Error("failed collecting physical_disk metrics",
|
||||||
@@ -235,7 +235,7 @@ type PhysicalDisk struct {
|
|||||||
AvgDiskSecPerTransfer float64 `perflib:"Avg. Disk sec/Transfer"`
|
AvgDiskSecPerTransfer float64 `perflib:"Avg. Disk sec/Transfer"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var dst []PhysicalDisk
|
var dst []PhysicalDisk
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -34,8 +34,8 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConfigDefaults = Config{
|
var ConfigDefaults = Config{
|
||||||
PrinterInclude: types2.RegExpAny,
|
PrinterInclude: types.RegExpAny,
|
||||||
PrinterExclude: types2.RegExpEmpty,
|
PrinterExclude: types.RegExpEmpty,
|
||||||
}
|
}
|
||||||
|
|
||||||
type Collector struct {
|
type Collector struct {
|
||||||
@@ -115,19 +115,19 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
|
|
||||||
c.printerJobStatus = prometheus.NewDesc(
|
c.printerJobStatus = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "job_status"),
|
prometheus.BuildFQName(types.Namespace, Name, "job_status"),
|
||||||
"A counter of printer jobs by status",
|
"A counter of printer jobs by status",
|
||||||
[]string{"printer", "status"},
|
[]string{"printer", "status"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.printerStatus = prometheus.NewDesc(
|
c.printerStatus = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "status"),
|
prometheus.BuildFQName(types.Namespace, Name, "status"),
|
||||||
"Printer status",
|
"Printer status",
|
||||||
[]string{"printer", "status"},
|
[]string{"printer", "status"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.printerJobCount = prometheus.NewDesc(
|
c.printerJobCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "job_count"),
|
prometheus.BuildFQName(types.Namespace, Name, "job_count"),
|
||||||
"Number of jobs processed by the printer since the last reset",
|
"Number of jobs processed by the printer since the last reset",
|
||||||
[]string{"printer"},
|
[]string{"printer"},
|
||||||
nil,
|
nil,
|
||||||
@@ -154,7 +154,7 @@ type wmiPrintJob struct {
|
|||||||
Status string
|
Status string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectPrinterStatus(ch); err != nil {
|
if err := c.collectPrinterStatus(ch); err != nil {
|
||||||
logger.Error("failed to collect printer status metrics",
|
logger.Error("failed to collect printer status metrics",
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
@@ -28,8 +28,8 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConfigDefaults = Config{
|
var ConfigDefaults = Config{
|
||||||
ProcessInclude: types2.RegExpAny,
|
ProcessInclude: types.RegExpAny,
|
||||||
ProcessExclude: types2.RegExpEmpty,
|
ProcessExclude: types.RegExpEmpty,
|
||||||
EnableWorkerProcess: false,
|
EnableWorkerProcess: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,98 +144,98 @@ func (c *Collector) Build(logger *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.info = prometheus.NewDesc(
|
c.info = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "info"),
|
prometheus.BuildFQName(types.Namespace, Name, "info"),
|
||||||
"Process information.",
|
"Process information.",
|
||||||
[]string{"process", "process_id", "creating_process_id", "process_group_id", "owner", "cmdline"},
|
[]string{"process", "process_id", "creating_process_id", "process_group_id", "owner", "cmdline"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.startTime = prometheus.NewDesc(
|
c.startTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "start_time"),
|
prometheus.BuildFQName(types.Namespace, Name, "start_time"),
|
||||||
"Time of process start.",
|
"Time of process start.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuTimeTotal = prometheus.NewDesc(
|
c.cpuTimeTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_time_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_time_total"),
|
||||||
"Returns elapsed time that all of the threads of this process used the processor to execute instructions by mode (privileged, user).",
|
"Returns elapsed time that all of the threads of this process used the processor to execute instructions by mode (privileged, user).",
|
||||||
[]string{"process", "process_id", "mode"},
|
[]string{"process", "process_id", "mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.handleCount = prometheus.NewDesc(
|
c.handleCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "handles"),
|
prometheus.BuildFQName(types.Namespace, Name, "handles"),
|
||||||
"Total number of handles the process has open. This number is the sum of the handles currently open by each thread in the process.",
|
"Total number of handles the process has open. This number is the sum of the handles currently open by each thread in the process.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ioBytesTotal = prometheus.NewDesc(
|
c.ioBytesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "io_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "io_bytes_total"),
|
||||||
"Bytes issued to I/O operations in different modes (read, write, other).",
|
"Bytes issued to I/O operations in different modes (read, write, other).",
|
||||||
[]string{"process", "process_id", "mode"},
|
[]string{"process", "process_id", "mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ioOperationsTotal = prometheus.NewDesc(
|
c.ioOperationsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "io_operations_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "io_operations_total"),
|
||||||
"I/O operations issued in different modes (read, write, other).",
|
"I/O operations issued in different modes (read, write, other).",
|
||||||
[]string{"process", "process_id", "mode"},
|
[]string{"process", "process_id", "mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pageFaultsTotal = prometheus.NewDesc(
|
c.pageFaultsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "page_faults_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "page_faults_total"),
|
||||||
"Page faults by the threads executing in this process.",
|
"Page faults by the threads executing in this process.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pageFileBytes = prometheus.NewDesc(
|
c.pageFileBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "page_file_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "page_file_bytes"),
|
||||||
"Current number of bytes this process has used in the paging file(s).",
|
"Current number of bytes this process has used in the paging file(s).",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.poolBytes = prometheus.NewDesc(
|
c.poolBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pool_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "pool_bytes"),
|
||||||
"Pool Bytes is the last observed number of bytes in the paged or nonpaged pool.",
|
"Pool Bytes is the last observed number of bytes in the paged or nonpaged pool.",
|
||||||
[]string{"process", "process_id", "pool"},
|
[]string{"process", "process_id", "pool"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.priorityBase = prometheus.NewDesc(
|
c.priorityBase = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "priority_base"),
|
prometheus.BuildFQName(types.Namespace, Name, "priority_base"),
|
||||||
"Current base priority of this process. Threads within a process can raise and lower their own base priority relative to the process base priority of the process.",
|
"Current base priority of this process. Threads within a process can raise and lower their own base priority relative to the process base priority of the process.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.privateBytes = prometheus.NewDesc(
|
c.privateBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "private_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "private_bytes"),
|
||||||
"Current number of bytes this process has allocated that cannot be shared with other processes.",
|
"Current number of bytes this process has allocated that cannot be shared with other processes.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.threadCount = prometheus.NewDesc(
|
c.threadCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "threads"),
|
prometheus.BuildFQName(types.Namespace, Name, "threads"),
|
||||||
"Number of threads currently active in this process.",
|
"Number of threads currently active in this process.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.virtualBytes = prometheus.NewDesc(
|
c.virtualBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "virtual_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "virtual_bytes"),
|
||||||
"Current size, in bytes, of the virtual address space that the process is using.",
|
"Current size, in bytes, of the virtual address space that the process is using.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.workingSetPrivate = prometheus.NewDesc(
|
c.workingSetPrivate = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "working_set_private_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "working_set_private_bytes"),
|
||||||
"Size of the working set, in bytes, that is use for this process only and not shared nor shareable by other processes.",
|
"Size of the working set, in bytes, that is use for this process only and not shared nor shareable by other processes.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.workingSetPeak = prometheus.NewDesc(
|
c.workingSetPeak = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "working_set_peak_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "working_set_peak_bytes"),
|
||||||
"Maximum size, in bytes, of the Working Set of this process at any point in time. The Working Set is the set of memory pages touched recently by the threads in the process.",
|
"Maximum size, in bytes, of the Working Set of this process at any point in time. The Working Set is the set of memory pages touched recently by the threads in the process.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.workingSet = prometheus.NewDesc(
|
c.workingSet = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "working_set_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "working_set_bytes"),
|
||||||
"Maximum number of bytes in the working set of this process at any point in time. The working set is the set of memory pages touched recently by the threads in the process.",
|
"Maximum number of bytes in the working set of this process at any point in time. The working set is the set of memory pages touched recently by the threads in the process.",
|
||||||
[]string{"process", "process_id"},
|
[]string{"process", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
@@ -283,7 +283,7 @@ type WorkerProcess struct {
|
|||||||
ProcessId uint64
|
ProcessId uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
data := make([]perflibProcess, 0)
|
data := make([]perflibProcess, 0)
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/utils"
|
"github.com/prometheus-community/windows_exporter/internal/utils"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
@@ -84,79 +84,79 @@ func (c *Collector) Close(_ *slog.Logger) error {
|
|||||||
func (c *Collector) Build(*slog.Logger, *wmi.Client) error {
|
func (c *Collector) Build(*slog.Logger, *wmi.Client) error {
|
||||||
// net
|
// net
|
||||||
c.baseTCPRTT = prometheus.NewDesc(
|
c.baseTCPRTT = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_base_tcp_rtt_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_base_tcp_rtt_seconds"),
|
||||||
"Base TCP round-trip time (RTT) detected in seconds",
|
"Base TCP round-trip time (RTT) detected in seconds",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.baseUDPRTT = prometheus.NewDesc(
|
c.baseUDPRTT = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_base_udp_rtt_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_base_udp_rtt_seconds"),
|
||||||
"Base UDP round-trip time (RTT) detected in seconds.",
|
"Base UDP round-trip time (RTT) detected in seconds.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentTCPBandwidth = prometheus.NewDesc(
|
c.currentTCPBandwidth = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_current_tcp_bandwidth"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_current_tcp_bandwidth"),
|
||||||
"TCP Bandwidth detected in bytes per second.",
|
"TCP Bandwidth detected in bytes per second.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentTCPRTT = prometheus.NewDesc(
|
c.currentTCPRTT = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_current_tcp_rtt_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_current_tcp_rtt_seconds"),
|
||||||
"Average TCP round-trip time (RTT) detected in seconds.",
|
"Average TCP round-trip time (RTT) detected in seconds.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentUDPBandwidth = prometheus.NewDesc(
|
c.currentUDPBandwidth = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_current_udp_bandwidth"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_current_udp_bandwidth"),
|
||||||
"UDP Bandwidth detected in bytes per second.",
|
"UDP Bandwidth detected in bytes per second.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentUDPRTT = prometheus.NewDesc(
|
c.currentUDPRTT = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_current_udp_rtt_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_current_udp_rtt_seconds"),
|
||||||
"Average UDP round-trip time (RTT) detected in seconds.",
|
"Average UDP round-trip time (RTT) detected in seconds.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalReceivedBytes = prometheus.NewDesc(
|
c.totalReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_received_bytes_total"),
|
||||||
"(TotalReceivedBytes)",
|
"(TotalReceivedBytes)",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.totalSentBytes = prometheus.NewDesc(
|
c.totalSentBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_sent_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_sent_bytes_total"),
|
||||||
"(TotalSentBytes)",
|
"(TotalSentBytes)",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.udpPacketsReceivedPerSec = prometheus.NewDesc(
|
c.udpPacketsReceivedPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_udp_packets_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_udp_packets_received_total"),
|
||||||
"Rate in packets per second at which packets are received over UDP.",
|
"Rate in packets per second at which packets are received over UDP.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.udpPacketsSentPerSec = prometheus.NewDesc(
|
c.udpPacketsSentPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_udp_packets_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_udp_packets_sent_total"),
|
||||||
"Rate in packets per second at which packets are sent over UDP.",
|
"Rate in packets per second at which packets are sent over UDP.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.fecRate = prometheus.NewDesc(
|
c.fecRate = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_fec_rate"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_fec_rate"),
|
||||||
"Forward Error Correction (FEC) percentage",
|
"Forward Error Correction (FEC) percentage",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.lossRate = prometheus.NewDesc(
|
c.lossRate = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_loss_rate"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_loss_rate"),
|
||||||
"Loss percentage",
|
"Loss percentage",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.retransmissionRate = prometheus.NewDesc(
|
c.retransmissionRate = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "net_retransmission_rate"),
|
prometheus.BuildFQName(types.Namespace, Name, "net_retransmission_rate"),
|
||||||
"Percentage of packets that have been retransmitted",
|
"Percentage of packets that have been retransmitted",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
@@ -164,43 +164,43 @@ func (c *Collector) Build(*slog.Logger, *wmi.Client) error {
|
|||||||
|
|
||||||
// gfx
|
// gfx
|
||||||
c.averageEncodingTime = prometheus.NewDesc(
|
c.averageEncodingTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "gfx_average_encoding_time_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "gfx_average_encoding_time_seconds"),
|
||||||
"Average frame encoding time in seconds",
|
"Average frame encoding time in seconds",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.frameQuality = prometheus.NewDesc(
|
c.frameQuality = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "gfx_frame_quality"),
|
prometheus.BuildFQName(types.Namespace, Name, "gfx_frame_quality"),
|
||||||
"Quality of the output frame expressed as a percentage of the quality of the source frame.",
|
"Quality of the output frame expressed as a percentage of the quality of the source frame.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.framesSkippedPerSecondInsufficientResources = prometheus.NewDesc(
|
c.framesSkippedPerSecondInsufficientResources = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "gfx_frames_skipped_insufficient_resource_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "gfx_frames_skipped_insufficient_resource_total"),
|
||||||
"Number of frames skipped per second due to insufficient client resources.",
|
"Number of frames skipped per second due to insufficient client resources.",
|
||||||
[]string{"session_name", "resource"},
|
[]string{"session_name", "resource"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.graphicsCompressionRatio = prometheus.NewDesc(
|
c.graphicsCompressionRatio = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "gfx_graphics_compression_ratio"),
|
prometheus.BuildFQName(types.Namespace, Name, "gfx_graphics_compression_ratio"),
|
||||||
"Ratio of the number of bytes encoded to the number of bytes input.",
|
"Ratio of the number of bytes encoded to the number of bytes input.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.inputFramesPerSecond = prometheus.NewDesc(
|
c.inputFramesPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "gfx_input_frames_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "gfx_input_frames_total"),
|
||||||
"Number of sources frames provided as input to RemoteFX graphics per second.",
|
"Number of sources frames provided as input to RemoteFX graphics per second.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outputFramesPerSecond = prometheus.NewDesc(
|
c.outputFramesPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "gfx_output_frames_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "gfx_output_frames_total"),
|
||||||
"Number of frames sent to the client per second.",
|
"Number of frames sent to the client per second.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sourceFramesPerSecond = prometheus.NewDesc(
|
c.sourceFramesPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "gfx_source_frames_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "gfx_source_frames_total"),
|
||||||
"Number of frames composed by the source (DWM) per second.",
|
"Number of frames composed by the source (DWM) per second.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
@@ -211,7 +211,7 @@ func (c *Collector) Build(*slog.Logger, *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectRemoteFXNetworkCount(ctx, logger, ch); err != nil {
|
if err := c.collectRemoteFXNetworkCount(ctx, logger, ch); err != nil {
|
||||||
logger.Error("failed collecting terminal services session count metrics",
|
logger.Error("failed collecting terminal services session count metrics",
|
||||||
@@ -249,7 +249,7 @@ type perflibRemoteFxNetwork struct {
|
|||||||
RetransmissionRate float64 `perflib:"Percentage of packets that have been retransmitted"`
|
RetransmissionRate float64 `perflib:"Percentage of packets that have been retransmitted"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectRemoteFXNetworkCount(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectRemoteFXNetworkCount(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
dst := make([]perflibRemoteFxNetwork, 0)
|
dst := make([]perflibRemoteFxNetwork, 0)
|
||||||
|
|
||||||
@@ -362,7 +362,7 @@ type perflibRemoteFxGraphics struct {
|
|||||||
SourceFramesPerSecond float64 `perflib:"Source Frames/Second"`
|
SourceFramesPerSecond float64 `perflib:"Source Frames/Second"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectRemoteFXGraphicsCounters(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectRemoteFXGraphicsCounters(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
dst := make([]perflibRemoteFxGraphics, 0)
|
dst := make([]perflibRemoteFxGraphics, 0)
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/go-ole/go-ole"
|
"github.com/go-ole/go-ole"
|
||||||
"github.com/go-ole/go-ole/oleutil"
|
"github.com/go-ole/go-ole/oleutil"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -26,8 +26,8 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConfigDefaults = Config{
|
var ConfigDefaults = Config{
|
||||||
TaskExclude: types2.RegExpEmpty,
|
TaskExclude: types.RegExpEmpty,
|
||||||
TaskInclude: types2.RegExpAny,
|
TaskInclude: types.RegExpAny,
|
||||||
}
|
}
|
||||||
|
|
||||||
type Collector struct {
|
type Collector struct {
|
||||||
@@ -160,21 +160,21 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.lastResult = prometheus.NewDesc(
|
c.lastResult = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "last_result"),
|
prometheus.BuildFQName(types.Namespace, Name, "last_result"),
|
||||||
"The result that was returned the last time the registered task was run",
|
"The result that was returned the last time the registered task was run",
|
||||||
[]string{"task"},
|
[]string{"task"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.missedRuns = prometheus.NewDesc(
|
c.missedRuns = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "missed_runs"),
|
prometheus.BuildFQName(types.Namespace, Name, "missed_runs"),
|
||||||
"The number of times the registered task missed a scheduled run",
|
"The number of times the registered task missed a scheduled run",
|
||||||
[]string{"task"},
|
[]string{"task"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.state = prometheus.NewDesc(
|
c.state = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "state"),
|
prometheus.BuildFQName(types.Namespace, Name, "state"),
|
||||||
"The current state of a scheduled task",
|
"The current state of a scheduled task",
|
||||||
[]string{"task", "state"},
|
[]string{"task", "state"},
|
||||||
nil,
|
nil,
|
||||||
@@ -183,7 +183,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting user metrics",
|
logger.Error("failed collecting user metrics",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"unsafe"
|
"unsafe"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
@@ -26,8 +26,8 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConfigDefaults = Config{
|
var ConfigDefaults = Config{
|
||||||
ServiceInclude: types2.RegExpAny,
|
ServiceInclude: types.RegExpAny,
|
||||||
ServiceExclude: types2.RegExpEmpty,
|
ServiceExclude: types.RegExpEmpty,
|
||||||
}
|
}
|
||||||
|
|
||||||
// A Collector is a Prometheus Collector for service metrics.
|
// A Collector is a Prometheus Collector for service metrics.
|
||||||
@@ -114,25 +114,25 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.info = prometheus.NewDesc(
|
c.info = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "info"),
|
prometheus.BuildFQName(types.Namespace, Name, "info"),
|
||||||
"A metric with a constant '1' value labeled with service information",
|
"A metric with a constant '1' value labeled with service information",
|
||||||
[]string{"name", "display_name", "run_as", "path_name"},
|
[]string{"name", "display_name", "run_as", "path_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.state = prometheus.NewDesc(
|
c.state = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "state"),
|
prometheus.BuildFQName(types.Namespace, Name, "state"),
|
||||||
"The state of the service (State)",
|
"The state of the service (State)",
|
||||||
[]string{"name", "state"},
|
[]string{"name", "state"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.startMode = prometheus.NewDesc(
|
c.startMode = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "start_mode"),
|
prometheus.BuildFQName(types.Namespace, Name, "start_mode"),
|
||||||
"The start mode of the service (StartMode)",
|
"The start mode of the service (StartMode)",
|
||||||
[]string{"name", "start_mode"},
|
[]string{"name", "start_mode"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processID = prometheus.NewDesc(
|
c.processID = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "process"),
|
prometheus.BuildFQName(types.Namespace, Name, "process"),
|
||||||
"Process of started service. The value is the creation time of the process as a unix timestamp.",
|
"Process of started service. The value is the creation time of the process as a unix timestamp.",
|
||||||
[]string{"name", "process_id"},
|
[]string{"name", "process_id"},
|
||||||
nil,
|
nil,
|
||||||
@@ -161,7 +161,7 @@ func (c *Collector) Close(logger *slog.Logger) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
if err := c.collect(logger, ch); err != nil {
|
if err := c.collect(logger, ch); err != nil {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -60,7 +60,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
// desc creates a new prometheus description
|
// desc creates a new prometheus description
|
||||||
desc := func(metricName string, description string, labels ...string) *prometheus.Desc {
|
desc := func(metricName string, description string, labels ...string) *prometheus.Desc {
|
||||||
return prometheus.NewDesc(
|
return prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "smb", metricName),
|
prometheus.BuildFQName(types.Namespace, "smb", metricName),
|
||||||
description,
|
description,
|
||||||
labels,
|
labels,
|
||||||
nil,
|
nil,
|
||||||
@@ -74,7 +74,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Collect collects smb metrics and sends them to prometheus.
|
// Collect collects smb metrics and sends them to prometheus.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectServerShares(ctx, logger, ch); err != nil {
|
if err := c.collectServerShares(ctx, logger, ch); err != nil {
|
||||||
logger.Error("failed to collect server share metrics",
|
logger.Error("failed to collect server share metrics",
|
||||||
@@ -95,7 +95,7 @@ type perflibServerShares struct {
|
|||||||
TreeConnectCount float64 `perflib:"Tree Connect Count"`
|
TreeConnectCount float64 `perflib:"Tree Connect Count"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectServerShares(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectServerShares(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibServerShares
|
var data []perflibServerShares
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -82,7 +82,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
// desc creates a new prometheus description
|
// desc creates a new prometheus description
|
||||||
desc := func(metricName string, description string, labels []string) *prometheus.Desc {
|
desc := func(metricName string, description string, labels []string) *prometheus.Desc {
|
||||||
return prometheus.NewDesc(
|
return prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "smbclient", metricName),
|
prometheus.BuildFQName(types.Namespace, "smbclient", metricName),
|
||||||
description,
|
description,
|
||||||
labels,
|
labels,
|
||||||
nil,
|
nil,
|
||||||
@@ -178,7 +178,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Collect collects smb client metrics and sends them to prometheus.
|
// Collect collects smb client metrics and sends them to prometheus.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectClientShares(ctx, logger, ch); err != nil {
|
if err := c.collectClientShares(ctx, logger, ch); err != nil {
|
||||||
logger.Error("Error in ClientShares",
|
logger.Error("Error in ClientShares",
|
||||||
@@ -218,7 +218,7 @@ type perflibClientShares struct {
|
|||||||
WriteRequestsPerSec float64 `perflib:"Write Requests/sec"`
|
WriteRequestsPerSec float64 `perflib:"Write Requests/sec"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectClientShares(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectClientShares(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var data []perflibClientShares
|
var data []perflibClientShares
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -22,8 +22,8 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var ConfigDefaults = Config{
|
var ConfigDefaults = Config{
|
||||||
ServerInclude: types2.RegExpAny,
|
ServerInclude: types.RegExpAny,
|
||||||
ServerExclude: types2.RegExpEmpty,
|
ServerExclude: types.RegExpEmpty,
|
||||||
}
|
}
|
||||||
|
|
||||||
type Collector struct {
|
type Collector struct {
|
||||||
@@ -147,253 +147,253 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
logger.Info("smtp collector is in an experimental state! Metrics for this collector have not been tested.")
|
logger.Info("smtp collector is in an experimental state! Metrics for this collector have not been tested.")
|
||||||
|
|
||||||
c.badMailedMessagesBadPickupFileTotal = prometheus.NewDesc(
|
c.badMailedMessagesBadPickupFileTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "badmailed_messages_bad_pickup_file_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "badmailed_messages_bad_pickup_file_total"),
|
||||||
"Total number of malformed pickup messages sent to badmail",
|
"Total number of malformed pickup messages sent to badmail",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.badMailedMessagesGeneralFailureTotal = prometheus.NewDesc(
|
c.badMailedMessagesGeneralFailureTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "badmailed_messages_general_failure_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "badmailed_messages_general_failure_total"),
|
||||||
"Total number of messages sent to badmail for reasons not associated with a specific counter",
|
"Total number of messages sent to badmail for reasons not associated with a specific counter",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.badMailedMessagesHopCountExceededTotal = prometheus.NewDesc(
|
c.badMailedMessagesHopCountExceededTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "badmailed_messages_hop_count_exceeded_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "badmailed_messages_hop_count_exceeded_total"),
|
||||||
"Total number of messages sent to badmail because they had exceeded the maximum hop count",
|
"Total number of messages sent to badmail because they had exceeded the maximum hop count",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.badMailedMessagesNDROfDSNTotal = prometheus.NewDesc(
|
c.badMailedMessagesNDROfDSNTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "badmailed_messages_ndr_of_dns_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "badmailed_messages_ndr_of_dns_total"),
|
||||||
"Total number of Delivery Status Notifications sent to badmail because they could not be delivered",
|
"Total number of Delivery Status Notifications sent to badmail because they could not be delivered",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.badMailedMessagesNoRecipientsTotal = prometheus.NewDesc(
|
c.badMailedMessagesNoRecipientsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "badmailed_messages_no_recipients_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "badmailed_messages_no_recipients_total"),
|
||||||
"Total number of messages sent to badmail because they had no recipients",
|
"Total number of messages sent to badmail because they had no recipients",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.badMailedMessagesTriggeredViaEventTotal = prometheus.NewDesc(
|
c.badMailedMessagesTriggeredViaEventTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "badmailed_messages_triggered_via_event_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "badmailed_messages_triggered_via_event_total"),
|
||||||
"Total number of messages sent to badmail at the request of a server event sink",
|
"Total number of messages sent to badmail at the request of a server event sink",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesSentTotal = prometheus.NewDesc(
|
c.bytesSentTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "bytes_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "bytes_sent_total"),
|
||||||
"Total number of bytes sent",
|
"Total number of bytes sent",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesReceivedTotal = prometheus.NewDesc(
|
c.bytesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "bytes_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "bytes_received_total"),
|
||||||
"Total number of bytes received",
|
"Total number of bytes received",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.categorizerQueueLength = prometheus.NewDesc(
|
c.categorizerQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "categorizer_queue_length"),
|
prometheus.BuildFQName(types.Namespace, Name, "categorizer_queue_length"),
|
||||||
"Number of messages in the categorizer queue",
|
"Number of messages in the categorizer queue",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.connectionErrorsTotal = prometheus.NewDesc(
|
c.connectionErrorsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_errors_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_errors_total"),
|
||||||
"Total number of connection errors",
|
"Total number of connection errors",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.currentMessagesInLocalDelivery = prometheus.NewDesc(
|
c.currentMessagesInLocalDelivery = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_messages_in_local_delivery"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_messages_in_local_delivery"),
|
||||||
"Number of messages that are currently being processed by a server event sink for local delivery",
|
"Number of messages that are currently being processed by a server event sink for local delivery",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.directoryDropsTotal = prometheus.NewDesc(
|
c.directoryDropsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "directory_drops_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "directory_drops_total"),
|
||||||
"Total number of messages placed in a drop directory",
|
"Total number of messages placed in a drop directory",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dsnFailuresTotal = prometheus.NewDesc(
|
c.dsnFailuresTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "dsn_failures_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "dsn_failures_total"),
|
||||||
"Total number of failed DSN generation attempts",
|
"Total number of failed DSN generation attempts",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.dnsQueriesTotal = prometheus.NewDesc(
|
c.dnsQueriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "dns_queries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "dns_queries_total"),
|
||||||
"Total number of DNS lookups",
|
"Total number of DNS lookups",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.etrnMessagesTotal = prometheus.NewDesc(
|
c.etrnMessagesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "etrn_messages_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "etrn_messages_total"),
|
||||||
"Total number of ETRN messages received by the server",
|
"Total number of ETRN messages received by the server",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.inboundConnectionsCurrent = prometheus.NewDesc(
|
c.inboundConnectionsCurrent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "inbound_connections_current"),
|
prometheus.BuildFQName(types.Namespace, Name, "inbound_connections_current"),
|
||||||
"Total number of connections currently inbound",
|
"Total number of connections currently inbound",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.inboundConnectionsTotal = prometheus.NewDesc(
|
c.inboundConnectionsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "inbound_connections_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "inbound_connections_total"),
|
||||||
"Total number of inbound connections received",
|
"Total number of inbound connections received",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.localQueueLength = prometheus.NewDesc(
|
c.localQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "local_queue_length"),
|
prometheus.BuildFQName(types.Namespace, Name, "local_queue_length"),
|
||||||
"Number of messages in the local queue",
|
"Number of messages in the local queue",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.localRetryQueueLength = prometheus.NewDesc(
|
c.localRetryQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "local_retry_queue_length"),
|
prometheus.BuildFQName(types.Namespace, Name, "local_retry_queue_length"),
|
||||||
"Number of messages in the local retry queue",
|
"Number of messages in the local retry queue",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.mailFilesOpen = prometheus.NewDesc(
|
c.mailFilesOpen = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mail_files_open"),
|
prometheus.BuildFQName(types.Namespace, Name, "mail_files_open"),
|
||||||
"Number of handles to open mail files",
|
"Number of handles to open mail files",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messageBytesReceivedTotal = prometheus.NewDesc(
|
c.messageBytesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "message_bytes_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "message_bytes_received_total"),
|
||||||
"Total number of bytes received in messages",
|
"Total number of bytes received in messages",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messageBytesSentTotal = prometheus.NewDesc(
|
c.messageBytesSentTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "message_bytes_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "message_bytes_sent_total"),
|
||||||
"Total number of bytes sent in messages",
|
"Total number of bytes sent in messages",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messageDeliveryRetriesTotal = prometheus.NewDesc(
|
c.messageDeliveryRetriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "message_delivery_retries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "message_delivery_retries_total"),
|
||||||
"Total number of local deliveries that were retried",
|
"Total number of local deliveries that were retried",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messageSendRetriesTotal = prometheus.NewDesc(
|
c.messageSendRetriesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "message_send_retries_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "message_send_retries_total"),
|
||||||
"Total number of outbound message sends that were retried",
|
"Total number of outbound message sends that were retried",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesCurrentlyUndeliverable = prometheus.NewDesc(
|
c.messagesCurrentlyUndeliverable = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_currently_undeliverable"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_currently_undeliverable"),
|
||||||
"Number of messages that have been reported as currently undeliverable by routing",
|
"Number of messages that have been reported as currently undeliverable by routing",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesDeliveredTotal = prometheus.NewDesc(
|
c.messagesDeliveredTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_delivered_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_delivered_total"),
|
||||||
"Total number of messages delivered to local mailboxes",
|
"Total number of messages delivered to local mailboxes",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesPendingRouting = prometheus.NewDesc(
|
c.messagesPendingRouting = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_pending_routing"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_pending_routing"),
|
||||||
"Number of messages that have been categorized but not routed",
|
"Number of messages that have been categorized but not routed",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesReceivedTotal = prometheus.NewDesc(
|
c.messagesReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_received_total"),
|
||||||
"Total number of inbound messages accepted",
|
"Total number of inbound messages accepted",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesRefusedForAddressObjectsTotal = prometheus.NewDesc(
|
c.messagesRefusedForAddressObjectsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_refused_for_address_objects_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_refused_for_address_objects_total"),
|
||||||
"Total number of messages refused due to no address objects",
|
"Total number of messages refused due to no address objects",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesRefusedForMailObjectsTotal = prometheus.NewDesc(
|
c.messagesRefusedForMailObjectsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_refused_for_mail_objects_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_refused_for_mail_objects_total"),
|
||||||
"Total number of messages refused due to no mail objects",
|
"Total number of messages refused due to no mail objects",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesRefusedForSizeTotal = prometheus.NewDesc(
|
c.messagesRefusedForSizeTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_refused_for_size_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_refused_for_size_total"),
|
||||||
"Total number of messages rejected because they were too big",
|
"Total number of messages rejected because they were too big",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesSentTotal = prometheus.NewDesc(
|
c.messagesSentTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_sent_total"),
|
||||||
"Total number of outbound messages sent",
|
"Total number of outbound messages sent",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.messagesSubmittedTotal = prometheus.NewDesc(
|
c.messagesSubmittedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "messages_submitted_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "messages_submitted_total"),
|
||||||
"Total number of messages submitted to queuing for delivery",
|
"Total number of messages submitted to queuing for delivery",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ndrsGeneratedTotal = prometheus.NewDesc(
|
c.ndrsGeneratedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ndrs_generated_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ndrs_generated_total"),
|
||||||
"Total number of non-delivery reports that have been generated",
|
"Total number of non-delivery reports that have been generated",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outboundConnectionsCurrent = prometheus.NewDesc(
|
c.outboundConnectionsCurrent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "outbound_connections_current"),
|
prometheus.BuildFQName(types.Namespace, Name, "outbound_connections_current"),
|
||||||
"Number of connections currently outbound",
|
"Number of connections currently outbound",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outboundConnectionsRefusedTotal = prometheus.NewDesc(
|
c.outboundConnectionsRefusedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "outbound_connections_refused_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "outbound_connections_refused_total"),
|
||||||
"Total number of connection attempts refused by remote sites",
|
"Total number of connection attempts refused by remote sites",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.outboundConnectionsTotal = prometheus.NewDesc(
|
c.outboundConnectionsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "outbound_connections_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "outbound_connections_total"),
|
||||||
"Total number of outbound connections attempted",
|
"Total number of outbound connections attempted",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pickupDirectoryMessagesRetrievedTotal = prometheus.NewDesc(
|
c.pickupDirectoryMessagesRetrievedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pickup_directory_messages_retrieved_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "pickup_directory_messages_retrieved_total"),
|
||||||
"Total number of messages retrieved from the mail pick-up directory",
|
"Total number of messages retrieved from the mail pick-up directory",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.queueFilesOpen = prometheus.NewDesc(
|
c.queueFilesOpen = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "queue_files_open"),
|
prometheus.BuildFQName(types.Namespace, Name, "queue_files_open"),
|
||||||
"Number of handles to open queue files",
|
"Number of handles to open queue files",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.remoteQueueLength = prometheus.NewDesc(
|
c.remoteQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "remote_queue_length"),
|
prometheus.BuildFQName(types.Namespace, Name, "remote_queue_length"),
|
||||||
"Number of messages in the remote queue",
|
"Number of messages in the remote queue",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.remoteRetryQueueLength = prometheus.NewDesc(
|
c.remoteRetryQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "remote_retry_queue_length"),
|
prometheus.BuildFQName(types.Namespace, Name, "remote_retry_queue_length"),
|
||||||
"Number of messages in the retry queue for remote delivery",
|
"Number of messages in the retry queue for remote delivery",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.routingTableLookupsTotal = prometheus.NewDesc(
|
c.routingTableLookupsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "routing_table_lookups_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "routing_table_lookups_total"),
|
||||||
"Total number of routing table lookups",
|
"Total number of routing table lookups",
|
||||||
[]string{"site"},
|
[]string{"site"},
|
||||||
nil,
|
nil,
|
||||||
@@ -404,7 +404,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ctx, logger, ch); err != nil {
|
if err := c.collect(ctx, logger, ch); err != nil {
|
||||||
logger.Error("failed collecting smtp metrics",
|
logger.Error("failed collecting smtp metrics",
|
||||||
@@ -465,7 +465,7 @@ type PerflibSMTPServer struct {
|
|||||||
RoutingTableLookupsTotal float64 `perflib:"Routing Table Lookups Total"`
|
RoutingTableLookupsTotal float64 `perflib:"Routing Table Lookups Total"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var dst []PerflibSMTPServer
|
var dst []PerflibSMTPServer
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -63,50 +63,50 @@ func (c *Collector) Close(_ *slog.Logger) error {
|
|||||||
|
|
||||||
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
||||||
c.contextSwitchesTotal = prometheus.NewDesc(
|
c.contextSwitchesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "context_switches_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "context_switches_total"),
|
||||||
"Total number of context switches (WMI source: PerfOS_System.ContextSwitchesPersec)",
|
"Total number of context switches (WMI source: PerfOS_System.ContextSwitchesPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.exceptionDispatchesTotal = prometheus.NewDesc(
|
c.exceptionDispatchesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "exception_dispatches_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "exception_dispatches_total"),
|
||||||
"Total number of exceptions dispatched (WMI source: PerfOS_System.ExceptionDispatchesPersec)",
|
"Total number of exceptions dispatched (WMI source: PerfOS_System.ExceptionDispatchesPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processes = prometheus.NewDesc(
|
c.processes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processes"),
|
prometheus.BuildFQName(types.Namespace, Name, "processes"),
|
||||||
"Current number of processes (WMI source: PerfOS_System.Processes)",
|
"Current number of processes (WMI source: PerfOS_System.Processes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.processesLimit = prometheus.NewDesc(
|
c.processesLimit = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processes_limit"),
|
prometheus.BuildFQName(types.Namespace, Name, "processes_limit"),
|
||||||
"Maximum number of processes.",
|
"Maximum number of processes.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.processorQueueLength = prometheus.NewDesc(
|
c.processorQueueLength = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "processor_queue_length"),
|
prometheus.BuildFQName(types.Namespace, Name, "processor_queue_length"),
|
||||||
"Length of processor queue (WMI source: PerfOS_System.ProcessorQueueLength)",
|
"Length of processor queue (WMI source: PerfOS_System.ProcessorQueueLength)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.systemCallsTotal = prometheus.NewDesc(
|
c.systemCallsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "system_calls_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "system_calls_total"),
|
||||||
"Total number of system calls (WMI source: PerfOS_System.SystemCallsPersec)",
|
"Total number of system calls (WMI source: PerfOS_System.SystemCallsPersec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.systemUpTime = prometheus.NewDesc(
|
c.systemUpTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "system_up_time"),
|
prometheus.BuildFQName(types.Namespace, Name, "system_up_time"),
|
||||||
"System boot time (WMI source: PerfOS_System.SystemUpTime)",
|
"System boot time (WMI source: PerfOS_System.SystemUpTime)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.threads = prometheus.NewDesc(
|
c.threads = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "threads"),
|
prometheus.BuildFQName(types.Namespace, Name, "threads"),
|
||||||
"Current number of threads (WMI source: PerfOS_System.Threads)",
|
"Current number of threads (WMI source: PerfOS_System.Threads)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -117,7 +117,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ctx, logger, ch); err != nil {
|
if err := c.collect(ctx, logger, ch); err != nil {
|
||||||
logger.Error("failed collecting system metrics",
|
logger.Error("failed collecting system metrics",
|
||||||
@@ -142,7 +142,7 @@ type system struct {
|
|||||||
Threads float64 `perflib:"Threads"`
|
Threads float64 `perflib:"Threads"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var dst []system
|
var dst []system
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
iphlpapi2 "github.com/prometheus-community/windows_exporter/internal/headers/iphlpapi"
|
"github.com/prometheus-community/windows_exporter/internal/headers/iphlpapi"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
"github.com/prometheus-community/windows_exporter/internal/perfdata"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
@@ -125,61 +125,61 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.connectionFailures = prometheus.NewDesc(
|
c.connectionFailures = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_failures_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_failures_total"),
|
||||||
"(TCP.ConnectionFailures)",
|
"(TCP.ConnectionFailures)",
|
||||||
[]string{"af"},
|
[]string{"af"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.connectionsActive = prometheus.NewDesc(
|
c.connectionsActive = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connections_active_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connections_active_total"),
|
||||||
"(TCP.ConnectionsActive)",
|
"(TCP.ConnectionsActive)",
|
||||||
[]string{"af"},
|
[]string{"af"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.connectionsEstablished = prometheus.NewDesc(
|
c.connectionsEstablished = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connections_established"),
|
prometheus.BuildFQName(types.Namespace, Name, "connections_established"),
|
||||||
"(TCP.ConnectionsEstablished)",
|
"(TCP.ConnectionsEstablished)",
|
||||||
[]string{"af"},
|
[]string{"af"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.connectionsPassive = prometheus.NewDesc(
|
c.connectionsPassive = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connections_passive_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connections_passive_total"),
|
||||||
"(TCP.ConnectionsPassive)",
|
"(TCP.ConnectionsPassive)",
|
||||||
[]string{"af"},
|
[]string{"af"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.connectionsReset = prometheus.NewDesc(
|
c.connectionsReset = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connections_reset_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connections_reset_total"),
|
||||||
"(TCP.ConnectionsReset)",
|
"(TCP.ConnectionsReset)",
|
||||||
[]string{"af"},
|
[]string{"af"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.segmentsTotal = prometheus.NewDesc(
|
c.segmentsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "segments_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "segments_total"),
|
||||||
"(TCP.SegmentsTotal)",
|
"(TCP.SegmentsTotal)",
|
||||||
[]string{"af"},
|
[]string{"af"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.segmentsReceivedTotal = prometheus.NewDesc(
|
c.segmentsReceivedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "segments_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "segments_received_total"),
|
||||||
"(TCP.SegmentsReceivedTotal)",
|
"(TCP.SegmentsReceivedTotal)",
|
||||||
[]string{"af"},
|
[]string{"af"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.segmentsRetransmittedTotal = prometheus.NewDesc(
|
c.segmentsRetransmittedTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "segments_retransmitted_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "segments_retransmitted_total"),
|
||||||
"(TCP.SegmentsRetransmittedTotal)",
|
"(TCP.SegmentsRetransmittedTotal)",
|
||||||
[]string{"af"},
|
[]string{"af"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.segmentsSentTotal = prometheus.NewDesc(
|
c.segmentsSentTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "segments_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "segments_sent_total"),
|
||||||
"(TCP.SegmentsSentTotal)",
|
"(TCP.SegmentsSentTotal)",
|
||||||
[]string{"af"},
|
[]string{"af"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.connectionsStateCount = prometheus.NewDesc(
|
c.connectionsStateCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connections_state_count"),
|
prometheus.BuildFQName(types.Namespace, Name, "connections_state_count"),
|
||||||
"Number of TCP connections by state and address family",
|
"Number of TCP connections by state and address family",
|
||||||
[]string{"af", "state"}, nil,
|
[]string{"af", "state"}, nil,
|
||||||
)
|
)
|
||||||
@@ -189,7 +189,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
if slices.Contains(c.config.CollectorsEnabled, "metrics") {
|
if slices.Contains(c.config.CollectorsEnabled, "metrics") {
|
||||||
@@ -291,14 +291,14 @@ func (c *Collector) writeTCPCounters(ch chan<- prometheus.Metric, metrics map[st
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectConnectionsState(ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectConnectionsState(ch chan<- prometheus.Metric) error {
|
||||||
stateCounts, err := iphlpapi2.GetTCPConnectionStates(windows.AF_INET)
|
stateCounts, err := iphlpapi.GetTCPConnectionStates(windows.AF_INET)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to collect TCP connection states for %s: %w", "ipv4", err)
|
return fmt.Errorf("failed to collect TCP connection states for %s: %w", "ipv4", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
c.sendTCPStateMetrics(ch, stateCounts, "ipv4")
|
c.sendTCPStateMetrics(ch, stateCounts, "ipv4")
|
||||||
|
|
||||||
stateCounts, err = iphlpapi2.GetTCPConnectionStates(windows.AF_INET6)
|
stateCounts, err = iphlpapi.GetTCPConnectionStates(windows.AF_INET6)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to collect TCP6 connection states for %s: %w", "ipv6", err)
|
return fmt.Errorf("failed to collect TCP6 connection states for %s: %w", "ipv6", err)
|
||||||
}
|
}
|
||||||
@@ -308,7 +308,7 @@ func (c *Collector) collectConnectionsState(ch chan<- prometheus.Metric) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) sendTCPStateMetrics(ch chan<- prometheus.Metric, stateCounts map[iphlpapi2.MIB_TCP_STATE]uint32, af string) {
|
func (c *Collector) sendTCPStateMetrics(ch chan<- prometheus.Metric, stateCounts map[iphlpapi.MIB_TCP_STATE]uint32, af string) {
|
||||||
for state, count := range stateCounts {
|
for state, count := range stateCounts {
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
c.connectionsStateCount,
|
c.connectionsStateCount,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -111,227 +111,227 @@ func (c *Collector) Build(logger *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
|
|
||||||
c.audioBytesReceived = prometheus.NewDesc(
|
c.audioBytesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "audio_bytes_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "audio_bytes_received_total"),
|
||||||
"(AudioBytesReceived)",
|
"(AudioBytesReceived)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.audioBytesSent = prometheus.NewDesc(
|
c.audioBytesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "audio_bytes_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "audio_bytes_sent_total"),
|
||||||
"(AudioBytesSent)",
|
"(AudioBytesSent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.audioRXBWKBitPerSec = prometheus.NewDesc(
|
c.audioRXBWKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "audio_rx_bw_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "audio_rx_bw_KBit_persec"),
|
||||||
"(AudioRXBWKBitPerSec)",
|
"(AudioRXBWKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.audioTXBWKBitPerSec = prometheus.NewDesc(
|
c.audioTXBWKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "audio_tx_bw_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "audio_tx_bw_KBit_persec"),
|
||||||
"(AudioTXBWKBitPerSec)",
|
"(AudioTXBWKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.audioTXBWLimitKBitPerSec = prometheus.NewDesc(
|
c.audioTXBWLimitKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "audio_tx_bw_limit_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "audio_tx_bw_limit_KBit_persec"),
|
||||||
"(AudioTXBWLimitKBitPerSec)",
|
"(AudioTXBWLimitKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.bytesReceived = prometheus.NewDesc(
|
c.bytesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "bytes_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "bytes_received_total"),
|
||||||
"(BytesReceived)",
|
"(BytesReceived)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.bytesSent = prometheus.NewDesc(
|
c.bytesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "bytes_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "bytes_sent_total"),
|
||||||
"(BytesSent)",
|
"(BytesSent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsReceived = prometheus.NewDesc(
|
c.packetsReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_received_total"),
|
||||||
"(PacketsReceived)",
|
"(PacketsReceived)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.packetsSent = prometheus.NewDesc(
|
c.packetsSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "packets_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "packets_sent_total"),
|
||||||
"(PacketsSent)",
|
"(PacketsSent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.rxPacketsLost = prometheus.NewDesc(
|
c.rxPacketsLost = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rx_packets_lost_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "rx_packets_lost_total"),
|
||||||
"(RXPacketsLost)",
|
"(RXPacketsLost)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionDurationSeconds = prometheus.NewDesc(
|
c.sessionDurationSeconds = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_duration_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_duration_seconds_total"),
|
||||||
"(SessionDurationSeconds)",
|
"(SessionDurationSeconds)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.txPacketsLost = prometheus.NewDesc(
|
c.txPacketsLost = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "tx_packets_lost_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "tx_packets_lost_total"),
|
||||||
"(TXPacketsLost)",
|
"(TXPacketsLost)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.imagingActiveMinimumQuality = prometheus.NewDesc(
|
c.imagingActiveMinimumQuality = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_active_min_quality"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_active_min_quality"),
|
||||||
"(ImagingActiveMinimumQuality)",
|
"(ImagingActiveMinimumQuality)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingApex2800Offload = prometheus.NewDesc(
|
c.imagingApex2800Offload = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_apex2800_offload"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_apex2800_offload"),
|
||||||
"(ImagingApex2800Offload)",
|
"(ImagingApex2800Offload)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingBytesReceived = prometheus.NewDesc(
|
c.imagingBytesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_bytes_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_bytes_received_total"),
|
||||||
"(ImagingBytesReceived)",
|
"(ImagingBytesReceived)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingBytesSent = prometheus.NewDesc(
|
c.imagingBytesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_bytes_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_bytes_sent_total"),
|
||||||
"(ImagingBytesSent)",
|
"(ImagingBytesSent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingDecoderCapabilityKBitPerSec = prometheus.NewDesc(
|
c.imagingDecoderCapabilityKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_decoder_capability_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_decoder_capability_KBit_persec"),
|
||||||
"(ImagingDecoderCapabilityKBitPerSec)",
|
"(ImagingDecoderCapabilityKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingEncodedFramesPerSec = prometheus.NewDesc(
|
c.imagingEncodedFramesPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_encoded_frames_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_encoded_frames_persec"),
|
||||||
"(ImagingEncodedFramesPerSec)",
|
"(ImagingEncodedFramesPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingMegapixelPerSec = prometheus.NewDesc(
|
c.imagingMegapixelPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_megapixel_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_megapixel_persec"),
|
||||||
"(ImagingMegapixelPerSec)",
|
"(ImagingMegapixelPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingNegativeAcknowledgements = prometheus.NewDesc(
|
c.imagingNegativeAcknowledgements = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_negative_acks_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_negative_acks_total"),
|
||||||
"(ImagingNegativeAcknowledgements)",
|
"(ImagingNegativeAcknowledgements)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingRXBWKBitPerSec = prometheus.NewDesc(
|
c.imagingRXBWKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_rx_bw_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_rx_bw_KBit_persec"),
|
||||||
"(ImagingRXBWKBitPerSec)",
|
"(ImagingRXBWKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingSVGAdevTapframesPerSec = prometheus.NewDesc(
|
c.imagingSVGAdevTapframesPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_svga_devtap_frames_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_svga_devtap_frames_persec"),
|
||||||
"(ImagingSVGAdevTapframesPerSec)",
|
"(ImagingSVGAdevTapframesPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingTXBWKBitPerSec = prometheus.NewDesc(
|
c.imagingTXBWKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_tx_bw_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_tx_bw_KBit_persec"),
|
||||||
"(ImagingTXBWKBitPerSec)",
|
"(ImagingTXBWKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.RoundTripLatencyms = prometheus.NewDesc(
|
c.RoundTripLatencyms = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "round_trip_latency_ms"),
|
prometheus.BuildFQName(types.Namespace, Name, "round_trip_latency_ms"),
|
||||||
"(RoundTripLatencyms)",
|
"(RoundTripLatencyms)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.rxBWKBitPerSec = prometheus.NewDesc(
|
c.rxBWKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rx_bw_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "rx_bw_KBit_persec"),
|
||||||
"(RXBWKBitPerSec)",
|
"(RXBWKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.rxBWPeakKBitPerSec = prometheus.NewDesc(
|
c.rxBWPeakKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rx_bw_peak_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "rx_bw_peak_KBit_persec"),
|
||||||
"(RXBWPeakKBitPerSec)",
|
"(RXBWPeakKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.rxPacketLossPercent = prometheus.NewDesc(
|
c.rxPacketLossPercent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rx_packet_loss_percent"),
|
prometheus.BuildFQName(types.Namespace, Name, "rx_packet_loss_percent"),
|
||||||
"(RXPacketLossPercent)",
|
"(RXPacketLossPercent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.rxPacketLossPercentBase = prometheus.NewDesc(
|
c.rxPacketLossPercentBase = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rx_packet_loss_percent_base"),
|
prometheus.BuildFQName(types.Namespace, Name, "rx_packet_loss_percent_base"),
|
||||||
"(RXPacketLossPercent_Base)",
|
"(RXPacketLossPercent_Base)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.txBWActiveLimitKBitPerSec = prometheus.NewDesc(
|
c.txBWActiveLimitKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "tx_bw_active_limit_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "tx_bw_active_limit_KBit_persec"),
|
||||||
"(TXBWActiveLimitKBitPerSec)",
|
"(TXBWActiveLimitKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.txBWKBitPerSec = prometheus.NewDesc(
|
c.txBWKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "tx_bw_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "tx_bw_KBit_persec"),
|
||||||
"(TXBWKBitPerSec)",
|
"(TXBWKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.txBWLimitKBitPerSec = prometheus.NewDesc(
|
c.txBWLimitKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "tx_bw_limit_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "tx_bw_limit_KBit_persec"),
|
||||||
"(TXBWLimitKBitPerSec)",
|
"(TXBWLimitKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.txPacketLossPercent = prometheus.NewDesc(
|
c.txPacketLossPercent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "tx_packet_loss_percent"),
|
prometheus.BuildFQName(types.Namespace, Name, "tx_packet_loss_percent"),
|
||||||
"(TXPacketLossPercent)",
|
"(TXPacketLossPercent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.txPacketLossPercentBase = prometheus.NewDesc(
|
c.txPacketLossPercentBase = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "tx_packet_loss_percent_base"),
|
prometheus.BuildFQName(types.Namespace, Name, "tx_packet_loss_percent_base"),
|
||||||
"(TXPacketLossPercent_Base)",
|
"(TXPacketLossPercent_Base)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.usbBytesReceived = prometheus.NewDesc(
|
c.usbBytesReceived = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "usb_bytes_received_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "usb_bytes_received_total"),
|
||||||
"(USBBytesReceived)",
|
"(USBBytesReceived)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usbBytesSent = prometheus.NewDesc(
|
c.usbBytesSent = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "usb_bytes_sent_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "usb_bytes_sent_total"),
|
||||||
"(USBBytesSent)",
|
"(USBBytesSent)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usbRXBWKBitPerSec = prometheus.NewDesc(
|
c.usbRXBWKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "usb_rx_bw_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "usb_rx_bw_KBit_persec"),
|
||||||
"(USBRXBWKBitPerSec)",
|
"(USBRXBWKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usbTXBWKBitPerSec = prometheus.NewDesc(
|
c.usbTXBWKBitPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "usb_tx_bw_KBit_persec"),
|
prometheus.BuildFQName(types.Namespace, Name, "usb_tx_bw_KBit_persec"),
|
||||||
"(USBTXBWKBitPerSec)",
|
"(USBTXBWKBitPerSec)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -342,7 +342,7 @@ func (c *Collector) Build(logger *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectAudio(ch); err != nil {
|
if err := c.collectAudio(ch); err != nil {
|
||||||
logger.Error("failed collecting teradici session audio metrics",
|
logger.Error("failed collecting teradici session audio metrics",
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/headers/wtsapi32"
|
"github.com/prometheus-community/windows_exporter/internal/headers/wtsapi32"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
@@ -118,91 +118,91 @@ func (c *Collector) Build(logger *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
c.connectionBrokerEnabled = isConnectionBrokerServer(logger, wmiClient)
|
c.connectionBrokerEnabled = isConnectionBrokerServer(logger, wmiClient)
|
||||||
|
|
||||||
c.sessionInfo = prometheus.NewDesc(
|
c.sessionInfo = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_info"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_info"),
|
||||||
"Terminal Services sessions info",
|
"Terminal Services sessions info",
|
||||||
[]string{"session_name", "user", "host", "state", "id"},
|
[]string{"session_name", "user", "host", "state", "id"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.connectionBrokerPerformance = prometheus.NewDesc(
|
c.connectionBrokerPerformance = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "connection_broker_performance_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "connection_broker_performance_total"),
|
||||||
"The total number of connections handled by the Connection Brokers since the service started.",
|
"The total number of connections handled by the Connection Brokers since the service started.",
|
||||||
[]string{"connection"},
|
[]string{"connection"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.handleCount = prometheus.NewDesc(
|
c.handleCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "handles"),
|
prometheus.BuildFQName(types.Namespace, Name, "handles"),
|
||||||
"Total number of handles currently opened by this process. This number is the sum of the handles currently opened by each thread in this process.",
|
"Total number of handles currently opened by this process. This number is the sum of the handles currently opened by each thread in this process.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pageFaultsPerSec = prometheus.NewDesc(
|
c.pageFaultsPerSec = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "page_fault_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "page_fault_total"),
|
||||||
"Rate at which page faults occur in the threads executing in this process. A page fault occurs when a thread refers to a virtual memory page that is not in its working set in main memory. The page may not be retrieved from disk if it is on the standby list and therefore already in main memory. The page also may not be retrieved if it is in use by another process which shares the page.",
|
"Rate at which page faults occur in the threads executing in this process. A page fault occurs when a thread refers to a virtual memory page that is not in its working set in main memory. The page may not be retrieved from disk if it is on the standby list and therefore already in main memory. The page also may not be retrieved if it is in use by another process which shares the page.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pageFileBytes = prometheus.NewDesc(
|
c.pageFileBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "page_file_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "page_file_bytes"),
|
||||||
"Current number of bytes this process has used in the paging file(s). Paging files are used to store pages of memory used by the process that are not contained in other files. Paging files are shared by all processes, and lack of space in paging files can prevent other processes from allocating memory.",
|
"Current number of bytes this process has used in the paging file(s). Paging files are used to store pages of memory used by the process that are not contained in other files. Paging files are shared by all processes, and lack of space in paging files can prevent other processes from allocating memory.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.pageFileBytesPeak = prometheus.NewDesc(
|
c.pageFileBytesPeak = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "page_file_bytes_peak"),
|
prometheus.BuildFQName(types.Namespace, Name, "page_file_bytes_peak"),
|
||||||
"Maximum number of bytes this process has used in the paging file(s). Paging files are used to store pages of memory used by the process that are not contained in other files. Paging files are shared by all processes, and lack of space in paging files can prevent other processes from allocating memory.",
|
"Maximum number of bytes this process has used in the paging file(s). Paging files are used to store pages of memory used by the process that are not contained in other files. Paging files are shared by all processes, and lack of space in paging files can prevent other processes from allocating memory.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.percentCPUTime = prometheus.NewDesc(
|
c.percentCPUTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_time_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_time_seconds_total"),
|
||||||
"Total elapsed time that this process's threads have spent executing code.",
|
"Total elapsed time that this process's threads have spent executing code.",
|
||||||
[]string{"mode", "session_name"},
|
[]string{"mode", "session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.poolNonPagedBytes = prometheus.NewDesc(
|
c.poolNonPagedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pool_non_paged_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "pool_non_paged_bytes"),
|
||||||
"Number of bytes in the non-paged pool, an area of system memory (physical memory used by the operating system) for objects that cannot be written to disk, but must remain in physical memory as long as they are allocated. This property displays the last observed value only; it is not an average.",
|
"Number of bytes in the non-paged pool, an area of system memory (physical memory used by the operating system) for objects that cannot be written to disk, but must remain in physical memory as long as they are allocated. This property displays the last observed value only; it is not an average.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.poolPagedBytes = prometheus.NewDesc(
|
c.poolPagedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pool_paged_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "pool_paged_bytes"),
|
||||||
"Number of bytes in the paged pool, an area of system memory (physical memory used by the operating system) for objects that can be written to disk when they are not being used. This property displays the last observed value only; it is not an average.",
|
"Number of bytes in the paged pool, an area of system memory (physical memory used by the operating system) for objects that can be written to disk when they are not being used. This property displays the last observed value only; it is not an average.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.privateBytes = prometheus.NewDesc(
|
c.privateBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "private_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "private_bytes"),
|
||||||
"Current number of bytes this process has allocated that cannot be shared with other processes.",
|
"Current number of bytes this process has allocated that cannot be shared with other processes.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.threadCount = prometheus.NewDesc(
|
c.threadCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "threads"),
|
prometheus.BuildFQName(types.Namespace, Name, "threads"),
|
||||||
"Number of threads currently active in this process. An instruction is the basic unit of execution in a processor, and a thread is the object that executes instructions. Every running process has at least one thread.",
|
"Number of threads currently active in this process. An instruction is the basic unit of execution in a processor, and a thread is the object that executes instructions. Every running process has at least one thread.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.virtualBytes = prometheus.NewDesc(
|
c.virtualBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "virtual_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "virtual_bytes"),
|
||||||
"Current size, in bytes, of the virtual address space the process is using. Use of virtual address space does not necessarily imply corresponding use of either disk or main memory pages. Virtual space is finite and, by using too much, the process can limit its ability to load libraries.",
|
"Current size, in bytes, of the virtual address space the process is using. Use of virtual address space does not necessarily imply corresponding use of either disk or main memory pages. Virtual space is finite and, by using too much, the process can limit its ability to load libraries.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.virtualBytesPeak = prometheus.NewDesc(
|
c.virtualBytesPeak = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "virtual_bytes_peak"),
|
prometheus.BuildFQName(types.Namespace, Name, "virtual_bytes_peak"),
|
||||||
"Maximum number of bytes of virtual address space the process has used at any one time. Use of virtual address space does not necessarily imply corresponding use of either disk or main memory pages. Virtual space is finite and, by using too much, the process might limit its ability to load libraries.",
|
"Maximum number of bytes of virtual address space the process has used at any one time. Use of virtual address space does not necessarily imply corresponding use of either disk or main memory pages. Virtual space is finite and, by using too much, the process might limit its ability to load libraries.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.workingSet = prometheus.NewDesc(
|
c.workingSet = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "working_set_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "working_set_bytes"),
|
||||||
"Current number of bytes in the working set of this process. The working set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the working set of a process even if they are not in use. When free memory falls below a threshold, pages are trimmed from working sets. If they are needed, they are then soft-faulted back into the working set before they leave main memory.",
|
"Current number of bytes in the working set of this process. The working set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the working set of a process even if they are not in use. When free memory falls below a threshold, pages are trimmed from working sets. If they are needed, they are then soft-faulted back into the working set before they leave main memory.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.workingSetPeak = prometheus.NewDesc(
|
c.workingSetPeak = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "working_set_bytes_peak"),
|
prometheus.BuildFQName(types.Namespace, Name, "working_set_bytes_peak"),
|
||||||
"Maximum number of bytes in the working set of this process at any point in time. The working set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the working set of a process even if they are not in use. When free memory falls below a threshold, pages are trimmed from working sets. If they are needed, they are then soft-faulted back into the working set before they leave main memory.",
|
"Maximum number of bytes in the working set of this process at any point in time. The working set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the working set of a process even if they are not in use. When free memory falls below a threshold, pages are trimmed from working sets. If they are needed, they are then soft-faulted back into the working set before they leave main memory.",
|
||||||
[]string{"session_name"},
|
[]string{"session_name"},
|
||||||
nil,
|
nil,
|
||||||
@@ -220,7 +220,7 @@ func (c *Collector) Build(logger *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectWTSSessions(logger, ch); err != nil {
|
if err := c.collectWTSSessions(logger, ch); err != nil {
|
||||||
logger.Error("failed collecting terminal services session infos",
|
logger.Error("failed collecting terminal services session infos",
|
||||||
@@ -271,7 +271,7 @@ type perflibTerminalServicesSession struct {
|
|||||||
WorkingSetPeak float64 `perflib:"Working Set Peak"`
|
WorkingSetPeak float64 `perflib:"Working Set Peak"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectTSSessionCounters(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectTSSessionCounters(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
dst := make([]perflibTerminalServicesSession, 0)
|
dst := make([]perflibTerminalServicesSession, 0)
|
||||||
|
|
||||||
@@ -399,7 +399,7 @@ type perflibRemoteDesktopConnectionBrokerCounterset struct {
|
|||||||
FailedConnections float64 `perflib:"Failed Connections"`
|
FailedConnections float64 `perflib:"Failed Connections"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectCollectionBrokerPerformanceCounter(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectCollectionBrokerPerformanceCounter(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
dst := make([]perflibRemoteDesktopConnectionBrokerCounterset, 0)
|
dst := make([]perflibRemoteDesktopConnectionBrokerCounterset, 0)
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/dimchansky/utfbom"
|
"github.com/dimchansky/utfbom"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
dto "github.com/prometheus/client_model/go"
|
dto "github.com/prometheus/client_model/go"
|
||||||
"github.com/prometheus/common/expfmt"
|
"github.com/prometheus/common/expfmt"
|
||||||
@@ -110,7 +110,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
)
|
)
|
||||||
|
|
||||||
c.mTimeDesc = prometheus.NewDesc(
|
c.mTimeDesc = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "textfile", "mtime_seconds"),
|
prometheus.BuildFQName(types.Namespace, "textfile", "mtime_seconds"),
|
||||||
"Unixtime mtime of textfiles successfully read.",
|
"Unixtime mtime of textfiles successfully read.",
|
||||||
[]string{"file"},
|
[]string{"file"},
|
||||||
nil,
|
nil,
|
||||||
@@ -308,7 +308,7 @@ func (cr carriageReturnFilteringReader) Read(p []byte) (int, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Collect implements the Collector interface.
|
// Collect implements the Collector interface.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
errorMetric := 0.0
|
errorMetric := 0.0
|
||||||
mTimes := map[string]time.Time{}
|
mTimes := map[string]time.Time{}
|
||||||
@@ -395,7 +395,7 @@ func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch cha
|
|||||||
// Export if there were errors.
|
// Export if there were errors.
|
||||||
ch <- prometheus.MustNewConstMetric(
|
ch <- prometheus.MustNewConstMetric(
|
||||||
prometheus.NewDesc(
|
prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "textfile", "scrape_error"),
|
prometheus.BuildFQName(types.Namespace, "textfile", "scrape_error"),
|
||||||
"1 if there was an error opening or reading a file, 0 otherwise",
|
"1 if there was an error opening or reading a file, 0 otherwise",
|
||||||
nil, nil,
|
nil, nil,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -63,7 +63,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
c.temperature = prometheus.NewDesc(
|
c.temperature = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "temperature_celsius"),
|
prometheus.BuildFQName(types.Namespace, Name, "temperature_celsius"),
|
||||||
"(Temperature)",
|
"(Temperature)",
|
||||||
[]string{
|
[]string{
|
||||||
"name",
|
"name",
|
||||||
@@ -71,7 +71,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.percentPassiveLimit = prometheus.NewDesc(
|
c.percentPassiveLimit = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "percent_passive_limit"),
|
prometheus.BuildFQName(types.Namespace, Name, "percent_passive_limit"),
|
||||||
"(PercentPassiveLimit)",
|
"(PercentPassiveLimit)",
|
||||||
[]string{
|
[]string{
|
||||||
"name",
|
"name",
|
||||||
@@ -79,7 +79,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.throttleReasons = prometheus.NewDesc(
|
c.throttleReasons = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "throttle_reasons"),
|
prometheus.BuildFQName(types.Namespace, Name, "throttle_reasons"),
|
||||||
"(ThrottleReasons)",
|
"(ThrottleReasons)",
|
||||||
[]string{
|
[]string{
|
||||||
"name",
|
"name",
|
||||||
@@ -92,7 +92,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collect(ch); err != nil {
|
if err := c.collect(ch); err != nil {
|
||||||
logger.Error("failed collecting thermalzone metrics",
|
logger.Error("failed collecting thermalzone metrics",
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/headers/kernel32"
|
"github.com/prometheus-community/windows_exporter/internal/headers/kernel32"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
@@ -66,49 +66,49 @@ func (c *Collector) Close(_ *slog.Logger) error {
|
|||||||
|
|
||||||
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
||||||
c.currentTime = prometheus.NewDesc(
|
c.currentTime = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "current_timestamp_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "current_timestamp_seconds"),
|
||||||
"OperatingSystem.LocalDateTime",
|
"OperatingSystem.LocalDateTime",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.timezone = prometheus.NewDesc(
|
c.timezone = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "timezone"),
|
prometheus.BuildFQName(types.Namespace, Name, "timezone"),
|
||||||
"OperatingSystem.LocalDateTime",
|
"OperatingSystem.LocalDateTime",
|
||||||
[]string{"timezone"},
|
[]string{"timezone"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.clockFrequencyAdjustmentPPBTotal = prometheus.NewDesc(
|
c.clockFrequencyAdjustmentPPBTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "clock_frequency_adjustment_ppb_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "clock_frequency_adjustment_ppb_total"),
|
||||||
"Total adjustment made to the local system clock frequency by W32Time in Parts Per Billion (PPB) units.",
|
"Total adjustment made to the local system clock frequency by W32Time in Parts Per Billion (PPB) units.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.computedTimeOffset = prometheus.NewDesc(
|
c.computedTimeOffset = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "computed_time_offset_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "computed_time_offset_seconds"),
|
||||||
"Absolute time offset between the system clock and the chosen time source, in seconds",
|
"Absolute time offset between the system clock and the chosen time source, in seconds",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ntpClientTimeSourceCount = prometheus.NewDesc(
|
c.ntpClientTimeSourceCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ntp_client_time_sources"),
|
prometheus.BuildFQName(types.Namespace, Name, "ntp_client_time_sources"),
|
||||||
"Active number of NTP Time sources being used by the client",
|
"Active number of NTP Time sources being used by the client",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ntpRoundTripDelay = prometheus.NewDesc(
|
c.ntpRoundTripDelay = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ntp_round_trip_delay_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "ntp_round_trip_delay_seconds"),
|
||||||
"Roundtrip delay experienced by the NTP client in receiving a response from the server for the most recent request, in seconds",
|
"Roundtrip delay experienced by the NTP client in receiving a response from the server for the most recent request, in seconds",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ntpServerOutgoingResponsesTotal = prometheus.NewDesc(
|
c.ntpServerOutgoingResponsesTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ntp_server_outgoing_responses_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ntp_server_outgoing_responses_total"),
|
||||||
"Total number of requests responded to by NTP server",
|
"Total number of requests responded to by NTP server",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.ntpServerIncomingRequestsTotal = prometheus.NewDesc(
|
c.ntpServerIncomingRequestsTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "ntp_server_incoming_requests_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "ntp_server_incoming_requests_total"),
|
||||||
"Total number of requests received by NTP server",
|
"Total number of requests received by NTP server",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -119,7 +119,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
errs := make([]error, 0, 2)
|
errs := make([]error, 0, 2)
|
||||||
@@ -178,7 +178,7 @@ func (c *Collector) collectTime(ch chan<- prometheus.Metric) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) collectNTP(ctx *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) collectNTP(ctx *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var dst []windowsTime // Single-instance class, array is required but will have single entry.
|
var dst []windowsTime // Single-instance class, array is required but will have single entry.
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import (
|
|||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/go-ole/go-ole"
|
"github.com/go-ole/go-ole"
|
||||||
"github.com/go-ole/go-ole/oleutil"
|
"github.com/go-ole/go-ole/oleutil"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -93,21 +93,21 @@ func (c *Collector) Build(logger *slog.Logger, _ *wmi.Client) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.pendingUpdate = prometheus.NewDesc(
|
c.pendingUpdate = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "pending_info"),
|
prometheus.BuildFQName(types.Namespace, Name, "pending_info"),
|
||||||
"Pending Windows Updates",
|
"Pending Windows Updates",
|
||||||
[]string{"category", "severity", "title"},
|
[]string{"category", "severity", "title"},
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.queryDurationSeconds = prometheus.NewDesc(
|
c.queryDurationSeconds = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "scrape_query_duration_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "scrape_query_duration_seconds"),
|
||||||
"Duration of the last scrape query to the Windows Update API",
|
"Duration of the last scrape query to the Windows Update API",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.lastScrapeMetric = prometheus.NewDesc(
|
c.lastScrapeMetric = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "scrape_timestamp_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "scrape_timestamp_seconds"),
|
||||||
"Timestamp of the last scrape",
|
"Timestamp of the last scrape",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -122,7 +122,7 @@ func (c *Collector) GetPerfCounter(_ *slog.Logger) ([]string, error) {
|
|||||||
return []string{}, nil
|
return []string{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, _ *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, _ *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
c.mu.RLock()
|
c.mu.RLock()
|
||||||
defer c.mu.RUnlock()
|
defer c.mu.RUnlock()
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
"github.com/prometheus-community/windows_exporter/internal/perflib"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -82,116 +82,116 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
|
|
||||||
c.memActive = prometheus.NewDesc(
|
c.memActive = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_active_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_active_bytes"),
|
||||||
"(MemActiveMB)",
|
"(MemActiveMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memBallooned = prometheus.NewDesc(
|
c.memBallooned = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_ballooned_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_ballooned_bytes"),
|
||||||
"(MemBalloonedMB)",
|
"(MemBalloonedMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memLimit = prometheus.NewDesc(
|
c.memLimit = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_limit_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_limit_bytes"),
|
||||||
"(MemLimitMB)",
|
"(MemLimitMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memMapped = prometheus.NewDesc(
|
c.memMapped = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_mapped_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_mapped_bytes"),
|
||||||
"(MemMappedMB)",
|
"(MemMappedMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memOverhead = prometheus.NewDesc(
|
c.memOverhead = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_overhead_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_overhead_bytes"),
|
||||||
"(MemOverheadMB)",
|
"(MemOverheadMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memReservation = prometheus.NewDesc(
|
c.memReservation = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_reservation_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_reservation_bytes"),
|
||||||
"(MemReservationMB)",
|
"(MemReservationMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memShared = prometheus.NewDesc(
|
c.memShared = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_shared_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_shared_bytes"),
|
||||||
"(MemSharedMB)",
|
"(MemSharedMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memSharedSaved = prometheus.NewDesc(
|
c.memSharedSaved = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_shared_saved_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_shared_saved_bytes"),
|
||||||
"(MemSharedSavedMB)",
|
"(MemSharedSavedMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memShares = prometheus.NewDesc(
|
c.memShares = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_shares"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_shares"),
|
||||||
"(MemShares)",
|
"(MemShares)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memSwapped = prometheus.NewDesc(
|
c.memSwapped = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_swapped_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_swapped_bytes"),
|
||||||
"(MemSwappedMB)",
|
"(MemSwappedMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memTargetSize = prometheus.NewDesc(
|
c.memTargetSize = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_target_size_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_target_size_bytes"),
|
||||||
"(MemTargetSizeMB)",
|
"(MemTargetSizeMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.memUsed = prometheus.NewDesc(
|
c.memUsed = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "mem_used_bytes"),
|
prometheus.BuildFQName(types.Namespace, Name, "mem_used_bytes"),
|
||||||
"(MemUsedMB)",
|
"(MemUsedMB)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.cpuLimitMHz = prometheus.NewDesc(
|
c.cpuLimitMHz = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_limit_mhz"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_limit_mhz"),
|
||||||
"(CpuLimitMHz)",
|
"(CpuLimitMHz)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuReservationMHz = prometheus.NewDesc(
|
c.cpuReservationMHz = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_reservation_mhz"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_reservation_mhz"),
|
||||||
"(CpuReservationMHz)",
|
"(CpuReservationMHz)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuShares = prometheus.NewDesc(
|
c.cpuShares = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_shares"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_shares"),
|
||||||
"(CpuShares)",
|
"(CpuShares)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuStolenTotal = prometheus.NewDesc(
|
c.cpuStolenTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_stolen_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_stolen_seconds_total"),
|
||||||
"(CpuStolenMs)",
|
"(CpuStolenMs)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cpuTimeTotal = prometheus.NewDesc(
|
c.cpuTimeTotal = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cpu_time_seconds_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cpu_time_seconds_total"),
|
||||||
"(CpuTimePercents)",
|
"(CpuTimePercents)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.effectiveVMSpeedMHz = prometheus.NewDesc(
|
c.effectiveVMSpeedMHz = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "effective_vm_speed_mhz"),
|
prometheus.BuildFQName(types.Namespace, Name, "effective_vm_speed_mhz"),
|
||||||
"(EffectiveVMSpeedMHz)",
|
"(EffectiveVMSpeedMHz)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.hostProcessorSpeedMHz = prometheus.NewDesc(
|
c.hostProcessorSpeedMHz = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "host_processor_speed_mhz"),
|
prometheus.BuildFQName(types.Namespace, Name, "host_processor_speed_mhz"),
|
||||||
"(HostProcessorSpeedMHz)",
|
"(HostProcessorSpeedMHz)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -202,7 +202,7 @@ func (c *Collector) Build(_ *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectMem(ch); err != nil {
|
if err := c.collectMem(ch); err != nil {
|
||||||
logger.Error("failed collecting vmware memory metrics",
|
logger.Error("failed collecting vmware memory metrics",
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
|
|
||||||
"github.com/alecthomas/kingpin/v2"
|
"github.com/alecthomas/kingpin/v2"
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/yusufpapurcu/wmi"
|
"github.com/yusufpapurcu/wmi"
|
||||||
)
|
)
|
||||||
@@ -158,426 +158,426 @@ func (c *Collector) Build(logger *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
c.wmiClient = wmiClient
|
c.wmiClient = wmiClient
|
||||||
|
|
||||||
c.audioReceivedBytes = prometheus.NewDesc(
|
c.audioReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "audio_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "audio_received_bytes_total"),
|
||||||
"(AudioReceivedBytes)",
|
"(AudioReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.audioReceivedPackets = prometheus.NewDesc(
|
c.audioReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "audio_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "audio_received_packets_total"),
|
||||||
"(AudioReceivedPackets)",
|
"(AudioReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.audioTransmittedBytes = prometheus.NewDesc(
|
c.audioTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "audio_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "audio_transmitted_bytes_total"),
|
||||||
"(AudioTransmittedBytes)",
|
"(AudioTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.audioTransmittedPackets = prometheus.NewDesc(
|
c.audioTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "audio_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "audio_transmitted_packets_total"),
|
||||||
"(AudioTransmittedPackets)",
|
"(AudioTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.cdrReceivedBytes = prometheus.NewDesc(
|
c.cdrReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cdr_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cdr_received_bytes_total"),
|
||||||
"(CDRReceivedBytes)",
|
"(CDRReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cdrReceivedPackets = prometheus.NewDesc(
|
c.cdrReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cdr_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cdr_received_packets_total"),
|
||||||
"(CDRReceivedPackets)",
|
"(CDRReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cdrTransmittedBytes = prometheus.NewDesc(
|
c.cdrTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cdr_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cdr_transmitted_bytes_total"),
|
||||||
"(CDRTransmittedBytes)",
|
"(CDRTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.cdrTransmittedPackets = prometheus.NewDesc(
|
c.cdrTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "cdr_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "cdr_transmitted_packets_total"),
|
||||||
"(CDRTransmittedPackets)",
|
"(CDRTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.clipboardReceivedBytes = prometheus.NewDesc(
|
c.clipboardReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "clipboard_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "clipboard_received_bytes_total"),
|
||||||
"(ClipboardReceivedBytes)",
|
"(ClipboardReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.clipboardReceivedPackets = prometheus.NewDesc(
|
c.clipboardReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "clipboard_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "clipboard_received_packets_total"),
|
||||||
"(ClipboardReceivedPackets)",
|
"(ClipboardReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.clipboardTransmittedBytes = prometheus.NewDesc(
|
c.clipboardTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "clipboard_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "clipboard_transmitted_bytes_total"),
|
||||||
"(ClipboardTransmittedBytes)",
|
"(ClipboardTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.clipboardTransmittedPackets = prometheus.NewDesc(
|
c.clipboardTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "clipboard_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "clipboard_transmitted_packets_total"),
|
||||||
"(ClipboardTransmittedPackets)",
|
"(ClipboardTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.html5MMRReceivedBytes = prometheus.NewDesc(
|
c.html5MMRReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "html5_mmr_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "html5_mmr_received_bytes_total"),
|
||||||
"(HTML5MMRReceivedBytes)",
|
"(HTML5MMRReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.html5MMRReceivedPackets = prometheus.NewDesc(
|
c.html5MMRReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "html5_mmr_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "html5_mmr_received_packets_total"),
|
||||||
"(HTML5MMRReceivedPackets)",
|
"(HTML5MMRReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.html5MMRTransmittedBytes = prometheus.NewDesc(
|
c.html5MMRTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "html5_mmr_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "html5_mmr_transmitted_bytes_total"),
|
||||||
"(HTML5MMRTransmittedBytes)",
|
"(HTML5MMRTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.html5MMRTransmittedPackets = prometheus.NewDesc(
|
c.html5MMRTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "html5_mmr_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "html5_mmr_transmitted_packets_total"),
|
||||||
"(HTML5MMRTransmittedPackets)",
|
"(HTML5MMRTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.imagingDirtyFramesPerSecond = prometheus.NewDesc(
|
c.imagingDirtyFramesPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_dirty_frames_per_second"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_dirty_frames_per_second"),
|
||||||
"(ImagingDirtyFramesPerSecond)",
|
"(ImagingDirtyFramesPerSecond)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingFBCRate = prometheus.NewDesc(
|
c.imagingFBCRate = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_fbc_rate"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_fbc_rate"),
|
||||||
"(ImagingFBCRate)",
|
"(ImagingFBCRate)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingFramesPerSecond = prometheus.NewDesc(
|
c.imagingFramesPerSecond = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_frames_per_second"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_frames_per_second"),
|
||||||
"(ImagingFramesPerSecond)",
|
"(ImagingFramesPerSecond)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingPollRate = prometheus.NewDesc(
|
c.imagingPollRate = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_poll_rate"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_poll_rate"),
|
||||||
"(ImagingPollRate)",
|
"(ImagingPollRate)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingReceivedBytes = prometheus.NewDesc(
|
c.imagingReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_received_bytes_total"),
|
||||||
"(ImagingReceivedBytes)",
|
"(ImagingReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingReceivedPackets = prometheus.NewDesc(
|
c.imagingReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_received_packets_total"),
|
||||||
"(ImagingReceivedPackets)",
|
"(ImagingReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingTotalDirtyFrames = prometheus.NewDesc(
|
c.imagingTotalDirtyFrames = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_total_dirty_frames_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_total_dirty_frames_total"),
|
||||||
"(ImagingTotalDirtyFrames)",
|
"(ImagingTotalDirtyFrames)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingTotalFBC = prometheus.NewDesc(
|
c.imagingTotalFBC = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_fbc_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_fbc_total"),
|
||||||
"(ImagingTotalFBC)",
|
"(ImagingTotalFBC)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingTotalFrames = prometheus.NewDesc(
|
c.imagingTotalFrames = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_frames_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_frames_total"),
|
||||||
"(ImagingTotalFrames)",
|
"(ImagingTotalFrames)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingTotalPoll = prometheus.NewDesc(
|
c.imagingTotalPoll = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_poll_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_poll_total"),
|
||||||
"(ImagingTotalPoll)",
|
"(ImagingTotalPoll)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingTransmittedBytes = prometheus.NewDesc(
|
c.imagingTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_transmitted_bytes_total"),
|
||||||
"(ImagingTransmittedBytes)",
|
"(ImagingTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.imagingTransmittedPackets = prometheus.NewDesc(
|
c.imagingTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "imaging_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "imaging_transmitted_packets_total"),
|
||||||
"(ImagingTransmittedPackets)",
|
"(ImagingTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.rtAVReceivedBytes = prometheus.NewDesc(
|
c.rtAVReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rtav_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "rtav_received_bytes_total"),
|
||||||
"(RTAVReceivedBytes)",
|
"(RTAVReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.rtAVReceivedPackets = prometheus.NewDesc(
|
c.rtAVReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rtav_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "rtav_received_packets_total"),
|
||||||
"(RTAVReceivedPackets)",
|
"(RTAVReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.rtAVTransmittedBytes = prometheus.NewDesc(
|
c.rtAVTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rtav_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "rtav_transmitted_bytes_total"),
|
||||||
"(RTAVTransmittedBytes)",
|
"(RTAVTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.rtAVTransmittedPackets = prometheus.NewDesc(
|
c.rtAVTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "rtav_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "rtav_transmitted_packets_total"),
|
||||||
"(RTAVTransmittedPackets)",
|
"(RTAVTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.serialPortAndScannerReceivedBytes = prometheus.NewDesc(
|
c.serialPortAndScannerReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "serial_port_and_scanner_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "serial_port_and_scanner_received_bytes_total"),
|
||||||
"(SerialPortandScannerReceivedBytes)",
|
"(SerialPortandScannerReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serialPortAndScannerReceivedPackets = prometheus.NewDesc(
|
c.serialPortAndScannerReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "serial_port_and_scanner_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "serial_port_and_scanner_received_packets_total"),
|
||||||
"(SerialPortandScannerReceivedPackets)",
|
"(SerialPortandScannerReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serialPortAndScannerTransmittedBytes = prometheus.NewDesc(
|
c.serialPortAndScannerTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "serial_port_and_scanner_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "serial_port_and_scanner_transmitted_bytes_total"),
|
||||||
"(SerialPortandScannerTransmittedBytes)",
|
"(SerialPortandScannerTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.serialPortAndScannerTransmittedPackets = prometheus.NewDesc(
|
c.serialPortAndScannerTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "serial_port_and_scanner_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "serial_port_and_scanner_transmitted_packets_total"),
|
||||||
"(SerialPortandScannerTransmittedPackets)",
|
"(SerialPortandScannerTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.sessionAutomaticReconnectCount = prometheus.NewDesc(
|
c.sessionAutomaticReconnectCount = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_automatic_reconnect_count_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_automatic_reconnect_count_total"),
|
||||||
"(SessionAutomaticReconnectCount)",
|
"(SessionAutomaticReconnectCount)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionCumulativeReceivedBytesOverTCP = prometheus.NewDesc(
|
c.sessionCumulativeReceivedBytesOverTCP = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_cumlative_received_bytes_over_tcp_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_cumlative_received_bytes_over_tcp_total"),
|
||||||
"(SessionCumulativeReceivedBytesOverTCP)",
|
"(SessionCumulativeReceivedBytesOverTCP)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionCumulativeReceivedBytesOverUDP = prometheus.NewDesc(
|
c.sessionCumulativeReceivedBytesOverUDP = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_cumlative_received_bytes_over_udp_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_cumlative_received_bytes_over_udp_total"),
|
||||||
"(SessionCumulativeReceivedBytesOverUDP)",
|
"(SessionCumulativeReceivedBytesOverUDP)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionCumulativeTransmittedBytesOverTCP = prometheus.NewDesc(
|
c.sessionCumulativeTransmittedBytesOverTCP = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_cumlative_transmitted_bytes_over_tcp_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_cumlative_transmitted_bytes_over_tcp_total"),
|
||||||
"(SessionCumulativeTransmittedBytesOverTCP)",
|
"(SessionCumulativeTransmittedBytesOverTCP)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionCumulativeTransmittedBytesOverUDP = prometheus.NewDesc(
|
c.sessionCumulativeTransmittedBytesOverUDP = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_cumlative_transmitted_bytes_over_udp_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_cumlative_transmitted_bytes_over_udp_total"),
|
||||||
"(SessionCumulativeTransmittedBytesOverUDP)",
|
"(SessionCumulativeTransmittedBytesOverUDP)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionEstimatedBandwidthUplink = prometheus.NewDesc(
|
c.sessionEstimatedBandwidthUplink = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_estimated_bandwidth_uplink"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_estimated_bandwidth_uplink"),
|
||||||
"(SessionEstimatedBandwidthUplink)",
|
"(SessionEstimatedBandwidthUplink)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionInstantaneousReceivedBytesOverTCP = prometheus.NewDesc(
|
c.sessionInstantaneousReceivedBytesOverTCP = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_instantaneous_received_bytes_over_tcp_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_instantaneous_received_bytes_over_tcp_total"),
|
||||||
"(SessionInstantaneousReceivedBytesOverTCP)",
|
"(SessionInstantaneousReceivedBytesOverTCP)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionInstantaneousReceivedBytesOverUDP = prometheus.NewDesc(
|
c.sessionInstantaneousReceivedBytesOverUDP = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_instantaneous_received_bytes_over_udp_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_instantaneous_received_bytes_over_udp_total"),
|
||||||
"(SessionInstantaneousReceivedBytesOverUDP)",
|
"(SessionInstantaneousReceivedBytesOverUDP)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionInstantaneousTransmittedBytesOverTCP = prometheus.NewDesc(
|
c.sessionInstantaneousTransmittedBytesOverTCP = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_instantaneous_transmitted_bytes_over_tcp_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_instantaneous_transmitted_bytes_over_tcp_total"),
|
||||||
"(SessionInstantaneousTransmittedBytesOverTCP)",
|
"(SessionInstantaneousTransmittedBytesOverTCP)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionInstantaneousTransmittedBytesOverUDP = prometheus.NewDesc(
|
c.sessionInstantaneousTransmittedBytesOverUDP = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_instantaneous_transmitted_bytes_over_udp_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_instantaneous_transmitted_bytes_over_udp_total"),
|
||||||
"(SessionInstantaneousTransmittedBytesOverUDP)",
|
"(SessionInstantaneousTransmittedBytesOverUDP)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionJitterUplink = prometheus.NewDesc(
|
c.sessionJitterUplink = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_jitter_uplink"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_jitter_uplink"),
|
||||||
"(SessionJitterUplink)",
|
"(SessionJitterUplink)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionPacketLossUplink = prometheus.NewDesc(
|
c.sessionPacketLossUplink = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_packet_loss_uplink"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_packet_loss_uplink"),
|
||||||
"(SessionPacketLossUplink)",
|
"(SessionPacketLossUplink)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionReceivedBytes = prometheus.NewDesc(
|
c.sessionReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_received_bytes_total"),
|
||||||
"(SessionReceivedBytes)",
|
"(SessionReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionReceivedPackets = prometheus.NewDesc(
|
c.sessionReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_received_packets_total"),
|
||||||
"(SessionReceivedPackets)",
|
"(SessionReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionRTT = prometheus.NewDesc(
|
c.sessionRTT = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_rtt"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_rtt"),
|
||||||
"(SessionRTT)",
|
"(SessionRTT)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionTransmittedBytes = prometheus.NewDesc(
|
c.sessionTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_transmitted_bytes_total"),
|
||||||
"(SessionTransmittedBytes)",
|
"(SessionTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.sessionTransmittedPackets = prometheus.NewDesc(
|
c.sessionTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "session_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "session_transmitted_packets_total"),
|
||||||
"(SessionTransmittedPackets)",
|
"(SessionTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.skypeForBusinessControlReceivedBytes = prometheus.NewDesc(
|
c.skypeForBusinessControlReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "skype_for_business_control_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "skype_for_business_control_received_bytes_total"),
|
||||||
"(SkypeforBusinessControlReceivedBytes)",
|
"(SkypeforBusinessControlReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.skypeForBusinessControlReceivedPackets = prometheus.NewDesc(
|
c.skypeForBusinessControlReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "skype_for_business_control_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "skype_for_business_control_received_packets_total"),
|
||||||
"(SkypeforBusinessControlReceivedPackets)",
|
"(SkypeforBusinessControlReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.skypeForBusinessControlTransmittedBytes = prometheus.NewDesc(
|
c.skypeForBusinessControlTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "skype_for_business_control_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "skype_for_business_control_transmitted_bytes_total"),
|
||||||
"(SkypeforBusinessControlTransmittedBytes)",
|
"(SkypeforBusinessControlTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.skypeForBusinessControlTransmittedPackets = prometheus.NewDesc(
|
c.skypeForBusinessControlTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "skype_for_business_control_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "skype_for_business_control_transmitted_packets_total"),
|
||||||
"(SkypeforBusinessControlTransmittedPackets)",
|
"(SkypeforBusinessControlTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.thinPrintReceivedBytes = prometheus.NewDesc(
|
c.thinPrintReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "thinprint_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "thinprint_received_bytes_total"),
|
||||||
"(ThinPrintReceivedBytes)",
|
"(ThinPrintReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.thinPrintReceivedPackets = prometheus.NewDesc(
|
c.thinPrintReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "thinprint_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "thinprint_received_packets_total"),
|
||||||
"(ThinPrintReceivedPackets)",
|
"(ThinPrintReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.thinPrintTransmittedBytes = prometheus.NewDesc(
|
c.thinPrintTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "thinprint_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "thinprint_transmitted_bytes_total"),
|
||||||
"(ThinPrintTransmittedBytes)",
|
"(ThinPrintTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.thinPrintTransmittedPackets = prometheus.NewDesc(
|
c.thinPrintTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "thinprint_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "thinprint_transmitted_packets_total"),
|
||||||
"(ThinPrintTransmittedPackets)",
|
"(ThinPrintTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.usbReceivedBytes = prometheus.NewDesc(
|
c.usbReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "usb_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "usb_received_bytes_total"),
|
||||||
"(USBReceivedBytes)",
|
"(USBReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usbReceivedPackets = prometheus.NewDesc(
|
c.usbReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "usb_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "usb_received_packets_total"),
|
||||||
"(USBReceivedPackets)",
|
"(USBReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usbTransmittedBytes = prometheus.NewDesc(
|
c.usbTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "usb_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "usb_transmitted_bytes_total"),
|
||||||
"(USBTransmittedBytes)",
|
"(USBTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.usbTransmittedPackets = prometheus.NewDesc(
|
c.usbTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "usb_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "usb_transmitted_packets_total"),
|
||||||
"(USBTransmittedPackets)",
|
"(USBTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
|
||||||
c.windowsMediaMMRReceivedBytes = prometheus.NewDesc(
|
c.windowsMediaMMRReceivedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "windows_media_mmr_received_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "windows_media_mmr_received_bytes_total"),
|
||||||
"(WindowsMediaMMRReceivedBytes)",
|
"(WindowsMediaMMRReceivedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.windowsMediaMMRReceivedPackets = prometheus.NewDesc(
|
c.windowsMediaMMRReceivedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "windows_media_mmr_received_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "windows_media_mmr_received_packets_total"),
|
||||||
"(WindowsMediaMMRReceivedPackets)",
|
"(WindowsMediaMMRReceivedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.windowsMediaMMRTransmittedBytes = prometheus.NewDesc(
|
c.windowsMediaMMRTransmittedBytes = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "windows_media_mmr_transmitted_bytes_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "windows_media_mmr_transmitted_bytes_total"),
|
||||||
"(WindowsMediaMMRTransmittedBytes)",
|
"(WindowsMediaMMRTransmittedBytes)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
c.windowsMediaMMRTransmittedPackets = prometheus.NewDesc(
|
c.windowsMediaMMRTransmittedPackets = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, Name, "windows_media_mmr_transmitted_packets_total"),
|
prometheus.BuildFQName(types.Namespace, Name, "windows_media_mmr_transmitted_packets_total"),
|
||||||
"(WindowsMediaMMRTransmittedPackets)",
|
"(WindowsMediaMMRTransmittedPackets)",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -588,7 +588,7 @@ func (c *Collector) Build(logger *slog.Logger, wmiClient *wmi.Client) error {
|
|||||||
|
|
||||||
// Collect sends the metric values for each metric
|
// Collect sends the metric values for each metric
|
||||||
// to the provided prometheus Metric channel.
|
// to the provided prometheus Metric channel.
|
||||||
func (c *Collector) Collect(_ *types2.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(_ *types.ScrapeContext, logger *slog.Logger, ch chan<- prometheus.Metric) error {
|
||||||
logger = logger.With(slog.String("collector", Name))
|
logger = logger.With(slog.String("collector", Name))
|
||||||
if err := c.collectAudio(ch); err != nil {
|
if err := c.collectAudio(ch); err != nil {
|
||||||
logger.Error("failed collecting vmware blast audio metrics",
|
logger.Error("failed collecting vmware blast audio metrics",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
types2 "github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -53,31 +53,31 @@ func (c *MetricCollectors) NewPrometheusCollector(timeout time.Duration, logger
|
|||||||
metricCollectors: c,
|
metricCollectors: c,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
scrapeDurationDesc: prometheus.NewDesc(
|
scrapeDurationDesc: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "exporter", "scrape_duration_seconds"),
|
prometheus.BuildFQName(types.Namespace, "exporter", "scrape_duration_seconds"),
|
||||||
"windows_exporter: Total scrape duration.",
|
"windows_exporter: Total scrape duration.",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
collectorScrapeDurationDesc: prometheus.NewDesc(
|
collectorScrapeDurationDesc: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "exporter", "collector_duration_seconds"),
|
prometheus.BuildFQName(types.Namespace, "exporter", "collector_duration_seconds"),
|
||||||
"windows_exporter: Duration of a collection.",
|
"windows_exporter: Duration of a collection.",
|
||||||
[]string{"collector"},
|
[]string{"collector"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
collectorScrapeSuccessDesc: prometheus.NewDesc(
|
collectorScrapeSuccessDesc: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "exporter", "collector_success"),
|
prometheus.BuildFQName(types.Namespace, "exporter", "collector_success"),
|
||||||
"windows_exporter: Whether the collector was successful.",
|
"windows_exporter: Whether the collector was successful.",
|
||||||
[]string{"collector"},
|
[]string{"collector"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
collectorScrapeTimeoutDesc: prometheus.NewDesc(
|
collectorScrapeTimeoutDesc: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "exporter", "collector_timeout"),
|
prometheus.BuildFQName(types.Namespace, "exporter", "collector_timeout"),
|
||||||
"windows_exporter: Whether the collector timed out.",
|
"windows_exporter: Whether the collector timed out.",
|
||||||
[]string{"collector"},
|
[]string{"collector"},
|
||||||
nil,
|
nil,
|
||||||
),
|
),
|
||||||
snapshotDuration: prometheus.NewDesc(
|
snapshotDuration: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types2.Namespace, "exporter", "perflib_snapshot_duration_seconds"),
|
prometheus.BuildFQName(types.Namespace, "exporter", "perflib_snapshot_duration_seconds"),
|
||||||
"Duration of perflib snapshot capture",
|
"Duration of perflib snapshot capture",
|
||||||
nil,
|
nil,
|
||||||
nil,
|
nil,
|
||||||
@@ -166,7 +166,7 @@ func (p *Prometheus) Collect(ch chan<- prometheus.Metric) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Prometheus) execute(name string, c Collector, scrapeCtx *types2.ScrapeContext, ch chan<- prometheus.Metric) collectorStatusCode {
|
func (p *Prometheus) execute(name string, c Collector, scrapeCtx *types.ScrapeContext, ch chan<- prometheus.Metric) collectorStatusCode {
|
||||||
var (
|
var (
|
||||||
err error
|
err error
|
||||||
numMetrics int
|
numMetrics int
|
||||||
|
|||||||
Reference in New Issue
Block a user