Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services/console/interface/memphis/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'services/console/interface/memphis/plugins')
-rw-r--r--services/console/interface/memphis/plugins/Makefile.am4
-rw-r--r--services/console/interface/memphis/plugins/clean_size/Makefile.am6
-rw-r--r--services/console/interface/memphis/plugins/clean_size/README2
-rw-r--r--services/console/interface/memphis/plugins/clean_size/__init__.py16
-rw-r--r--services/console/interface/memphis/plugins/clean_size/info.py15
-rw-r--r--services/console/interface/memphis/plugins/cpu/Makefile.am6
-rw-r--r--services/console/interface/memphis/plugins/cpu/README2
-rw-r--r--services/console/interface/memphis/plugins/cpu/__init__.py23
-rw-r--r--services/console/interface/memphis/plugins/cpu/info.py48
-rw-r--r--services/console/interface/memphis/plugins/dirty_size/Makefile.am6
-rw-r--r--services/console/interface/memphis/plugins/dirty_size/README2
-rw-r--r--services/console/interface/memphis/plugins/dirty_size/__init__.py17
-rw-r--r--services/console/interface/memphis/plugins/dirty_size/info.py20
-rw-r--r--services/console/interface/memphis/plugins/memphis_init/Makefile.am6
-rw-r--r--services/console/interface/memphis/plugins/memphis_init/README2
-rw-r--r--services/console/interface/memphis/plugins/memphis_init/__init__.py15
-rw-r--r--services/console/interface/memphis/plugins/memphis_init/info.py13
17 files changed, 203 insertions, 0 deletions
diff --git a/services/console/interface/memphis/plugins/Makefile.am b/services/console/interface/memphis/plugins/Makefile.am
new file mode 100644
index 0000000..2c6b1dd
--- /dev/null
+++ b/services/console/interface/memphis/plugins/Makefile.am
@@ -0,0 +1,4 @@
+SUBDIRS = clean_size cpu dirty_size memphis_init
+
+sugardir = $(pkgdatadir)/shell/console/interface/memphis/plugins
+sugar_PYTHON =
diff --git a/services/console/interface/memphis/plugins/clean_size/Makefile.am b/services/console/interface/memphis/plugins/clean_size/Makefile.am
new file mode 100644
index 0000000..33565f5
--- /dev/null
+++ b/services/console/interface/memphis/plugins/clean_size/Makefile.am
@@ -0,0 +1,6 @@
+
+sugardir = $(pkgdatadir)/shell/console/interface/memphis/plugins/clean_size
+sugar_PYTHON = \
+ README \
+ __init__.py \
+ info.py
diff --git a/services/console/interface/memphis/plugins/clean_size/README b/services/console/interface/memphis/plugins/clean_size/README
new file mode 100644
index 0000000..3dd3ae3
--- /dev/null
+++ b/services/console/interface/memphis/plugins/clean_size/README
@@ -0,0 +1,2 @@
+This plugin give support to get the clean size memory usage
+by process using the /proc/PID/maps file.
diff --git a/services/console/interface/memphis/plugins/clean_size/__init__.py b/services/console/interface/memphis/plugins/clean_size/__init__.py
new file mode 100644
index 0000000..75ce1d1
--- /dev/null
+++ b/services/console/interface/memphis/plugins/clean_size/__init__.py
@@ -0,0 +1,16 @@
+
+import info
+
+INTERNALS = {
+ # Basic information
+ 'PLGNAME': "Clean Size",
+ 'TABNAME': None,
+ 'AUTHOR': "Eduardo Silva",
+ 'DESC': "Print the approx real memory usage",
+
+ # Plugin API
+ 'Plg': None, # Plugin object
+
+ 'top_data': [int], # Top data types needed by memphis core plugin
+ 'top_cols': ["Approx Real Usage (kb)"]
+ }
diff --git a/services/console/interface/memphis/plugins/clean_size/info.py b/services/console/interface/memphis/plugins/clean_size/info.py
new file mode 100644
index 0000000..25ed044
--- /dev/null
+++ b/services/console/interface/memphis/plugins/clean_size/info.py
@@ -0,0 +1,15 @@
+###########################################################
+# Main function:
+# -----------------
+# self: self plugin object
+# mself: memphis object / principal class
+# pinfo: row with information about current tracing process
+############################################################
+
+def plg_on_top_data_refresh(self, pinfo):
+
+ # Get clean size
+ maps = self.INTERNALS['Plg'].proc_get_maps(pinfo['pid'])
+
+ size = (maps.clean_size/1024)
+ return [size]
diff --git a/services/console/interface/memphis/plugins/cpu/Makefile.am b/services/console/interface/memphis/plugins/cpu/Makefile.am
new file mode 100644
index 0000000..58e9eab
--- /dev/null
+++ b/services/console/interface/memphis/plugins/cpu/Makefile.am
@@ -0,0 +1,6 @@
+
+sugardir = $(pkgdatadir)/shell/console/interface/memphis/plugins/cpu
+sugar_PYTHON = \
+ README \
+ __init__.py \
+ info.py
diff --git a/services/console/interface/memphis/plugins/cpu/README b/services/console/interface/memphis/plugins/cpu/README
new file mode 100644
index 0000000..9c7d6f3
--- /dev/null
+++ b/services/console/interface/memphis/plugins/cpu/README
@@ -0,0 +1,2 @@
+This plugin give support to draw the Virtual Memory Size
+usage by the current tracing process.
diff --git a/services/console/interface/memphis/plugins/cpu/__init__.py b/services/console/interface/memphis/plugins/cpu/__init__.py
new file mode 100644
index 0000000..e22a413
--- /dev/null
+++ b/services/console/interface/memphis/plugins/cpu/__init__.py
@@ -0,0 +1,23 @@
+import os
+import info
+
+INTERNALS = {
+ 'PLGNAME': "cpu",
+ 'TABNAME': None,
+ 'AUTHOR': "Eduardo Silva",
+ 'DESC': "Print CPU usage",
+
+ # Plugin API
+ 'Plg': None, # Plugin object
+ 'current_plg': None, # Current plugin object
+ 'current_page': None, # Current page number
+
+ # Top process view requirements
+ 'top_data': [int], # Top data types needed by memphis core plugin
+ 'top_cols': ["%CPU "] # Column names
+ }
+
+# Get CPU frequency
+cpu_hz = os.sysconf(2)
+
+pids_ujiffies = {}
diff --git a/services/console/interface/memphis/plugins/cpu/info.py b/services/console/interface/memphis/plugins/cpu/info.py
new file mode 100644
index 0000000..9cb1ad4
--- /dev/null
+++ b/services/console/interface/memphis/plugins/cpu/info.py
@@ -0,0 +1,48 @@
+###########################################################
+# Main function:
+# -----------------
+# self: self plugin object
+# mself: memphis object / principal class
+# pinfo: row with information about current tracing process
+############################################################
+
+def plg_on_top_data_refresh(self, pinfo):
+ PI = self.INTERNALS['Plg'].proc
+
+ pid = pinfo['pid']
+
+ # Get JIFFIES CPU usage
+ used_jiffies = pinfo['utime'] + pinfo['stime']
+ last_ujiffies = get_pid_ujiffies(self, pid)
+
+ cpu_usage = PI.get_CPU_usage(self.cpu_hz, used_jiffies, pinfo['start_time'])
+
+ # Get PERCENT CPU usage
+ if last_ujiffies == 0.0:
+ pcpu = 0.0
+ set_pid_ujiffies(self, pid, cpu_usage['used_jiffies'])
+ data = [int(pcpu)]
+ return data
+
+ used_jiffies = cpu_usage['used_jiffies'] - last_ujiffies
+
+ # Available jiffies are
+ avail_jiffies = (500/1000.0)*self.cpu_hz # 500 = 0.5 second
+ pcpu = ((used_jiffies*100)/avail_jiffies)
+
+ set_pid_ujiffies(self, pid, cpu_usage['used_jiffies'])
+
+ data = [int(pcpu)]
+ return data
+
+def get_pid_ujiffies(self, pid):
+
+ if pid in self.pids_ujiffies:
+ return self.pids_ujiffies[pid]
+ else:
+ set_pid_ujiffies(self, pid, 0)
+ return self.pids_ujiffies[pid]
+
+def set_pid_ujiffies(self, pid, ujiffies):
+ self.pids_ujiffies[pid] = ujiffies
+
diff --git a/services/console/interface/memphis/plugins/dirty_size/Makefile.am b/services/console/interface/memphis/plugins/dirty_size/Makefile.am
new file mode 100644
index 0000000..47c5298
--- /dev/null
+++ b/services/console/interface/memphis/plugins/dirty_size/Makefile.am
@@ -0,0 +1,6 @@
+
+sugardir = $(pkgdatadir)/shell/console/interface/memphis/plugins/dirty_size
+sugar_PYTHON = \
+ README \
+ __init__.py \
+ info.py
diff --git a/services/console/interface/memphis/plugins/dirty_size/README b/services/console/interface/memphis/plugins/dirty_size/README
new file mode 100644
index 0000000..ee4d1a5
--- /dev/null
+++ b/services/console/interface/memphis/plugins/dirty_size/README
@@ -0,0 +1,2 @@
+This plugin give support to get the public and shared dirty memory usage
+by process using the /proc/PID/smaps file.
diff --git a/services/console/interface/memphis/plugins/dirty_size/__init__.py b/services/console/interface/memphis/plugins/dirty_size/__init__.py
new file mode 100644
index 0000000..f8e9e0a
--- /dev/null
+++ b/services/console/interface/memphis/plugins/dirty_size/__init__.py
@@ -0,0 +1,17 @@
+
+import info
+
+
+INTERNALS = {
+ # Basic information
+ 'PLGNAME': "Dirty Size",
+ 'TABNAME': None, # No tabbed plugin
+ 'AUTHOR': "Eduardo Silva",
+ 'DESC': "Get dirty size memory usage",
+
+ # Plugin API
+ 'Plg': None, # Plugin object
+
+ 'top_data': [int], # Top data types needed by memphis core plugin
+ 'top_cols': ["PDRSS (kb)"]
+ }
diff --git a/services/console/interface/memphis/plugins/dirty_size/info.py b/services/console/interface/memphis/plugins/dirty_size/info.py
new file mode 100644
index 0000000..54a2e7e
--- /dev/null
+++ b/services/console/interface/memphis/plugins/dirty_size/info.py
@@ -0,0 +1,20 @@
+###########################################################
+# Main function:
+# -----------------
+# self: self plugin object
+# mself: memphis object / principal class
+# pinfo: row with information about current tracing process
+############################################################
+
+
+def plg_on_top_data_refresh(self, ppinfo):
+
+ dirty_sizes = get_dirty(self, ppinfo['pid'])
+
+ # memhis need an array
+ return [dirty_sizes['private']]
+
+def get_dirty(pself, pid):
+ ProcAnalysis = pself.INTERNALS['Plg'].proc_analysis(pid)
+
+ return ProcAnalysis.DirtyRSS()
diff --git a/services/console/interface/memphis/plugins/memphis_init/Makefile.am b/services/console/interface/memphis/plugins/memphis_init/Makefile.am
new file mode 100644
index 0000000..53b398a
--- /dev/null
+++ b/services/console/interface/memphis/plugins/memphis_init/Makefile.am
@@ -0,0 +1,6 @@
+
+sugardir = $(pkgdatadir)/shell/console/interface/memphis/plugins/memphis_init
+sugar_PYTHON = \
+ README \
+ __init__.py \
+ info.py
diff --git a/services/console/interface/memphis/plugins/memphis_init/README b/services/console/interface/memphis/plugins/memphis_init/README
new file mode 100644
index 0000000..9c7d6f3
--- /dev/null
+++ b/services/console/interface/memphis/plugins/memphis_init/README
@@ -0,0 +1,2 @@
+This plugin give support to draw the Virtual Memory Size
+usage by the current tracing process.
diff --git a/services/console/interface/memphis/plugins/memphis_init/__init__.py b/services/console/interface/memphis/plugins/memphis_init/__init__.py
new file mode 100644
index 0000000..f5ada7e
--- /dev/null
+++ b/services/console/interface/memphis/plugins/memphis_init/__init__.py
@@ -0,0 +1,15 @@
+import info
+
+INTERNALS = {
+ 'PLGNAME': "memphis",
+ 'TABNAME': None,
+ 'AUTHOR': "Eduardo Silva",
+ 'DESC': "Print basic process information",
+
+ # Plugin API
+ 'Plg': None, # Plugin object
+
+ # Top process view requirements
+ 'top_data': [int, str, str], # Top data types needed by memphis core plugin
+ 'top_cols': ["PID", "Process Name", "Status"] # Column names
+ }
diff --git a/services/console/interface/memphis/plugins/memphis_init/info.py b/services/console/interface/memphis/plugins/memphis_init/info.py
new file mode 100644
index 0000000..6e524c7
--- /dev/null
+++ b/services/console/interface/memphis/plugins/memphis_init/info.py
@@ -0,0 +1,13 @@
+###########################################################
+# Main function:
+# -----------------
+# self: self plugin object
+# mself: memphis object / principal class
+# pinfo: row with information about current tracing process
+############################################################
+
+def plg_on_top_data_refresh(self, ppinfo):
+
+ data = [ppinfo['pid'], ppinfo['name'], ppinfo['state_name']]
+
+ return data