Skip to content

Instantly share code, notes, and snippets.

@ejlevin1
Created November 13, 2020 02:19
Show Gist options
  • Save ejlevin1/0f0bec3dd7a41d60c0af8fa59d49fffc to your computer and use it in GitHub Desktop.
Save ejlevin1/0f0bec3dd7a41d60c0af8fa59d49fffc to your computer and use it in GitHub Desktop.
#!/usr/bin/python3
import os, sys, getopt
import syslog
def log(s):
print(s)
syslog.syslog(s)
def main(argv):
directory = os.popen('pwd').read().split("\n")[0]
try:
opts, args = getopt.getopt(argv,"hd:",["dir="])
except getopt.GetoptError:
print('stats.py -d <outputdir -- /home/user >')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print('stats.py -d <outputdir -- /home/user >')
sys.exit()
elif opt in ("-d", "--dir"):
directory = arg
log('Gathering ip address information')
interface = 'eth0'
ipv4 = os.popen('ip addr show ' + interface).read().split("inet ")[1].split("/")[0]
ipv6 = os.popen('ip addr show ' + interface).read().split("inet6 ")[1].split("/")[0]
log('Found ' + interface + '.ipv4 ' + ipv4)
log('Found ' + interface + '.ipv6 ' + ipv6)
log('Writing info to: ' + directory + "/network_interfaces_info.prom")
f = open(directory + "/network_interfaces_info.prom", "w")
f.write("# HELP network_interfaces_info Network Info\n")
f.write("# TYPE network_interfaces_info gauge\n")
f.write('network_interfaces_info{address_v4="' + ipv4 + '",address_v6="' + ipv6 + '",instance="",interface="' + interface + '",job="network_info"} 1\n')
f.close()
if __name__ == "__main__":
main(sys.argv[1:])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment