zabbix-elasticsearch
33 строки · 823.0 Байт
1from urllib.parse import urlparse
2
3import json
4import argparse
5import requests
6import sys
7
8def check_es_health(url, metric):
9"""
10Try to get and return the specified metric
11"""
12address = url.scheme + '://' + url.netloc + '/_cluster/health'
13result = requests.get(address)
14
15assert result.status_code == 200
16
17state = result.json()
18
19if metric in state.keys():
20print(result.json()[metric])
21sys.exit(0)
22
23raise ValueError('The Key %s provided not exists on the response' %metric)
24
25
26if __name__ == '__main__':
27parser = argparse.ArgumentParser()
28parser.add_argument('--url', type=urlparse, required=True)
29parser.add_argument('--metric', type=str, required=True)
30
31args = parser.parse_args()
32
33check_es_health(url=args.url, metric=args.metric)
34