From 958adf555444607eef36440f566e692fd0cccd98 Mon Sep 17 00:00:00 2001 From: Julia Simon <611228+hithwen@users.noreply.github.com> Date: Wed, 14 Jul 2021 12:54:09 +0200 Subject: [PATCH 1/2] Add debug line when there are no messages available --- .../ibm_mq/collectors/channel_metric_collector.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ibm_mq/datadog_checks/ibm_mq/collectors/channel_metric_collector.py b/ibm_mq/datadog_checks/ibm_mq/collectors/channel_metric_collector.py index 9c7a291523852..ab40f669394ab 100644 --- a/ibm_mq/datadog_checks/ibm_mq/collectors/channel_metric_collector.py +++ b/ibm_mq/datadog_checks/ibm_mq/collectors/channel_metric_collector.py @@ -94,7 +94,9 @@ def _submit_channel_status(self, queue_manager, search_channel_name, tags, chann self.service_check(self.CHANNEL_SERVICE_CHECK, AgentCheck.CRITICAL, search_channel_tags) if e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQCFC.MQRCCF_CHL_STATUS_NOT_FOUND: self.log.debug("Channel status not found for channel %s: %s", search_channel_name, e) - elif not (e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE): + elif e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE: + self.log.debug("There are no messages available for channel %s", search_channel_name) + else: self.log.warning("Error getting CHANNEL status for channel %s: %s", search_channel_name, e) else: for channel_info in response: From f9b7d05b0ccd7af3efc59b64d10ef71cbb6f9929 Mon Sep 17 00:00:00 2001 From: Julia Simon <611228+hithwen@users.noreply.github.com> Date: Wed, 14 Jul 2021 13:06:20 +0200 Subject: [PATCH 2/2] Add more debug messages --- .../collectors/channel_metric_collector.py | 4 +++- .../collectors/queue_metric_collector.py | 20 +++++++++++++------ .../ibm_mq/collectors/stats_collector.py | 4 +++- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/ibm_mq/datadog_checks/ibm_mq/collectors/channel_metric_collector.py b/ibm_mq/datadog_checks/ibm_mq/collectors/channel_metric_collector.py index ab40f669394ab..f64a368237183 100644 --- a/ibm_mq/datadog_checks/ibm_mq/collectors/channel_metric_collector.py +++ b/ibm_mq/datadog_checks/ibm_mq/collectors/channel_metric_collector.py @@ -52,7 +52,9 @@ def get_pcf_channel_metrics(self, queue_manager): except pymqi.MQMIError as e: # Don't warn if no messages, see: # https://github.com/dsuch/pymqi/blob/v1.12.0/docs/examples.rst#how-to-wait-for-multiple-messages - if not (e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE): + if e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE: + self.log.debug("There are no messages available for PCF channel") + else: self.log.warning("Error getting CHANNEL stats %s", e) else: channels = len(response) diff --git a/ibm_mq/datadog_checks/ibm_mq/collectors/queue_metric_collector.py b/ibm_mq/datadog_checks/ibm_mq/collectors/queue_metric_collector.py index 12b38daacc28c..6b6e487db9581 100644 --- a/ibm_mq/datadog_checks/ibm_mq/collectors/queue_metric_collector.py +++ b/ibm_mq/datadog_checks/ibm_mq/collectors/queue_metric_collector.py @@ -89,7 +89,9 @@ def _discover_queues(self, queue_manager, mq_pattern_filter): except pymqi.MQMIError as e: # Don't warn if no messages, see: # https://github.com/dsuch/pymqi/blob/v1.12.0/docs/examples.rst#how-to-wait-for-multiple-messages - if not (e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE): + if e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE: + self.log.debug("No queue info available") + else: self.warning("Error discovering queue: %s", e) else: for queue_info in response: @@ -130,7 +132,9 @@ def queue_stats(self, queue_manager, queue_name, tags): except pymqi.MQMIError as e: # Don't warn if no messages, see: # https://github.com/dsuch/pymqi/blob/v1.12.0/docs/examples.rst#how-to-wait-for-multiple-messages - if not (e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE): + if e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE: + self.log.debug("No stat messages available for queue %s", queue_name) + else: self.warning("Error getting queue stats for %s: %s", queue_name, e) else: # Response is a list. It likely has only one member in it. @@ -169,8 +173,10 @@ def get_pcf_queue_status_metrics(self, queue_manager, queue_name, tags): except pymqi.MQMIError as e: # Don't warn if no messages, see: # https://github.com/dsuch/pymqi/blob/v1.12.0/docs/examples.rst#how-to-wait-for-multiple-messages - if not (e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE): - self.warning("Error getting pcf queue stats for %s: %s", queue_name, e) + if e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE: + self.log.debug("No PCF queue status messages available for queue %s", queue_name) + else: + self.warning("Error getting pcf queue status for %s: %s", queue_name, e) else: # Response is a list. It likely has only one member in it. for queue_info in response: @@ -199,8 +205,10 @@ def get_pcf_queue_reset_metrics(self, queue_manager, queue_name, tags): except pymqi.MQMIError as e: # Don't warn if no messages, see: # https://github.com/dsuch/pymqi/blob/v1.12.0/docs/examples.rst#how-to-wait-for-multiple-messages - if not (e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE): - self.warning("Error getting pcf queue stats for %s: %s", queue_name, e) + if e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE: + self.log.debug("No PCF queue reset metrics messages available for queue %s", queue_name) + else: + self.warning("Error getting pcf queue reset metrics for %s: %s", queue_name, e) else: # Response is a list. It likely has only one member in it. for queue_info in response: diff --git a/ibm_mq/datadog_checks/ibm_mq/collectors/stats_collector.py b/ibm_mq/datadog_checks/ibm_mq/collectors/stats_collector.py index b041dc409f1ee..0d99a4932147c 100644 --- a/ibm_mq/datadog_checks/ibm_mq/collectors/stats_collector.py +++ b/ibm_mq/datadog_checks/ibm_mq/collectors/stats_collector.py @@ -68,7 +68,9 @@ def collect(self, queue_manager): except pymqi.MQMIError as e: # Don't warn if no messages, see: # https://github.com/dsuch/pymqi/blob/v1.12.0/docs/examples.rst#how-to-wait-for-multiple-messages - if not (e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE): + if e.comp == pymqi.CMQC.MQCC_FAILED and e.reason == pymqi.CMQC.MQRC_NO_MSG_AVAILABLE: + self.log.debug("No messages available") + else: raise finally: queue.close()