hbase + falcon监控目录大小

为了更好的学习hbase的磁盘占用情况,写了个hbase脚本

#!/usr/bin/env python
#coding: utf8
import os
import sys
import re
import commands
import time
import json
import urllib2

a = commands.getoutput("hadoop dfs -du /hbase")
print a

a2 = a.replace('\n',' ').split(" ")

while '' in a2: a2.remove('')

for x in range(0,len(a2)): 
    if a2[x] == "/hbase/WALs": 
        value1 = a2[x-2]

for x in range(0,len(a2)): 
    if a2[x] == "/hbase/archive": 
        value2 = a2[x-2]

for x in range(0,len(a2)): 
    if a2[x] == "/hbase/data": 
        value3 = a2[x-2]

for x in range(0,len(a2)): 
    if a2[x] == "/hbase/oldWALs": 
        value4 = a2[x-2]


print value1
print value2
print value3
print value4

# 准备上报数据
p = []
# 定义时间戳
timestamp = int(time.time())

def predata(endpoint,metric,key,value,timestamp,step,vtype):
    tags = ''
    i = {
        'Metric' :'%s.%s'%(metric,key),
        'Endpoint': endpoint,
        'Timestamp': timestamp,
        'Step': step,
        'value': value,
        'CounterType': vtype,
        'TAGS': tags
        }
    return i

p.append(predata("userdefine","hbase","size.wals",value1,timestamp,60,"GAUGE"))
p.append(predata("userdefine","hbase","size.archive",value2,timestamp,60,"GAUGE"))
p.append(predata("userdefine","hbase","size.data",value3,timestamp,60,"GAUGE"))
p.append(predata("userdefine","hbase","size.oldwals",value4,timestamp,60,"GAUGE"))

print json.dumps(p, sort_keys=True,indent = 4)

#sys.exit(0)

# 上报
method = "POST"
handler = urllib2.HTTPHandler()
opener = urllib2.build_opener(handler)
url = "http://127.0.0.1:1988/v1/push"
request = urllib2.Request(url, data=json.dumps(p))
request.add_header('Content-Type','application/json')
request.get_method = lambda: method
try:
    connection = opener.open(request)
except urllib2.HTTPError,e:
    connection = e

if connection.code == 200:
    print connection.read()
else:
    print '{"err":1,"msg":"%s"}' % connection

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值