prometheus-community / windows_exporter

Prometheus exporter for Windows machines
MIT License
2.92k stars 702 forks source link

Microsoft Exchange Mail Queues #276

Closed charlieuk2k closed 10 months ago

charlieuk2k commented 5 years ago

Is it possible to get metrics for mail queues from Microsoft Exchange with this exporter? If so, would anyone be able to point me in the right direction?

carlpett commented 5 years ago

Hi @charlieuk2k, This is probably possible, although I don't have access to any Exchange servers to see which WMI classes are available. If you run this query in Powershell, does any classes returned seem related to Exchange?

Get-WmiObject -query "SELECT * FROM meta_class WHERE __this ISA 'Win32_PerfRawData'" | 
    Select-Object -ExpandProperty Name

Finding the relevant data in WMI is the crucial step, then it is "just" a matter of implementing support for it.

charlieuk2k commented 5 years ago

Hi @carlpett,

I'll have a look and post my findings.

I'm not an exchange expert myself, I'm the Linux guy in the company so windows is very foreign :)

However, I've been asked if I can monitor it.

charlieuk2k commented 5 years ago

Hi @carlpett,

Full output below, I would hazard to guess 'MSExchange' would be what we are looking for.

Win32_PerfRawData Win32_PerfRawData_ADWS_ADWS Win32_PerfRawData_AFDCounters_MicrosoftWinsockBSP Win32_PerfRawData_APPPOOLCountersProvider_APPPOOLWAS Win32_PerfRawData_ASPNET4030319_ASPNETAppsv4030319 Win32_PerfRawData_ASPNET4030319_ASPNETv4030319 Win32_PerfRawData_ASPNET_ASPNET Win32_PerfRawData_ASPNET_ASPNETApplications Win32_PerfRawData_aspnetstate_ASPNETStateService Win32_PerfRawData_AuthorizationManager_AuthorizationManagerApplications Win32_PerfRawData_Counters_AppVClientStreamedDataPercentage Win32_PerfRawData_Counters_DirectoryServicesQOSPolicy Win32_PerfRawData_Counters_DNS64Global Win32_PerfRawData_Counters_EventTracingforWindows Win32_PerfRawData_Counters_EventTracingforWindowsSession Win32_PerfRawData_Counters_FileSystemDiskActivity Win32_PerfRawData_Counters_GenericIKEv1AuthIPandIKEv2 Win32_PerfRawData_Counters_HTTPService Win32_PerfRawData_Counters_HTTPServiceRequestQueues Win32_PerfRawData_Counters_HTTPServiceUrlGroups Win32_PerfRawData_Counters_HyperVDynamicMemoryIntegrationService Win32_PerfRawData_Counters_HyperVVirtualMachineBusPipes Win32_PerfRawData_Counters_IPHTTPSGlobal Win32_PerfRawData_Counters_IPHTTPSSession Win32_PerfRawData_Counters_IPsecAuthIPIPv4 Win32_PerfRawData_Counters_IPsecAuthIPIPv6 Win32_PerfRawData_Counters_IPsecConnections Win32_PerfRawData_Counters_IPsecDoSProtection Win32_PerfRawData_Counters_IPsecDriver Win32_PerfRawData_Counters_IPsecIKEv1IPv4 Win32_PerfRawData_Counters_IPsecIKEv1IPv6 Win32_PerfRawData_Counters_IPsecIKEv2IPv4 Win32_PerfRawData_Counters_IPsecIKEv2IPv6 Win32_PerfRawData_Counters_KPSSVC Win32_PerfRawData_Counters_Netlogon Win32_PerfRawData_Counters_NetworkQoSPolicy Win32_PerfRawData_Counters_PacerFlow Win32_PerfRawData_Counters_PacerPipe Win32_PerfRawData_Counters_PacketDirectECUtilization Win32_PerfRawData_Counters_PacketDirectQueueDepth Win32_PerfRawData_Counters_PacketDirectReceiveCounters Win32_PerfRawData_Counters_PacketDirectReceiveFilters Win32_PerfRawData_Counters_PacketDirectTransmitCounters Win32_PerfRawData_Counters_PerProcessorNetworkActivityCycles Win32_PerfRawData_Counters_PerProcessorNetworkInterfaceCardActivity Win32_PerfRawData_Counters_PhysicalNetworkInterfaceCardActivity Win32_PerfRawData_Counters_PowerShellWorkflow Win32_PerfRawData_Counters_ProcessorInformation Win32_PerfRawData_Counters_RDMAActivity Win32_PerfRawData_Counters_ReFS Win32_PerfRawData_Counters_RemoteFXGraphics Win32_PerfRawData_Counters_RemoteFXNetwork Win32_PerfRawData_Counters_SMBClientShares Win32_PerfRawData_Counters_SMBDirectConnection Win32_PerfRawData_Counters_SMBServer Win32_PerfRawData_Counters_SMBServerSessions Win32_PerfRawData_Counters_SMBServerShares Win32_PerfRawData_Counters_StorageSpacesTier Win32_PerfRawData_Counters_StorageSpacesVirtualDisk Win32_PerfRawData_Counters_StorageSpacesWriteCache Win32_PerfRawData_Counters_Synchronization Win32_PerfRawData_Counters_SynchronizationNuma Win32_PerfRawData_Counters_TeredoClient Win32_PerfRawData_Counters_TeredoRelay Win32_PerfRawData_Counters_TeredoServer Win32_PerfRawData_Counters_ThermalZoneInformation Win32_PerfRawData_Counters_WFP Win32_PerfRawData_Counters_WFPv4 Win32_PerfRawData_Counters_WFPv6 Win32_PerfRawData_Counters_WSManQuotaStatistics Win32_PerfRawData_Counters_XHCICommonBuffer Win32_PerfRawData_Counters_XHCIInterrupter Win32_PerfRawData_Counters_XHCITransferRing Win32_PerfRawData_DdmCounterProvider_RAS Win32_PerfRawData_DirectoryServices_DirectoryServices Win32_PerfRawData_ESE_MSExchangeDatabase Win32_PerfRawData_ESE_MSExchangeDatabaseDatabases Win32_PerfRawData_ESE_MSExchangeDatabaseInstances Win32_PerfRawData_ESE_MSExchangeDatabaseTableClasses Win32_PerfRawData_ESENT_Database Win32_PerfRawData_ESENT_DatabaseInstances Win32_PerfRawData_ESENT_DatabaseTableClasses Win32_PerfRawData_HvStats_HyperVHypervisor Win32_PerfRawData_HvStats_HyperVHypervisorLogicalProcessor Win32_PerfRawData_HvStats_HyperVHypervisorRootPartition Win32_PerfRawData_HvStats_HyperVHypervisorRootVirtualProcessor Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal Win32_PerfRawData_LocalSessionManager_TerminalServices Win32_PerfRawData_Lsa_SecurityPerProcessStatistics Win32_PerfRawData_Lsa_SecuritySystemWideStatistics Win32_PerfRawData_MediaPerf_LSMEDIAInformational Win32_PerfRawData_MediaPerf_LSMEDIAOperations Win32_PerfRawData_MediaPerf_LSMEDIAPlanning Win32_PerfRawData_MediaPerf_LSMEDIAPrivate Win32_PerfRawData_MicrosoftExchangeDataApplicationLogic_MicrosoftExchangeDataApplicationLogic Win32_PerfRawData_MicrosoftWindowsRemoteDesktopServicesRemoteFXSynth3dvsc_RemoteFXSynth3DVSCVMDevice Win32_PerfRawData_MicrosoftWindowsRemoteDesktopServicesRemoteFXSynth3dvsc_RemoteFXSynth3DVSCVMTransportChannel Win32_PerfRawData_MicrosoftWindowsW32TimePerf_WindowsTimeService Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator Win32_PerfRawData_MSDTCBridge4000_MSDTCBridge4000 Win32_PerfRawData_MSExchangeActivityContextResources_MSExchangeActivityContextResources Win32_PerfRawData_MSExchangeADAccess_MSExchangeADAccessCaches Win32_PerfRawData_MSExchangeADAccess_MSExchangeADAccessDomainControllers Win32_PerfRawData_MSExchangeADAccess_MSExchangeADAccessGlobalCounters Win32_PerfRawData_MSExchangeADAccess_MSExchangeADAccessLocalSiteDomainControllers Win32_PerfRawData_MSExchangeADAccess_MSExchangeADAccessProcesses Win32_PerfRawData_MSExchangeADAccessForestDiscovery_MSExchangeADAccessForestDiscovery Win32_PerfRawData_MSExchangeADAccessTopologyService_MSExchangeADAccessTopologyService Win32_PerfRawData_MSExchangeADForestPerformance_MSExchangeADForestPerformance Win32_PerfRawData_MSExchangeAdminAuditLog_MSExchangeAdminAuditLog Win32_PerfRawData_MSExchangeADPerformance_MSExchangeADPerformance Win32_PerfRawData_MSExchangeAttachmentFiltering_MSExchangeAttachmentFiltering Win32_PerfRawData_MSExchangeConnectionFilteringAgent_MSExchangeConnectionFilteringAgent Win32_PerfRawData_MSExchangeContentFilterAgent_MSExchangeContentFilterAgent Win32_PerfRawData_MSExchangeDatabasePinger_MSExchangeDatabasePinger Win32_PerfRawData_MSExchangeDiagnosticsService_MSExchangeDiagnosticsService Win32_PerfRawData_MSExchangeExpandedGroupsCache_MSExchangeExpandedGroupsCache Win32_PerfRawData_MSExchangeIISReturnCode_MSExchangeIISReturnCode Win32_PerfRawData_MSExchangeLAMEvent_MSExchangeLAMEvent Win32_PerfRawData_MSExchangeLogSearchService_MSExchangeLogSearchService Win32_PerfRawData_MSExchangeNSPIRPCClientConnections_MSExchangeNSPIRPCClientConnections Win32_PerfRawData_MSExchangeProtocolAnalysisAgent_MSExchangeProtocolAnalysisAgent Win32_PerfRawData_MSExchangeProtocolAnalysisBackgroundAgent_MSExchangeProtocolAnalysisBackgroundAgent Win32_PerfRawData_MSExchangeProtocolCommandAvailability_MSExchangeProtocolCommandAvailability Win32_PerfRawData_MSExchangeRealtimeAnalyticsJob_MSExchangeRealtimeAnalyticsJob Win32_PerfRawData_MSExchangeRecipientFilterAgent_MSExchangeRecipientFilterAgent Win32_PerfRawData_MSExchangeResourceLoad_MSExchangeResourceLoad Win32_PerfRawData_MSExchangeSecureMailTransport_MSExchangeSecureMailTransport Win32_PerfRawData_MSExchangeSenderFilterAgent_MSExchangeSenderFilterAgent Win32_PerfRawData_MSExchangeSenderIdAgent_MSExchangeSenderIdAgent Win32_PerfRawData_MSExchangeServiceProxyPool_MSExchangeServiceProxyPool Win32_PerfRawData_MSExchangeSharedCache_MSExchangeSharedCache Win32_PerfRawData_MSExchangeTopology_MSExchangeTopology Win32_PerfRawData_MSExchangeTransportCatProcessor_MSExchangeTransportCatProcessor Win32_PerfRawData_MSExchangeTransportCertificateValidationCache_MSExchangeTransportCertificateValidationCache Win32_PerfRawData_MSExchangeTransportCFMSMTPReceive_MSExchangeTransportCFMSMTPReceive Win32_PerfRawData_MSExchangeTransportCFMSmtpSend_MSExchangeTransportCFMSmtpSend Win32_PerfRawData_MSExchangeTransportComponentLatency_MSExchangeTransportComponentLatency Win32_PerfRawData_MSExchangeTransportConfiguration_MSExchangeTransportConfiguration Win32_PerfRawData_MSExchangeTransportConfigurationCache_MSExchangeTransportConfigurationCache Win32_PerfRawData_MSExchangeTransportDatabase_MSExchangeTransportDatabase Win32_PerfRawData_MSExchangeTransportDeliveryAgent_MSExchangeTransportDeliveryAgent Win32_PerfRawData_MSExchangeTransportDeliveryFailures_MSExchangeTransportDeliveryFailures Win32_PerfRawData_MSExchangeTransportDSApiClient_MSExchangeTransportDSApiClient Win32_PerfRawData_MSExchangeTransportDSN_MSExchangeTransportDSN Win32_PerfRawData_MSExchangeTransportEndToEndLatency_MSExchangeTransportEndToEndLatency Win32_PerfRawData_MSExchangeTransportExtensibilityAgents_MSExchangeTransportExtensibilityAgents Win32_PerfRawData_MSExchangeTransportExtensibilityRuntimes_MSExchangeTransportExtensibilityRuntimes Win32_PerfRawData_MSExchangeTransportHTTP_MSExchangeTransportHTTP Win32_PerfRawData_MSExchangeTransportHttpSend_MSExchangeTransportHttpSend Win32_PerfRawData_MSExchangeTransportMessageDepot_MSExchangeTransportMessageDepot Win32_PerfRawData_MSExchangeTransportPickup_MSExchangeTransportPickup Win32_PerfRawData_MSExchangeTransportPoisonMessages_MSExchangeTransportPoisonMessages Win32_PerfRawData_MSExchangeTransportProcessingScheduler_MSExchangeTransportProcessingScheduler Win32_PerfRawData_MSExchangeTransportQueuedRecipientsByTrafficType_MSExchangeTransportQueuedRecipientsByTrafficType Win32_PerfRawData_MSExchangeTransportQueues_MSExchangeTransportQueues Win32_PerfRawData_MSExchangeTransportQueuesCfm_MSExchangeTransportQueuesCfm Win32_PerfRawData_MSExchangeTransportReplication_MSExchangeTransportReplication Win32_PerfRawData_MSExchangeTransportRequestBroker_MSExchangeTransportRequestBroker Win32_PerfRawData_MSExchangeTransportResourceThrottling_MSExchangeTransportResourceThrottling Win32_PerfRawData_MSExchangeTransportRouting_MSExchangeTransportRouting Win32_PerfRawData_MSExchangeTransportRules_MSExchangeTransportRules Win32_PerfRawData_MSExchangeTransportSafetyNet_MSExchangeTransportSafetyNet Win32_PerfRawData_MSExchangeTransportServerAlive_MSExchangeTransportServerAlive Win32_PerfRawData_MSExchangeTransportShadowRedundancy_MSExchangeTransportShadowRedundancy Win32_PerfRawData_MSExchangeTransportShadowRedundancyHostInfo_MSExchangeTransportShadowRedundancyHostInfo Win32_PerfRawData_MSExchangeTransportSMTPAvailability_MSExchangeTransportSMTPAvailability Win32_PerfRawData_MSExchangeTransportSmtpErrors_MSExchangeTransportSmtpErrors Win32_PerfRawData_MSExchangeTransportSMTPReceive_MSExchangeTransportSMTPReceive Win32_PerfRawData_MSExchangeTransportSmtpReceivePerformance_MSExchangeTransportSmtpReceivePerformance Win32_PerfRawData_MSExchangeTransportSmtpResponseCode_MSExchangeTransportSmtpResponseCode Win32_PerfRawData_MSExchangeTransportSmtpSend_MSExchangeTransportSmtpSend Win32_PerfRawData_MSExchangeTransportStorageRESTAPI_MSExchangeTransportStorageRESTAPI Win32_PerfRawData_MSExchangeUnifiedDlpRules_MSExchangeUnifiedDlpRules Win32_PerfRawData_MSExchangeUpdateAgent_MSExchangeUpdateAgent Win32_PerfRawData_MSExchangeUserThrottling_MSExchangeUserThrottling Win32_PerfRawData_MSExchangeUserWorkloadManager_MSExchangeUserWorkloadManager Win32_PerfRawData_MSExchangeWorkerTaskFramework_MSExchangeWorkerTaskFramework Win32_PerfRawData_MSExchangeWorkloadManagement_MSExchangeWorkloadManagement Win32_PerfRawData_MSExchangeWorkloadManagementClassification_MSExchangeWorkloadManagementClassification Win32_PerfRawData_MSExchangeWorkloadManagementWorkloads_MSExchangeWorkloadManagementWorkloads Win32_PerfRawData_msmq_MSMQIncomingHTTPTraffic Win32_PerfRawData_msmq_MSMQIncomingMulticastSession Win32_PerfRawData_msmq_MSMQOutgoingHTTPSession Win32_PerfRawData_msmq_MSMQOutgoingMulticastSession Win32_PerfRawData_msmq_MSMQQueue Win32_PerfRawData_msmq_MSMQService Win32_PerfRawData_msmq_MSMQSession Win32_PerfRawData_MSUnifiedComplianceSync_MSUnifiedComplianceSync Win32_PerfRawData_MSUnifiedFileSync_MSUnifiedFileSync Win32_PerfRawData_NETCLRData_NETCLRData Win32_PerfRawData_NETCLRNetworking4000_NETCLRNetworking4000 Win32_PerfRawData_NETCLRNetworking_NETCLRNetworking Win32_PerfRawData_NETDataProviderforOracle_NETDataProviderforOracle Win32_PerfRawData_NETDataProviderforSqlServer_NETDataProviderforSqlServer Win32_PerfRawData_NETFramework_NETCLRExceptions Win32_PerfRawData_NETFramework_NETCLRInterop Win32_PerfRawData_NETFramework_NETCLRJit Win32_PerfRawData_NETFramework_NETCLRLoading Win32_PerfRawData_NETFramework_NETCLRLocksAndThreads Win32_PerfRawData_NETFramework_NETCLRMemory Win32_PerfRawData_NETFramework_NETCLRRemoting Win32_PerfRawData_NETFramework_NETCLRSecurity Win32_PerfRawData_NETMemoryCache40_NETMemoryCache40 Win32_PerfRawData_OfflineFiles_ClientSideCaching Win32_PerfRawData_OfflineFiles_OfflineFiles Win32_PerfRawData_PerfDisk_LogicalDisk Win32_PerfRawData_PerfDisk_PhysicalDisk Win32_PerfRawData_PerfNet_Browser Win32_PerfRawData_PerfNet_Redirector Win32_PerfRawData_PerfNet_Server Win32_PerfRawData_PerfNet_ServerWorkQueues Win32_PerfRawData_PerfOS_Cache Win32_PerfRawData_PerfOS_Memory Win32_PerfRawData_PerfOS_NUMANodeMemory Win32_PerfRawData_PerfOS_Objects Win32_PerfRawData_PerfOS_PagingFile Win32_PerfRawData_PerfOS_Processor Win32_PerfRawData_PerfOS_System Win32_PerfRawData_PerfProc_FullImage_Costly Win32_PerfRawData_PerfProc_Heap_Costly Win32_PerfRawData_PerfProc_Image_Costly Win32_PerfRawData_PerfProc_JobObject Win32_PerfRawData_PerfProc_JobObjectDetails Win32_PerfRawData_PerfProc_Process Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly Win32_PerfRawData_PerfProc_Thread Win32_PerfRawData_PerfProc_ThreadDetails_Costly Win32_PerfRawData_PowerMeterCounter_EnergyMeter Win32_PerfRawData_PowerMeterCounter_PowerMeter Win32_PerfRawData_RemoteAccess_RASPort Win32_PerfRawData_RemoteAccess_RASTotal Win32_PerfRawData_RemoteDesktopConnectionBrokerRedirectorPerformanceCounterProvider_RemoteDesktopConnectionBrokerRedirec torCounterset Win32_PerfRawData_S4Perf_LSSipEpsSipDialogs Win32_PerfRawData_S4Perf_LSSipEpsSipEpsConnections Win32_PerfRawData_S4Perf_LSSipEpsSipEpsIncomingMessages Win32_PerfRawData_S4Perf_LSSipEpsSipEpsOutgoingMessages Win32_PerfRawData_S4Perf_LSSipEpsSipEpsTransactions Win32_PerfRawData_ServiceModel4000_ServiceModelEndpoint4000 Win32_PerfRawData_ServiceModel4000_ServiceModelOperation4000 Win32_PerfRawData_ServiceModel4000_ServiceModelService4000 Win32_PerfRawData_SMSvcHost4000_SMSvcHost4000 Win32_PerfRawData_Spooler_PrintQueue Win32_PerfRawData_TapiSrv_Telephony Win32_PerfRawData_Tcpip_ICMP Win32_PerfRawData_Tcpip_ICMPv6 Win32_PerfRawData_Tcpip_IPv4 Win32_PerfRawData_Tcpip_IPv6 Win32_PerfRawData_Tcpip_NBTConnection Win32_PerfRawData_Tcpip_NetworkAdapter Win32_PerfRawData_Tcpip_NetworkInterface Win32_PerfRawData_Tcpip_TCPv4 Win32_PerfRawData_Tcpip_TCPv6 Win32_PerfRawData_Tcpip_UDPv4 Win32_PerfRawData_Tcpip_UDPv6 Win32_PerfRawData_TCPIPCounters_TCPIPPerformanceDiagnostics Win32_PerfRawData_TermService_TerminalServicesSession Win32_PerfRawData_usbhub_USB Win32_PerfRawData_W3SVC_WebService Win32_PerfRawData_W3SVC_WebServiceCache Win32_PerfRawData_W3SVCW3WPCounterProvider_W3SVCW3WP Win32_PerfRawData_WASW3WPCounterProvider_WASW3WP Win32_PerfRawData_WindowsMediaPlayer_WindowsMediaPlayerMetadata Win32_PerfRawData_WindowsWorkflowFoundation4000_WFSystemWorkflow4000 Win32_PerfRawData_WinNatCounters_WinNAT Win32_PerfRawData_WinNatCounters_WinNATICMP Win32_PerfRawData_WinNatCounters_WinNATInstance Win32_PerfRawData_WinNatCounters_WinNATTCP Win32_PerfRawData_WinNatCounters_WinNATUDP Win32_PerfRawData_WorkflowServiceHost4000_WorkflowServiceHost4000

martinlindhe commented 5 years ago

I'm not an exchange expert myself, I'm the Linux guy in the company so windows is very foreign :)

You are with friends, I think we're all "the Linux guys" here. wmi_exporter just got built to plug into our linux monitoring in the first place ;-)

proffalken commented 3 years ago

~Hey folks, do you know if there are still plans to implement this, or if it has been implemented via an alternative exporter?~

Looks like https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md does much of this, is there anything that is missing?

github-actions[bot] commented 11 months ago

This issue has been marked as stale because it has been open for 90 days with no activity. This thread will be automatically closed in 30 days if no further activity occurs.