psutil不能获取计算板网卡流量.
This commit is contained in:
72
py_tools/tsg_monit_interface.py
Normal file
72
py_tools/tsg_monit_interface.py
Normal file
@@ -0,0 +1,72 @@
|
||||
# coding: utf-8
|
||||
|
||||
import sys
|
||||
import psutil
|
||||
import time
|
||||
import json
|
||||
import telegraf
|
||||
from get_traffic_by_psutil import *
|
||||
from get_traffic_by_marsio import *
|
||||
from common_telegraf import *
|
||||
from common_logger import *
|
||||
from common_args import *
|
||||
from common_logger import *
|
||||
from common_get_tags import *
|
||||
|
||||
INTERFACE_JSON_PATH = '/opt/tsg/etc/tsg_chassis_interface.json'
|
||||
|
||||
|
||||
def get_local_node():
|
||||
try:
|
||||
with open(INTERFACE_JSON_PATH) as json_fp:
|
||||
json_dict = json.load(json_fp)
|
||||
return json_dict['local_chassis_node']
|
||||
except IOError:
|
||||
return ""
|
||||
|
||||
|
||||
def get_interface_list():
|
||||
try:
|
||||
with open(INTERFACE_JSON_PATH) as json_fp:
|
||||
json_dict = json.load(json_fp)
|
||||
interface_list = json_dict['interface_list']
|
||||
#print(interface_list)
|
||||
for dev in interface_list:
|
||||
if 'marsio' == dev['dev_type']:
|
||||
logger.debug("get traffic stat by %s for: %s" %(dev['dev_type'], dev['dev_name']))
|
||||
# call function in get_traffic_by_marsio.py
|
||||
send_metrics_by_marsio(logger, telegraf_client, dev['dev_name'], dev['flow_type'], node_name)
|
||||
elif 'pcap' == dev['dev_type']:
|
||||
logger.debug("get traffic stat by %s for: %s, please wait for 1s..." %(dev['dev_type'], dev['dev_name']))
|
||||
# call function in get_traffic_by_psutil.py
|
||||
send_metrics_by_psutil(logger, telegraf_client, dev['dev_name'], dev['flow_type'], node_name)
|
||||
else:
|
||||
logger.critical("not support driver type %s for: %s" %(dev['dev_type'], dev['dev_name']))
|
||||
sys.exit(1)
|
||||
except IOError:
|
||||
logger.critical("can't open file %s!" %(INTERFACE_JSON_PATH))
|
||||
sys.exit(1)
|
||||
return ""
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
global node_name
|
||||
global telegraf_client
|
||||
global logger
|
||||
|
||||
comm_arg_parser = setup_common_args()
|
||||
arg_options = comm_arg_parser.parse_args()
|
||||
|
||||
logger = logger_init(arg_options.log_level)
|
||||
|
||||
telegraf_server_ip = arg_options.telegraf_ip
|
||||
telegraf_server_port = int(arg_options.telegraf_port)
|
||||
|
||||
telegraf_tags = tsg_get_tags()
|
||||
if len(telegraf_tags) <= 0:
|
||||
logger.info("not found telegraf tags.")
|
||||
|
||||
telegraf_client = telegraf_init(telegraf_server_ip, telegraf_server_port, telegraf_tags)
|
||||
node_name = get_local_node()
|
||||
|
||||
get_interface_list()
|
||||
Reference in New Issue
Block a user