环境:linux,python3
作用:模拟Linux curl功能,采集URL信息
示例1:从hbase集群管理页面上采集信息
#!/usr/bin/env python # -*- coding:utf-8 -*- ‘‘‘ 从URL中采集所需信息,这边是用于采集hbase集群管理页面每秒请求数和region数量 ‘‘‘ import re import urllib.request pagehandler = urllib.request.urlopen("http://127.0.0.1:60010/master-status?filter=general#baseStats") content = pagehandler.read().decode() result=re.findall(‘.*Total(.*?)Used Heap.*‘,content,re.S) ####(.*?)表示除换行外的所有字符,非贪婪模式,re.S使 . 匹配包括换行在内的所有字符 msg = re.findall(r‘<td>(\d+)</td>‘,result[0]) ####取出数值,HBASE集群每秒请求数和region数量。注意,这边取出后为字符串 print(msg)
示例2:从Kafka管理界面上采集队列堵塞数据量信息
#!/usr/bin/env python # -*- coding:utf-8 -*- ‘‘‘ kafka管理页面上,lag列为消息堵塞数量,无法直接从URL返回的信息中采集该值,需要由logSize-offset计算得出 ‘‘‘ import json import urllib.request pagehandler = urllib.request.urlopen("http://127.0.0.1:8086/group/test_group") content = pagehandler.read().decode() m = json.loads(content) topic_dict = {} for i in m[‘offsets‘]: blocking_num = 0 #print(i[‘topic‘],i[‘offset‘],i[‘logSize‘]) blocking_num += (i[‘logSize‘] - i[‘offset‘]) ####计算队列堵塞量 if i[‘topic‘] in topic_dict: ####将结果按topic_name:blocking_num存放在字典里 topic_dict[i[‘topic‘]] += blocking_num else: topic_dict[i[‘topic‘]] = blocking_num #print(topic_dict) for key in topic_dict: if topic_dict[key] > 3000: print("topic:",key,",blocking msg num:",topic_dict[key])
时间: 2024-10-11 05:24:31