From faedcec6ab72c8ac973314bccd65b2a0922d75db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Otto=20Kr=C3=B6pke?= Date: Fri, 11 Apr 2025 16:20:41 +0200 Subject: [PATCH 1/3] exchange: fix The specified counter could not be found MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan-Otto Kröpke --- docs/collector.exchange.md | 5 ++--- .../collector/exchange/exchange_autodiscover.go | 2 +- .../exchange/exchange_availability_service.go | 6 +++--- .../exchange/exchange_transport_queues.go | 14 +++++++------- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/docs/collector.exchange.md b/docs/collector.exchange.md index 603db98fb..0cfa1609a 100644 --- a/docs/collector.exchange.md +++ b/docs/collector.exchange.md @@ -43,7 +43,7 @@ Comma-separated list of collectors to use, for example: `--collectors.exchange.e | `windows_exchange_transport_queues_messages_submitted_total` | Messages Submitted Total | | `windows_exchange_transport_queues_messages_delayed_total` | Messages Delayed Total | | `windows_exchange_transport_queues_messages_completed_delivery_total` | Messages Completed Delivery Total | -| `windows_exchange_transport_queues_shadow_queue_length` | Shadow Queue Length | +| `windows_exchange_transport_queues_aggregate_shadow_queue_length` | The current number of messages in shadow queues | | `windows_exchange_transport_queues_submission_queue_length` | Submission Queue Length | | `windows_exchange_transport_queues_delay_queue_length` | Delay Queue Length | | `windows_exchange_transport_queues_items_completed_delivery_total` | Items Completed Delivery Total | @@ -54,7 +54,7 @@ Comma-separated list of collectors to use, for example: `--collectors.exchange.e | `windows_exchange_http_proxy_avg_auth_latency` | Average time spent authenticating CAS requests over the last 200 samples | | `windows_exchange_http_proxy_outstanding_proxy_requests` | Number of concurrent outstanding proxy requests | | `windows_exchange_http_proxy_requests_total` | Number of proxy requests processed each second | -| `windows_exchange_avail_service_requests_per_sec` | Number of requests serviced per second | +| `windows_exchange_availability_service_requests_per_sec` | Number of requests serviced per second | | `windows_exchange_owa_current_unique_users` | Number of unique users currently logged on to Outlook Web App | | `windows_exchange_owa_requests_total` | Number of requests handled by Outlook Web App per second | | `windows_exchange_autodiscover_requests_total` | Number of autodiscover service requests processed each second | @@ -77,4 +77,3 @@ _This collector does not yet have any useful queries added, we would appreciate ## Alerting examples _This collector does not yet have alerting examples, we would appreciate your help adding them!_ - diff --git a/internal/collector/exchange/exchange_autodiscover.go b/internal/collector/exchange/exchange_autodiscover.go index 1b6e8835a..140a7eeb6 100644 --- a/internal/collector/exchange/exchange_autodiscover.go +++ b/internal/collector/exchange/exchange_autodiscover.go @@ -39,7 +39,7 @@ type perfDataCounterValuesAutoDiscover struct { func (c *Collector) buildAutoDiscover() error { var err error - c.perfDataCollectorAutoDiscover, err = pdh.NewCollector[perfDataCounterValuesAutoDiscover](pdh.CounterTypeRaw, "MSExchange Autodiscover", pdh.InstancesAll) + c.perfDataCollectorAutoDiscover, err = pdh.NewCollector[perfDataCounterValuesAutoDiscover](pdh.CounterTypeRaw, "MSExchange Autodiscover", nil) if err != nil { return fmt.Errorf("failed to create MSExchange Autodiscover collector: %w", err) } diff --git a/internal/collector/exchange/exchange_availability_service.go b/internal/collector/exchange/exchange_availability_service.go index 49e4d5c44..74edcb171 100644 --- a/internal/collector/exchange/exchange_availability_service.go +++ b/internal/collector/exchange/exchange_availability_service.go @@ -33,7 +33,7 @@ type collectorAvailabilityService struct { } type perfDataCounterValuesAvailabilityService struct { - RequestsPerSec float64 `perfdata:"Requests/sec"` + availabilityRequestsPerSec float64 `perfdata:"Availability Requests (sec)"` } func (c *Collector) buildAvailabilityService() error { @@ -45,7 +45,7 @@ func (c *Collector) buildAvailabilityService() error { } c.availabilityRequestsSec = prometheus.NewDesc( - prometheus.BuildFQName(types.Namespace, Name, "avail_service_requests_per_sec"), + prometheus.BuildFQName(types.Namespace, Name, "availability_service_requests_per_sec"), "Number of requests serviced per second", nil, nil, @@ -64,7 +64,7 @@ func (c *Collector) collectAvailabilityService(ch chan<- prometheus.Metric) erro ch <- prometheus.MustNewConstMetric( c.availabilityRequestsSec, prometheus.CounterValue, - data.RequestsPerSec, + data.availabilityRequestsPerSec, ) } diff --git a/internal/collector/exchange/exchange_transport_queues.go b/internal/collector/exchange/exchange_transport_queues.go index 7bf1433e0..85e433d5f 100644 --- a/internal/collector/exchange/exchange_transport_queues.go +++ b/internal/collector/exchange/exchange_transport_queues.go @@ -41,7 +41,7 @@ type collectorTransportQueues struct { messagesSubmittedTotal *prometheus.Desc messagesDelayedTotal *prometheus.Desc messagesCompletedDeliveryTotal *prometheus.Desc - shadowQueueLength *prometheus.Desc + aggregateShadowQueueLength *prometheus.Desc submissionQueueLength *prometheus.Desc delayQueueLength *prometheus.Desc itemsCompletedDeliveryTotal *prometheus.Desc @@ -65,7 +65,7 @@ type perfDataCounterValuesTransportQueues struct { MessagesSubmittedTotal float64 `perfdata:"Messages Submitted Total"` MessagesDelayedTotal float64 `perfdata:"Messages Delayed Total"` MessagesCompletedDeliveryTotal float64 `perfdata:"Messages Completed Delivery Total"` - ShadowQueueLength float64 `perfdata:"Shadow Queue Length"` + AggregateShadowQueueLength float64 `perfdata:"Aggregate Shadow Queue Length"` SubmissionQueueLength float64 `perfdata:"Submission Queue Length"` DelayQueueLength float64 `perfdata:"Delay Queue Length"` ItemsCompletedDeliveryTotal float64 `perfdata:"Items Completed Delivery Total"` @@ -154,9 +154,9 @@ func (c *Collector) buildTransportQueues() error { []string{"name"}, nil, ) - c.shadowQueueLength = prometheus.NewDesc( - prometheus.BuildFQName(types.Namespace, Name, "transport_queues_shadow_queue_length"), - "Shadow Queue Length", + c.aggregateShadowQueueLength = prometheus.NewDesc( + prometheus.BuildFQName(types.Namespace, Name, "transport_queues_aggregate_shadow_queue_length"), + "The current number of messages in shadow queues.", []string{"name"}, nil, ) @@ -282,9 +282,9 @@ func (c *Collector) collectTransportQueues(ch chan<- prometheus.Metric) error { labelName, ) ch <- prometheus.MustNewConstMetric( - c.shadowQueueLength, + c.aggregateShadowQueueLength, prometheus.GaugeValue, - data.ShadowQueueLength, + data.AggregateShadowQueueLength, labelName, ) ch <- prometheus.MustNewConstMetric( From cb591c6568cbc143448a724b99b519f4538103b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Otto=20Kr=C3=B6pke?= Date: Mon, 14 Apr 2025 14:21:54 +0200 Subject: [PATCH 2/3] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan-Otto Kröpke --- internal/collector/exchange/exchange_availability_service.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/collector/exchange/exchange_availability_service.go b/internal/collector/exchange/exchange_availability_service.go index 74edcb171..0982f6500 100644 --- a/internal/collector/exchange/exchange_availability_service.go +++ b/internal/collector/exchange/exchange_availability_service.go @@ -33,7 +33,7 @@ type collectorAvailabilityService struct { } type perfDataCounterValuesAvailabilityService struct { - availabilityRequestsPerSec float64 `perfdata:"Availability Requests (sec)"` + AvailabilityRequestsPerSec float64 `perfdata:"Availability Requests (sec)"` } func (c *Collector) buildAvailabilityService() error { @@ -64,7 +64,7 @@ func (c *Collector) collectAvailabilityService(ch chan<- prometheus.Metric) erro ch <- prometheus.MustNewConstMetric( c.availabilityRequestsSec, prometheus.CounterValue, - data.availabilityRequestsPerSec, + data.AvailabilityRequestsPerSec, ) } From fc24d478c93688985b7be9119493fd18223c6a40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Otto=20Kr=C3=B6pke?= Date: Mon, 14 Apr 2025 17:30:50 +0200 Subject: [PATCH 3/3] Update internal/collector/exchange/exchange_autodiscover.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan-Otto Kröpke --- internal/collector/exchange/exchange_autodiscover.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/collector/exchange/exchange_autodiscover.go b/internal/collector/exchange/exchange_autodiscover.go index 140a7eeb6..dc4b244b9 100644 --- a/internal/collector/exchange/exchange_autodiscover.go +++ b/internal/collector/exchange/exchange_autodiscover.go @@ -39,7 +39,7 @@ type perfDataCounterValuesAutoDiscover struct { func (c *Collector) buildAutoDiscover() error { var err error - c.perfDataCollectorAutoDiscover, err = pdh.NewCollector[perfDataCounterValuesAutoDiscover](pdh.CounterTypeRaw, "MSExchange Autodiscover", nil) + c.perfDataCollectorAutoDiscover, err = pdh.NewCollector[perfDataCounterValuesAutoDiscover](pdh.CounterTypeRaw, "MSExchangeAutodiscover", nil) if err != nil { return fmt.Errorf("failed to create MSExchange Autodiscover collector: %w", err) }