-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnginx-stats
40 lines (32 loc) · 947 Bytes
/
nginx-stats
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python3
import urllib3
import re
urllib3.disable_warnings()
http = urllib3.PoolManager(cert_reqs='CERT_NONE')
data = http.request('GET', url='http://127.0.0.1/nginx_status', preload_content=False).read()
params = {}
for line in data.decode().split("\n"):
smallstat = re.match(r"\s?Reading:\s(.*)\sWriting:\s(.*)\sWaiting:\s(.*)$", line)
#print("smallstat = ", smallstat)
req = re.match(r"\s+(\d+)\s+(\d+)\s+(\d+)", line)
if smallstat:
params["Reading"] = smallstat.group(1)
params["Writing"] = smallstat.group(2)
params["Waiting"] = smallstat.group(3)
elif req:
params["Requests"] = req.group(3)
else:
pass
dataorder = [
"Active",
"Reading",
"Writing",
"Waiting",
"Requests"
]
for param in dataorder:
if param == "Active":
Active = int(params["Reading"]) + int(params["Writing"]) + int(params["Waiting"])
print(Active)
else:
print(params[param])