def metricCollector():
data = {}
data['plugin_version'] = PLUGIN_VERSION
data['heartbeat_required'] = HEARTBEAT
data['units'] = METRICS_UNITS
URL = 'http://%s:%s/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost' % (ACTIVEMQ_HOST, ACTIVEMQ_PORT)
try:
if ACTIVEMQ_USERNAME and ACTIVEMQ_PASSWORD:
password_mgr = connector.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(REALM, URL, ACTIVEMQ_USERNAME, ACTIVEMQ_PASSWORD)
auth_handler = connector.HTTPBasicAuthHandler(password_mgr)
opener = connector.build_opener(auth_handler)
connector.install_opener(opener)
response = connector.urlopen(URL, timeout=10)
byte_responseData = response.read()
str_responseData = byte_responseData.decode('UTF-8')
json_data = json.loads(str_responseData)
total_message_count = json_data['value']['TotalMessageCount']
total_connections_count = json_data['value']['TotalConnectionsCount']
total_consumer_count = json_data['value']['TotalConsumerCount']
total_producer_count = json_data['value']['TotalProducerCount']
data['total_message_count'] = total_message_count
data['total_connections_count'] = total_connections_count
data['total_consumer_count'] = total_consumer_count
data['total_producer_count'] = total_producer_count
except Exception as e:
data['status'] = 0
data['msg'] = str(e)
return data
评论列表
文章目录