PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` import agent_util class ElasticSearchPlugin(agent_util.Plugin): textkey = "elasticsearch" label = "Elastic Search" @classmethod def get_metadata(self, config): status = agent_util.SUPPORTED msg = None if not config: self.log.info( "The [elasticsearch] config block not found in the config file") return {} if not "hostname" in config or not "port" in config: self.log.info( "The [elasticsearch] config block does not contain variables for hostname and/or port") return {} if not agent_util.which("curl", exc=False): self.log.info('curl not found!') status = agent_util.UNSUPPORTED msg = "Curl is not installed - please install" return {} options = [] data = { "number_of_nodes": { "label": "Total number of nodes in cluster", "options": None, "status": status, "error_message": msg }, "number_of_data_nodes": { "label": "Number of data nodes in cluster", "options": None, "status": status, "error_message": msg }, "active_primary_shards": { "label": "Number of active primary shards", "options": None, "status": status, "error_message": msg }, "active_shards": { "label": "Total number of shards", "options": None, "status": status, "error_message": msg }, "relocating_shards": { "label": "Number of shards getting relocated", "options": None, "status": status, "error_message": msg }, "initializing_shards": { "label": "Number of initializing shards", "options": None, "status": status, "error_message": msg }, "unassigned_shards": { "label": "Number of unassigned shards", "options": None, "status": status, "error_message": msg } } return data def check(self, textkey, data, config): user_string = "" if config.get('username') and config.get('password'): user_string = "--user %s:%s" % (config.get('username'), config.get('password')) cmd = 'curl %s %s:%s/_cluster/health' % ( user_string, config['hostname'], config['port']) ret, output = agent_util.execute_command(cmd) reply = agent_util.json_loads(output) return int(reply[textkey])