-
Notifications
You must be signed in to change notification settings - Fork 0
/
mem_update.py
executable file
·23 lines (21 loc) · 987 Bytes
/
mem_update.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/python
import rrdtool
import time,psutil
from jmx4py.jolokia.client import *
class MemUpdate:
def update(self,host,port,rrdPath):
proxy = JmxClient((host,port))
resp = proxy.read("java.lang:type=MemoryPool,name=PS Eden Space",["Usage"])
eden_space = resp.value.get("Usage")["used"]
resp = proxy.read("java.lang:type=MemoryPool,name=PS Survivor Space",["Usage"])
survivor_sapce = resp.value.get("Usage")["used"]
resp = proxy.read("java.lang:type=MemoryPool,name=PS Old Gen",["Usage"])
old_gen = resp.value.get("Usage")["used"]
resp = proxy.read("java.lang:type=MemoryPool,name=Code Cache",["Usage"])
code_cache = resp.value.get("Usage")["used"]
resp = proxy.read("java.lang:type=MemoryPool,name=PS Perm Gen",["Usage"])
perm_gen = resp.value.get("Usage")["used"]
now = int(time.time())
update=rrdtool.updatev(rrdPath,'%s:%s:%s:%s:%s:%s' %
(str(now),str(eden_space),str(survivor_sapce),str(old_gen),str(code_cache),str(perm_gen)))
print update