最近有需求统计ES存储容量,之前用PHP实现的,考虑到以后可能会经常写脚本查询,故用pyth
最近有需求统计ES存储容量,之前用PHP实现的,考虑到以后可能会经常写脚本查询,故用python写了一个脚本,代码如下:
import urllib
import urllib2
import sys
es_service_addr = sys.argv[1]
url = "http://" + es_service_addr + "/_cat/indices?v";
req = urllib2.Request(url)
res_data = urllib2.urlopen(req)
res = res_data.read()
list = res.split('\n')
title = list[0].split()
length = len(list)
data = list[1:length]
map={}
for i in title:
map[i] = title.index(i)
capacity_used = 0;
for i in data:
value = i.split()
l = len(value)
if l > 0 :
store_size = value[map['store.size']].lower()
if "k" in store_size:
capacity_used += int(store_size[:-1]) * 1024
elif "m" in store_size:
capacity_used += int(store_size[:-1]) * 1024 * 1024
elif "g" in store_size:
capacity_used += int(store_size[:-1]) * 1024 * 1024 * 1024
elif "p" in store_size:
capacity_used += int(store_size[:-1]) * 1024 * 1024 * 1024 * 1024
elif "p" in store_size:
capacity_used += int(store_size[:-1]) * 1024 * 1024 * 1024 * 1024 * 1024
else:
capacity_used += int(store_size[:-1])
print str(capacity_used) + " Bytes"
背景:
通过ES 查询的结果如图所示,脚本实现的作用就是统计store.size 的值。
以上这篇Python 脚本获取ES 存储容量的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
Python ES 存储容量