21 changed files
check_atlas_version.py | ||
check_couchdb_database_exists.py | ||
check_couchdb_database_stats.py | ||
check_hadoop_datanode_last_contact.py | ||
check_hadoop_datanode_version.py | ||
check_hadoop_datanodes_block_balance.py | ||
check_hadoop_hdfs_balance.py | ||
check_hadoop_hdfs_space.py | ||
check_hadoop_namenode_version.py | ||
check_hadoop_yarn_app_last_run.py | ||
check_hadoop_yarn_app_running.py | ||
check_hadoop_yarn_long_running_apps.py | ||
check_hadoop_yarn_queue_apps.py | ||
check_hbase_region_longest_migration_time.py | ||
check_jenkins_job_buildable.py | ||
check_kafka.py | ||
check_ranger_policy.py | ||
check_ranger_repository.py | ||
check_tachyon_worker_heartbeat.py | ||
check_zaloni_bedrock_ingestion.py | ||
check_zaloni_bedrock_workflow.py | ||
Add comment 35 sys.path.append(libdir)
Add comment 36 try:
Add comment 37 # pylint: disable=wrong-import-position
Add comment 38 Minus #from harisekhon.utils import support_msg_api
Add comment 38 Plus from harisekhon.utils import UnknownError
Add comment 39 from harisekhon import RestVersionNagiosPlugin
Add comment 40 except ImportError as _:
Add comment 41 print(traceback.format_exc(), end='')
Add comment 42 sys.exit(4)
Add comment 43
Add comment 44 __author__ = 'Hari Sekhon'
Add comment 45 Minus __version__ = '0.1'
Add comment 45 Plus __version__ = '0.2'
Add comment 46
Add comment 47
Add comment 48 # pylint: disable=too-few-public-methods
Add comment 60 self.ok()
Add comment 61
Add comment 62 def parse_json(self, json_data):
Add comment 63 Minus assert json_data['Name'] == 'apache-atlas'
Add comment 63 Plus if json_data['Name'] != 'apache-atlas':
Add comment 64 Plus raise UnknownError('Name {} != apache-atlas'.format(json_data['Name']))
Add comment 64 65 version = json_data['Version']
Add comment 65 66 version = version.split('-')[0]
Add comment 66 67 if not self.verbose:
check_couchdb_database_exists.py
/check_couchdb_database_exists.py-2+3/check_couchdb_database_exists.py
Add comment 43 sys.exit(4)
Add comment 44
Add comment 45 __author__ = 'Hari Sekhon'
Add comment 46 Minus __version__ = '0.3'
Add comment 46 Plus __version__ = '0.4'
Add comment 47
Add comment 48
Add comment 49 class CheckCouchDBDatabaseExists(RestNagiosPlugin):
Add comment 126 # now using direct /{db} call instead for specific database
Add comment 127 # exception handling wrapped further up in class hierarchy
Add comment 128 if self.is_ok():
Add comment 129 Minus assert json_data['db_name'] == self.database
Add comment 129 Plus if json_data['db_name'] != self.database:
Add comment 130 Plus raise UnknownError('db_name {} != {}'.format(json_data['db_name'], self.database))
Add comment 130 131 self.msg += 'exists'
Add comment 131 132
Add comment 132 133
check_couchdb_database_stats.py
/check_couchdb_database_stats.py-2+3/check_couchdb_database_stats.py
Add comment 55 sys.exit(4)
Add comment 56
Add comment 57 __author__ = 'Hari Sekhon'
Add comment 58 Minus __version__ = '0.3'
Add comment 58 Plus __version__ = '0.4'
Add comment 59
Add comment 60
Add comment 61 class CheckCouchDBDatabaseStats(RestNagiosPlugin):
Add comment 109
Add comment 110 def parse_json(self, json_data):
Add comment 111 self.list_databases(json_data)
Add comment 112 Minus assert json_data['db_name'] == self.database
Add comment 112 Plus if json_data['db_name'] != self.database:
Add comment 113 Plus raise UnknownError('db_name {} != {}'.format(json_data['db_name'], self.database))
Add comment 113 114 self.msg += "'{0}' ".format(self.database)
Add comment 114 115 self.check_couchdb_stats(json_data)
Add comment 115 116
check_hadoop_datanode_last_contact.py
/check_hadoop_datanode_last_contact.py-2+3/check_hadoop_datanode_last_contact.py
Add comment 50 sys.exit(4)
Add comment 51
Add comment 52 __author__ = 'Hari Sekhon'
Add comment 53 Minus __version__ = '0.7'
Add comment 53 Plus __version__ = '0.7.1'
Add comment 54
Add comment 55
Add comment 56 class CheckHadoopDatanodeLastContact(RestNagiosPlugin):
Add comment 150 raise UnknownError("non-integer '{0}' returned for last contact seconds by namenode '{1}:{2}'"\
Add comment 151 .format(last_contact_secs, self.host, self.port))
Add comment 152 last_contact_secs = int(last_contact_secs)
Add comment 153 Minus assert last_contact_secs >= 0
Add comment 153 Plus if last_contact_secs < 0:
Add comment 154 Plus raise UnknownError('last_contact_secs {} < 0!'.format(last_contact_secs))
Add comment 154 155 self.msg += "HDFS datanode '{0}' last contact with namenode was {1} sec{2} ago"\
Add comment 155 156 .format(self.datanode, last_contact_secs, plural(last_contact_secs))
Add comment 156 157 self.check_thresholds(last_contact_secs)
check_hadoop_datanode_version.py
/check_hadoop_datanode_version.py-3+4/check_hadoop_datanode_version.py
Add comment 38 sys.path.append(libdir)
Add comment 39 try:
Add comment 40 # pylint: disable=wrong-import-position
Add comment 41 Minus #from harisekhon.utils import log
Add comment 41 Plus from harisekhon.utils import UnknownError
Add comment 42 from harisekhon import RestVersionNagiosPlugin
Add comment 43 except ImportError as _:
Add comment 44 print(traceback.format_exc(), end='')
Add comment 45 sys.exit(4)
Add comment 46
Add comment 47 __author__ = 'Hari Sekhon'
Add comment 48 Minus __version__ = '0.1'
Add comment 48 Plus __version__ = '0.2'
Add comment 49
Add comment 50
Add comment 51 # pylint: disable=too-few-public-methods
Add comment 66 # must override, cannot change to @staticmethod
Add comment 67 def parse_json(self, json_data): # pylint: disable=no-self-use
Add comment 68 data = json_data['beans'][0]
Add comment 69 Minus assert data['name'] == 'Hadoop:service=DataNode,name=DataNodeInfo'
Add comment 69 Plus if data['name'] != 'Hadoop:service=DataNode,name=DataNodeInfo':
Add comment 70 Plus raise UnknownError('name {} != Hadoop:service=DataNode,name=DataNodeInfo'.format(data['name']))
Add comment 70 71 version = data['Version']
Add comment 71 72 #log.info("raw version = '%s'", version)
Add comment 72 73 version = version.split(',')[0]
check_hadoop_datanodes_block_balance.py
/check_hadoop_datanodes_block_balance.py-3+4/check_hadoop_datanodes_block_balance.py
Add comment 51 sys.exit(4)
Add comment 52
Add comment 53 __author__ = 'Hari Sekhon'
Add comment 54 Minus __version__ = '0.5'
Add comment 54 Plus __version__ = '0.5.1'
Add comment 55
Add comment 56
Add comment 57 class CheckHadoopDatanodesBlockBalance(RestNagiosPlugin):
Add comment 90 for datanode in live_node_data:
Add comment 91 blocks = live_node_data[datanode]['numBlocks']
Add comment 92 if not isInt(blocks):
Add comment 93 Minus raise UnknownError('numBlocks is not an integer! {0}'.format(support_msg_api()))
Add comment 93 Plus raise UnknownError('numBlocks {} is not an integer! {}'.format(blocks, support_msg_api()))
Add comment 94 blocks = int(blocks)
Add comment 95 log.info("datanode '%s' has %s blocks", datanode, blocks)
Add comment 96 if blocks > max_blocks:
Add comment 99 min_blocks = blocks
Add comment 100 log.info("max blocks on a single datanode = %s", max_blocks)
Add comment 101 log.info("min blocks on a single datanode = %s", min_blocks)
Add comment 102 Minus assert min_blocks is not None
Add comment 102 Plus if min_blocks is None:
Add comment 103 Plus raise UnknownError('min_blocks is None')
Add comment 103 104 divisor = min_blocks
Add comment 104 105 if min_blocks < 1:
Add comment 105 106 log.info("min blocks < 1, resetting divisor to 1 (% will be very high)")
check_hadoop_namenode_version.py
/check_hadoop_namenode_version.py/check_hadoop_namenode_version.py
check_hadoop_yarn_app_last_run.py
/check_hadoop_yarn_app_last_run.py/check_hadoop_yarn_app_last_run.py
check_hadoop_yarn_app_running.py
/check_hadoop_yarn_app_running.py/check_hadoop_yarn_app_running.py
check_hadoop_yarn_long_running_apps.py
/check_hadoop_yarn_long_running_apps.py/check_hadoop_yarn_long_running_apps.py
check_hbase_region_longest_migration_time.py
/check_hbase_region_longest_migration_time.py/check_hbase_region_longest_migration_time.py
check_tachyon_worker_heartbeat.py
/check_tachyon_worker_heartbeat.py/check_tachyon_worker_heartbeat.py
check_zaloni_bedrock_ingestion.py
/check_zaloni_bedrock_ingestion.py/check_zaloni_bedrock_ingestion.py
check_zaloni_bedrock_workflow.py
/check_zaloni_bedrock_workflow.py/check_zaloni_bedrock_workflow.py