47 lines
981 B
Python
Executable File
47 lines
981 B
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# author: ulric.qin@gmail.com
|
|
|
|
import time
|
|
import commands
|
|
import json
|
|
import sys
|
|
import os
|
|
|
|
items = []
|
|
|
|
|
|
def collect_myself_status():
|
|
item = {}
|
|
item["metric"] = "plugin.myself.status"
|
|
item["value"] = 1
|
|
item["tags"] = ""
|
|
items.append(item)
|
|
|
|
|
|
def main():
|
|
code, endpoint = commands.getstatusoutput(
|
|
"timeout 1 /usr/sbin/ifconfig `/usr/sbin/route|grep '^default'|awk '{print $NF}'`|grep inet|awk '{print $2}'|head -n 1")
|
|
if code != 0:
|
|
sys.stderr.write('cannot get local ip')
|
|
return
|
|
|
|
timestamp = int("%d" % time.time())
|
|
plugin_name = os.path.basename(sys.argv[0])
|
|
step = int(plugin_name.split("_", 1)[0])
|
|
|
|
collect_myself_status()
|
|
|
|
for item in items:
|
|
item["endpoint"] = endpoint
|
|
item["timestamp"] = timestamp
|
|
item["step"] = step
|
|
|
|
print json.dumps(items)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.stdout.flush()
|
|
main()
|
|
sys.stdout.flush()
|