diff options
Diffstat (limited to 'www-apps/rpi-monitor/files')
-rw-r--r-- | www-apps/rpi-monitor/files/about.html-2.10.patch | 35 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/cpu.conf-2.10.patch | 82 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/daemon.conf-2.10.patch | 95 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/gentoo.conf-2.10.patch | 560 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/memory.conf-2.10.patch | 116 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/network.conf-2.10.patch | 58 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/rpimonitor.confd | 4 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/rpimonitor.initd | 2 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/rpimonitord-2.10.patch | 15 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/sdcard.conf-2.10.patch | 89 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/swap.conf-2.10.patch | 52 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/temperature.conf-2.10.patch | 33 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/uptime.conf-2.10.patch | 26 | ||||
-rw-r--r-- | www-apps/rpi-monitor/files/version.conf-2.10.patch | 78 |
14 files changed, 1242 insertions, 3 deletions
diff --git a/www-apps/rpi-monitor/files/about.html-2.10.patch b/www-apps/rpi-monitor/files/about.html-2.10.patch new file mode 100644 index 00000000..7dae584c --- /dev/null +++ b/www-apps/rpi-monitor/files/about.html-2.10.patch @@ -0,0 +1,35 @@ +--- rpimonitor/web/addons/about/about.html.dist 2015-03-14 19:20:02.249612000 +0000 ++++ rpimonitor/web/addons/about/about.html 2015-03-14 19:25:14.059612000 +0000 +@@ -10,23 +10,20 @@ + <h3 class="panel-title">About addons</h3> + </div> + <div class="panel-body"> +- <b>Addon</b> is design to let you add more functionnality to ++ <b>Addons</b> are designed to allow you to extend the functionnality of + <b>RPi-Monitor</b>.<br> + <br> +- The realease of <b>RPi-Monitor</b> provides the following addons:<br> ++ This release of <b>RPi-Monitor</b> includes the following addons:<br> + <ul> +- <li><b>about</b> - this addons</li> +- <li><b>custom</b> - custom addons using <code><iframe></code> to display external html page</li> +- <li><b>example</b> - expamle of addons showing how to develop and addons fully integrated to <b>RPi-Monitor</b></li> +- <li><b>shellinabox</b> - Allow ssh access to your computer through your browser</li> +- <li><b>top3</b> - Show the top 3 processes using cpu and rpimonitord cpu usage</li> ++ <li><b>about</b> - this addon</li> ++ <li><b>custom</b> - a template for custom addons allowing the use of <code><iframe></code>s to display external HTML content</li> ++ <li><b>example</b> - a sample addon demonstrating how to develop and fully integrate addons into <b>RPi-Monitor</b></li> ++ <li><b>shellinabox</b> - Allow ssh access to your Raspberry Pi through your browser</li> ++ <li><b>top3</b> - Show the three processes using the most CPU time and monitor rpimonitord CPU usage</li> + </ul> + <br> +- Addons are configured into <code>/etc/rpimonitor/data.conf</code>. You can customise +- <b>RPi-Monitor</b> configuration to add or remove addons.<br> +- <br> +- Refer to manage and/or comments in configuration file to see in detail how to use addons. ++ Addons are loaded and configured from <code>/etc/rpimonitor/data.conf</code>. ++ See the comments in this file for details of how to use Addons. + </div> + </body> + </html> +- diff --git a/www-apps/rpi-monitor/files/cpu.conf-2.10.patch b/www-apps/rpi-monitor/files/cpu.conf-2.10.patch new file mode 100644 index 00000000..d02cfb27 --- /dev/null +++ b/www-apps/rpi-monitor/files/cpu.conf-2.10.patch @@ -0,0 +1,82 @@ +--- rpimonitor/template/cpu.conf.dist 2015-03-14 15:01:33.369612000 +0000 ++++ rpimonitor/template/cpu.conf 2015-03-14 18:03:19.359612000 +0000 +@@ -7,42 +7,48 @@ + # - cpu load 1, 5, 15 - yes - yes + # - cpu scaling governor - yes - no + ######################################################################## +-dynamic.1.name=cpu_frequency +-dynamic.1.source=/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq ++ ++dynamic.1.name=scaling_governor ++dynamic.1.source=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + dynamic.1.regexp=(.*) +-dynamic.1.postprocess=$1/1000 ++dynamic.1.postprocess= + dynamic.1.rrd= + +-dynamic.2.name=cpu_voltage +-dynamic.2.source=vcgencmd measure_volts core +-dynamic.2.regexp=(\d+.\d+)V +-dynamic.2.postprocess= +-dynamic.2.rrd= +- +-dynamic.3.name=load1,load5,load15 +-dynamic.3.source=/proc/loadavg +-dynamic.3.regexp=^(\S+)\s(\S+)\s(\S+) ++dynamic.2.name=cpu_frequency ++dynamic.2.source=/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq ++dynamic.2.regexp=(.*) ++dynamic.2.postprocess=$1/1000 ++dynamic.2.rrd=GAUGE ++ ++dynamic.3.name=cpu_voltage ++dynamic.3.source=/opt/vc/bin/vcgencmd measure_volts core ++dynamic.3.regexp=(\d+.\d+)V + dynamic.3.postprocess= + dynamic.3.rrd=GAUGE + +-dynamic.4.name=scaling_governor +-dynamic.4.source=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor +-dynamic.4.regexp=(.*) ++dynamic.4.name=load1,load5,load15 ++dynamic.4.source=/proc/loadavg ++dynamic.4.regexp=^(\S+)\s(\S+)\s(\S+) + dynamic.4.postprocess= +-dynamic.4.rrd= ++dynamic.4.rrd=GAUGE ++ ++web.status.1.content.3.name=CPU ++web.status.1.content.3.icon=cpu.png ++#web.status.1.content.3.line.1="Loads: <b>" + data.load1 + "</b> [1 min] - <b>" + data.load5 + "</b> [5 min] - <b>" + data.load15 + "</b> [15 min]" ++web.status.1.content.3.line.1=JustGageBar("Load", "1 min", 0, data.load1, 3, 100, 80) + " " + JustGageBar("Load", "5 min", 0, data.load5, 3, 100, 80) + " " + JustGageBar("Load", "15 min", 0, data.load15, 3, 100, 80) ++web.status.1.content.3.line.2="CPU frequency: <b>" + data.cpu_frequency + "MHz</b> Voltage: <b>" + data.cpu_voltage + "V</b>" ++web.status.1.content.3.line.3="Scaling governor: <b>" + data.scaling_governor + "</b>" ++#web.status.1.content.3.line.4=InsertHTML("/addons/top3/top3.html") ++ ++web.statistics.1.content.1.name=CPU Speed ++web.statistics.1.content.1.graph.1=cpu_frequency ++web.statistics.1.content.1.ds_graph_options.cpu_frequency.label=Frequency (MHz) ++web.statistics.1.content.1.ds_graph_options.cpu_frequency.color="#FF7777" + +-web.status.1.content.1.name=CPU +-web.status.1.content.1.icon=cpu.png +-#web.status.1.content.1.line.1="Loads: <b>" + data.load1 + "</b> [1min] - <b>" + data.load5 + "</b> [5min] - <b>" + data.load15 + "</b> [15min]" +-web.status.1.content.1.line.1=JustGageBar("Load", "1min", 0, data.load1, 3, 100, 80)+" "+JustGageBar("Load", "5min", 0, data.load5, 3, 100, 80)+" "+JustGageBar("Load", "15min", 0, data.load15, 3, 100, 80) +-web.status.1.content.1.line.2="CPU frequency: <b>" + data.cpu_frequency + "MHz</b> Voltage: <b>" + data.cpu_voltage + "V</b>" +-web.status.1.content.1.line.3="Scaling governor: <b>" + data.scaling_governor + "</b>" +-#web.status.1.content.1.line.4=InsertHTML("/addons/top3/top3.html") +- +-web.statistics.1.content.1.name=CPU Loads +-web.statistics.1.content.1.graph.1=load1 +-web.statistics.1.content.1.graph.2=load5 +-web.statistics.1.content.1.graph.3=load15 +-web.statistics.1.content.1.ds_graph_options.load1.label=Load 1min +-web.statistics.1.content.1.ds_graph_options.load5.label=Load 5min +-web.statistics.1.content.1.ds_graph_options.load15.label=Load 15min ++web.statistics.1.content.2.name=CPU Loads ++web.statistics.1.content.2.graph.1=load1 ++web.statistics.1.content.2.graph.2=load5 ++web.statistics.1.content.2.graph.3=load15 ++web.statistics.1.content.2.ds_graph_options.load1.label=Load (1 min) ++web.statistics.1.content.2.ds_graph_options.load5.label=Load (5 min) ++web.statistics.1.content.2.ds_graph_options.load15.label=Load (15 min) diff --git a/www-apps/rpi-monitor/files/daemon.conf-2.10.patch b/www-apps/rpi-monitor/files/daemon.conf-2.10.patch new file mode 100644 index 00000000..28199316 --- /dev/null +++ b/www-apps/rpi-monitor/files/daemon.conf-2.10.patch @@ -0,0 +1,95 @@ +--- rpimonitor/daemon.conf.dist 2015-03-12 00:31:39.749612000 +0000 ++++ rpimonitor/daemon.conf 2015-03-12 00:41:11.909612000 +0000 +@@ -5,53 +5,50 @@ + # if embedded server should be started and its configuration. + # + ######################################################################## +-# +-# daemon.sharedmemkey=20130906 +-# Define the share memory key ++ ++# Shared memory key + #daemon.sharedmemkey=20130906 +-# +-# daemon.delay=10 +-# Define the delay between 2 kpi pooling (default:10) +-# Note: If you want to change the default delay, the rrd file will +-# have to be deleted rpimonitord will recreate them at next startup ++ ++# Delay in seconds between polling statistics ++# ++# Note: If you want to change the default delay, the rrd file will have ++# to be deleted rpimonitord will recreate them at next startup + #daemon.delay=10 +-# +-# daemon.timeout=10 +-# Define the maximul duration of KPI extraction (default:5) +-#daemon.timeout=10 +-# +-# daemon.noserver=1 +-# Define that rpimonitor shouldn't start web server (default:0) +-# Note: A symbolic link from /var/lib/rpimonitor/stat to +-# /usr/share/rpimonitor/stat may be required +-#daemon.noserver=1 +-# +-# daemon.addr=0.0.0.0 +-# Define the address used by the web server (default:0.0.0.0) ++ ++# Maximum duration of statistic extraction ++#daemon.timeout=5 ++ ++# Set to '1' to prevent rpimonitor from starting it's built-in ++# web-server ++# ++# Note: A symbolic link from /var/lib/rpimonitor/stat to ++# /usr/share/rpimonitor/stat may be required ++#daemon.noserver=0 ++ ++# Internal web-server bind address + #daemon.addr=0.0.0.0 +-# +-# daemon.port=8888 +-# Define port of the web server (default:8888) +-#daemon.port=8889 +-# +-# daemon.user=pi +-# Define user used to run the server process (default:pi) +-# Note: If user is not existing, process will run with uid=1000 ++ ++# Internal web-server listen port ++#daemon.port=8888 ++ ++# Run internal web-server as user ++# ++# Note: If specified user does not exist, the web-server will run ++# with uid=1000 + #daemon.user=pi +-# +-# daemon.group=pi +-# Define group used to run the server process (default:pi) +-# Note: If group is not existing, process will run with gid=1000 ++ ++# Run internal web-server as group ++# Note: If specified group does not exist, the web-server will run ++# with gid=1000 + #daemon.group=pi +-# +-# daemon.webroot=/usr/share/rpimonitor/web +-# Define the root directory of the web server (Default:/usr/share/rpimonitor/web) ++ ++# Web-server root directory + #daemon.webroot=/usr/share/rpimonitor/web +-# +-# daemon.datastore=/var/lib/rpimonitor +-# Define the data storage directory (Default:/var/lib/rpimonitor) ++ ++# Data storage directory + #daemon.datastore=/var/lib/rpimonitor +-# +-# daemon.shellinabox=https://0.0.0.0:4200/ +-# Define shellinabox address (Default: calculated automatically based on http request) ++ ++# shellinabox bind address ++# ++# Default: calculated automatically based on request + #daemon.shellinabox=https://127.0.0.1:4200/ diff --git a/www-apps/rpi-monitor/files/gentoo.conf-2.10.patch b/www-apps/rpi-monitor/files/gentoo.conf-2.10.patch new file mode 100644 index 00000000..335bf003 --- /dev/null +++ b/www-apps/rpi-monitor/files/gentoo.conf-2.10.patch @@ -0,0 +1,560 @@ +--- rpimonitor/template/gentoo.conf 2015-01-06 17:49:46.000000000 +0000 ++++ rpimonitor/template/gentoo.conf 2015-03-14 15:40:02.279612000 +0000 +@@ -1,267 +1,260 @@ + ######################################################################## + # +-# KPI extraction configuration ++# Data extraction configuration + # +-# This part of the configuration file is defining which data to +-# extract how to extract them and when. ++# This configuration file defines how and when data should be ++# extracted. + # +-# Specific 'include' keyword is available to add a file at the end of +-# the list of configuration files to be loaded. ++# The 'include' keyword can be used to append additional configuration ++# files to the list to be processed: + # + # include=<full path to configuration file> +-# <full path to configuration file> is the full path to the +-# configuration file to add at the end of the list of configuration +-# files to be loaded. +-# +-# Static KPI are extracted once at rpimonitord startup. Each statistic +-# is identified into the conf file by a line stating with the keyword +-# static and an identifier <static data id> + # +-# Each static KPI is defined by an id and with 4 parameters ++# Static items are extracted once on rpimonitord startup. Each ++# statistic is specified below by a line starting with the keyword ++# 'static' and followed by a numerical unique identifier. ++# ++# Each static item has four further parameters: + # + # static.<static data id>.name=<data name> +-# <data name> is a string representing the KPI or the list of KPI +-# separated by comma. Each name has to be unique. +-# Only alpha numerical charter and underscore are accepted. +-# +-# static.<static data id>.source=<data source> +-# <data source> is a file or an executable file within the path. +-# If the file exists, rpimonitord will read its content. If the file +-# is not existing, rpimonirotd will try to execute it and will parse +-# the output. ++# <data name> is the string represention the item (or comma-separated ++# items) being defined. Each name must be unique. ++# Only alpha-numeric charaters and underscores are valid in item ++# names. ++# ++# static.<static data id>.source=<data source>[,<data source,...] ++# <data source> may be a file or an executable from which content ++# can be read. If a full path is not provided, rpimonitord will ++# first attempt to read from a file with the specified name and, ++# failing this, will attempt to execute a binary of the same name ++# within any directory specified in the contents of the PATH ++# vaiable. + # Warning: specifying an executable by its absolute name will tell +-# rpimonitord to read the content of the executable.1.graph. ++# rpimonitord to read the content of <executable>.1.graph. + # +-# static.<static data id>.regexp=<data regexp> +-# <data regexp> is the regular expression extracting information from +-# data source. Regexp groups () has to be used to extract the data +-# In case of KPI list, each group will be affected to a KPI name. ++# static.<static data id>.regexp=<data regex> ++# <data regex> is an optional regular expression which may be ++# applied to extract information from the designated source value, ++# as above. Data matching a Perl-Compatible/Extended Regular ++# Expression group (e.g. matches within round-brackets) will be ++# selected to represent this <data source>. ++# Where a list of <data source>s is defined, each sequential group ++# match will be assigned to each <data source> in turn. + # + # static.<static data id>.postprocess=<data postprocess> +-# <data postprocess> is an expression defining the postprocessing to +-# be applied on result. KPI are idendified by $1. In case of list, +-# other KPI are identified by $2, $3 .graph.. +-# This parameter will be evaluate by the command eval of perl. +-# +-# Dynamic KPI are extracted periodically (defined by daemon.delay) +-# Each statistic is identified into the conf file by a line stating +-# with the keyword dynamic and an identifier <dynamic data id> +-# +-# Each dynamic KPI is defined by an id and with 5 parameters ++# <data postprocess> is an optional expression specifying any ++# postprocessing which should be applied to the raw <data source>, or ++# the <data regex> output if defined. ++# The first <data source> is referenced as '$1', with further <data ++# source>s in a list being referred to as '$2', '$3', etc. ++# The expression will be evaluated via the Perl 'eval' command. ++# ++# Dynamic items are periodically evaluated with an interval specified ++# by 'daemon.delay' in /etc/rpimonitord.conf. Each statistic is ++# defined by the 'dynamic' keyword followed by a <dynamic data id> ++# identifier and five further parameters: + # +-# dynamic.<dynamic data id>.name=<data name> ++# dynamic.<dynamic data id>.name=<data name>[,<data name>,...] + # dynamic.<dynamic data id>.source=<data source> +-# dynamic.<dynamic data id>.regexp=<data regexp> ++# dynamic.<dynamic data id>.regexp=<data regex> + # dynamic.<dynamic data id>.postprocess=<data postprocess> +-# <data name>, <data source>, <data regexp>, <data postprocess> +-# This 4 first parameters have the same signification as for static +-# parameters. +-# +-# dynamic.<dynamic data id>.rrd=<|GAUGE|COUNTER|DERIVE|ABSOLUTE|COMPUTE> +-# The 5th parameter is defining if the KPI has to be stored into a RRD +-# database and how <|GAUGE|COUNTER|DERIVE|ABSOLUTE|COMPUTE>. If the +-# parameter is defined as empty, no RRD database will be created. If +-# this parameter is defined, a RRD database will be created and data +-# will be stored at every extraction. +-# Ref http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html for RRD +-# parameter description. +-# dynamic.<dynamic data id>.min=<minimal value acceptable in RRD> +-# dynamic.<dynamic data id>.max=<miximal value acceptable in RRD> +-# If a value extracted by is less than minimal of greater than maximal +-# value, it will be stored int RRD database as unknown. +-# These limits are usefull to handle counter that fall down to 0 when +-# they reach their limit (Ex: network graphs) +-# +-# Note: Static values are accessible for the post processing using the +-# variable $this->{'static'}->{'static_data_name'} and can be used. +-# You can refer to swap data extraction to see an example. ++# <data name>, <data source>, <data regex>, and <data postprocess> ++# have the same meanings as when used with static items. ++# ++# dynamic.<dynamic data id>.rrd=<GAUGE|COUNTER|DERIVE|ABSOLUTE|COMPUTE> ++# The fifth parameter determines whether the item's data should be ++# stored in an Round-Robin Database, and how it should be ++# represented. A blank entry will prevent RRD creation. ++# See http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html for ++# details of the RRD different RRD options. ++# ++# NB: Values associated with named static items are available for use ++# during post-processing with the notation: ++# ++# $this->{'static'}->{'static_data_name'} ++# ++# See the dynamic item named 'swap_used' for a real-world example. + # + ######################################################################## + # +-# Web interface configuration ++# Web interface quick-links configuration + # +-# Friends are defining a displayed name and a link reachable from a +-# top left menu visible if at least one friends is configured. Each +-# friend is identified by its <id> and is described by the 2 following +-# parameters ++# 'friends' are links shown in the top-left menu, visible once at least ++# one friend is configured. Each friend is defined by a the keyword ++# 'web.friends' followed by a numerical unqiue identifier and each of ++# two additional parameters: + # + # web.friends.<id>.name=<display name> +-# web.friends.<id>.link=<link to RPi-Monitor> +-# +-# web.friends.<id>.name=<display name> +-# <display name> is the name printed into the drop down menu ++# web.friends.<id>.link=<URL> ++# ++# 'friends' are envisaged to provide an easy way to link multiple ++# rpimonitord instances across different hosts. + # +-# web.friends.<id>.link=<link to RPi-Monitor> +-# <link to RPi-Monitor> is the link to another RPi-Monitor running +-# into the friend machine. ++# Web interface configuration + # + # web.page.icon=<icon location relative to webroot> +-# <icon location relative to webroot> is the path and filename of +-# the icon to be displayed into RPi-Monitor title bar ++# <icon location relative to webroot> is the URI of the icon to be ++# displayed in the browser address bar. ++# ++# web.page.menutitle=<menu title js> ++# <menu title js> is javascript code used to populate the rpimonitord ++# title-bar. ++# Metrics in the 'data' object such as 'data.hostname' may be ++# referenced. ++# ++# web.page.pagetitle=<page title js> ++# <page title js> is javascript code used to populate the rpimonitord ++# website title, as shown by the browser window/tab. ++# Metrics in the 'data' object such as 'data.hostname' may be ++# referenced. + # +-# web.page.menutitle=<menu title> +-# <menu title> javascript code defining the text displayed into +-# RPi-Monotor title bar. This code can use status information with +-# the keyword 'data' including the 'data.hostname' available natively +-# +-# web.page.pagetitle=<page title> +-# <page title> javascript code defining the text displayed into +-# tab and window title bar. This code can use status information with +-# the keyword 'data' including the 'data.hostname' available natively +-# +-# The status page is fully configurable. +-# It is possible to define multiple pages. Each page is identified by +-# its <page id>. ++# Web interface status pages ++# ++# It is possible to define multiple status pages. Each page is ++# identified by its <page id>: + # + # web.status.<page id>.name=<page name> +-# <page name> name of the page displayed into the drop down menu in +-# case of multiple pages. ++# <page name> is the name of the page as displayed in the drop down ++# menu which is shown when multiple pages are defined. + # +-# Status page is split in strips displaying information. Each status +-# strip is identified by a unique <status id>. Each status strip is +-# defined by a name, an icon and a serie of lines described as follow: +-# +-# web.status.<page id>.visibility=<visibility formula> +-# +-# <visibility forlula> should be a valid javascript formula returning +-# 0: to hide the row +-# anything else but 0: show the row ++# Each status page is split into horizontal rows. Each status row is ++# identified by a unique <status id>, and is given a name, an icon and ++# a series of entries as follows: ++# ++# web.status.<page id>.visibility=<condition js> ++# <conditoin js> is a javascript statement which will cause the row ++# to be hidden if it evaluates to zero, or shown otherwise. + # + # web.status.<page id>.content.<status id>.name=<display name> ++# <display name> is the row title. ++# + # web.status.<page id>.content.<status id>.icon=<display icon> +-# web.status.<page id>.content.<status id>.line.<line number>=<parameter> ++# <display icon> is the icon for the row. ++# ++# web.status.<page id>.content.<status id>.line.<line>=<expression js> ++# <line> represents the numerical position of the line within the ++# row. This number must be unique for a given row. ++# <expression js> specifies the content of the line, and will be ++# rendered by a javascript 'eval()' call. ++# For ease of use, rpimonitord provides several functions which can ++# be used within the provided expression: ++# ++# Uptime( seconds ) ++# Output the time <seconds> in the following format: ++# XX year XX days XX hours XX minutes XX seconds ++# ++# Pad( value ) ++# Add a prefix '0' for any <value> less than 10; ++# ++# KMG( value, pre ) ++# Output <value> in units of "kilo", "mega", "giga", or "peta". ++# <pre> specifies the magnitude of the output required, and ++# should be 'k', 'M', 'G', or 'P'; ++# ++# Percent( value, total ) ++# Output the ratio of <value> to <total> as a percentage; ++# ++# ProgressBar( value, total, warning, danger ) ++# Draw a progressbar representing the ratio of <value> compared ++# to <total>: ++# ++# [=========------------] ++# ++# The default color of bar is blue, but will be rendered in ++# orange if the ratio of <value> to <total> is greater than ++# <warning> as a percentage, and red if above <danger>; ++# ++# JustGageBar( title, label, min, value, max, width, height, ++# levelColors, warning, critical ) ++# Draw a half-circular gauge: ++# <title> - Text to render above the gauge; ++# <label> - Text to render below the gauge; ++# <min> - Minimum gauge value; ++# <value> - Quantity to be shown; ++# <max> - Maximum gauge value; ++# <width>, <height> - Size of the gauge in pixels; ++# <levelColors> - An array of [normal, warning, danger] colour ++# values in hexadecimal notation, defaulting to ++# [green, orange, red]. Default colours are stored ++# in the 'precentColors' array. ++# <warning> - Gauge level as a percentage to render in the ++# second colour of <levelColors>; ++# <critical> - Gauge level as a percentage to render in the ++# third colour of <levelColors>; ++# ++# Plural( value ) ++# Output "s " if <value> is greater than one, or " " otherwise; + # +-# web.status.<page id>.content.<status id>.name=<display name> +-# <display name> Name displayed as title of the strip ++# Clock( data.localtime ) ++# Display a clock with incrementing seconds. Use only with ++# 'data.localtime' as an argument; ++# ++# Label( data, expression, text, level ) ++# Badge( data, expression, text, level ) ++# These functions will output a label or badge with a specified ++# background color if the provided expression evaluates to true: ++# <data> - Input to <expression>; ++# <expression> - Evaluated against <data> to determine whether ++# to display label or badge; ++# <text> - Text to output; ++# <level> - 'default' (grey), ++# 'primary' (blue label/grey badge), ++# 'success' (green), ++# 'info' (cyan), ++# 'warning' (orange) ++# 'danger' (red); ++# ++# InsertHTML( url ) ++# This function is used to insert raw HTML within a page. ++# (See the 'Top3' example showing the process with highest cpu ++# usage) ; + # +-# web.status.<page id>.content.<status id>.icon=<display icon> +-# <display icon> Icon of the strip ++# The 'data' object is also available and contains all dynamic and ++# static metrics explained above. ++# ++# Web interface statistics pages + # +-# web.status.<page id>.content.<status id>.line.<line number>=<parameter> +-# <line number> represent the position of the line within the strip. +-# This number has to be unique within the strip. +-# <parameter> is describing the content of the line. This parameter +-# will be evaluated by the javascript command with the function +-# eval() theirfore parameter should be valid javacript. +-# To have clean rendering, RPi-Monitor web interface provides some +-# functions that could be used inside the parameter. The object data +-# is also available and contains the result of dynamic and static +-# extracted as described in the KPI extraction section. +-# +-# Functions provided by RPi-Monitor are the following: +-# +-# Uptime(uptime in sec) +-# Print the uptime from seconds to the following format: +-# XX year XX days XX hours XX minutes XX seconds +-# +-# Pad(value) +-# Add a prefixed 0 for number smaller than 10 +-# +-# KMG(value, pre) +-# Print value in kilo, Mega, Giga, Peta. +-# pre can be 'k', 'M', 'G' or 'P' depending on the value. +-# +-# Percent(value,total) +-# Print percentage of value compared to total +-# +-# ProgressBar(value,total,warning, danger) +-# Draw a progressbar representing the value compared to total. +-# [=========------------] +-# The default color of pregressbar is blue. +-# If warning value is lower than critical, progressbar color will +-# be orange if percentage is higher than warning value and red +-# if the percentage is higher than danger value +-# If warning value is higher than critical, progressbar color will +-# be orange if percentage is lower than warning value and red +-# if the percentage is lower than danger value +-# +-# JustGageBar(title, label,min, value, max, width, height, levelColors, warning, critical) +-# Draw a half-circular gauge +-# title : Title of the gauge (located on to of the gauge) +-# label : Label of the gauge (located under the value) +-# min : min value of the gauge +-# value : value to be drawn +-# max : max value of the gauge +-# width, height : size of the gauge +-# levelColors : Array defining colors of each level [normal,warning,critical] +-# (in Hex format), default: green, orange and red. +-# Default colors are available into the array 'percentColors'. +-# warning : Warning level (in %) used to define color (default: 33) +-# critical : Critical level (in %) used to define color (default: 66) +-# +-# Plural (value) +-# Print 's ' if value > 1 or ' ' if not. +-# +-# Clock(data.localtime) +-# This function is a little bit particular and should be written +-# and should be written exactly as in the upper line. It will +-# display on screen the current time and will simulate the +-# seconds by incrementing them periodically. +-# +-# Label(data,formula, text, level) +-# Badge(data,formula, text, level) +-# This function will write a label/badge with a defined +-# background color if the formula return TRUE. +-# data : data to use with the formula +-# formula : formula evaluated in regards to data to determine +-# if label/badge has to be printed +-# text : text to be displayed +-# level : 'default' (grey), 'primary' (blue label/grey badge), +-# 'success' (green), 'info' (cyan), 'warning' (orange) +-# or 'danger' (red) +-# +-# InsertHTML(url) +-# This function is used to insert an HTML information inside +-# a page. (Ref Top3 example showing top most process cpu usage) +-# +-# The statistic page is fully configurable. +-# It is possible to define multiple pages. Each page is identified by +-# its <page id>. ++# It is possible to define multiple statistics pages. Each page is ++# identified by its <page id>: + # + # web.status.<page id>.name=<page name> +-# <page name> name of the page displayed into the drop down menu in +-# case of multiple pages. ++# <page name> is the name of the page as displayed in the drop down ++# menu which is shown when multiple pages are defined. + # +-# The statistic page displays statistics graphs. The graphs are +-# identified an unique <statistic id> and by the following parameters. ++# Statistics page display graphs which are identified by a unique ++# <statistic id> and accept the following parameters: + # +-# web.statistics.<page id>.content.<statistic id>.name=<statistic name> +-# <statistic name> is the name of the statistics displayed in the +-# top left drop down list. +-# +-# web.statistics.<page id>.content.<statistic id>.graph.<rrd id>=<data name> +-# <rrd id> is identifying the graph and is unique per <statistic id> +-# <data name> is the name of the dynamic and static extracted as +-# described in the KPI extraction section. +-# +-# web.statistics.<page id>.content.<statistic id>.ds_graph_options.<data name>.label=<label> +-# <data name> same as the previous <data name> +-# <label> Label to display in legends. It is possible to setup other parameters +-# of ds_graph_options. Refer to the following web page for details: +-# http://javascriptrrd.sourceforge.net/docs/javascriptrrd_v0.5.0/doc/lib/rrdFlot_js.html ++# web.statistics.<page id>.content.<statistic id>.name=<display name> ++# <display name> is text to show in the drop-down list of statistics. + # ++# web.statistics.<page id>.content.<statistic id>.graph.<rrd id>=<name> ++# <rrd id> is unique per <statistic id>, ++# <name> is the name of the extracted static or dynamic value to ++# further configure. ++# ++# web.statistics.<page id>.content.<statistic id>.ds_graph_options.<name>.label=<label> ++# <name> should match a <name> value from .graph.<rrd id>. ++# <label> is the display-name of the graph being configured. ++# + # web.statistics.<page id>.content.<statistic id>.graph_options.<parameter>=<value> +-# <parameter> and <value> can be find into the same web page as previous +-# parameter. This allow to customize the graph and axis. ++# It is possible to specify further parameters of ds_graph_options, ++# see the following link for details: ++# http://javascriptrrd.sourceforge.net/docs/javascriptrrd_v0.5.0/doc/lib/rrdFlot_js.html ++# ++# rpimonitord must be restarted when this file is updated. + # +-# Example file are available in the template directory (prefixed by 'example'). +-# To understand how a feature is behaving, you can include this example file +-# using the 'include' directive. +-# These include directive are already written (commented) into the default +-# configuration file: raspbian.conf +-# When configuration files change, it is required to restart rpimonitor. + ####################################################################### + +-#web.friends.1.name=Raspberry Pi +-#web.friends.1.link=http://192.168.0.123/ +-#web.friends.2.name=Shuttle ++#web.friends.1.name=First Raspberry Pi ++#web.friends.1.link=http://192.168.0.1/ ++#web.friends.2.name=Second Raspberry Pi + #web.friends.2.link=http://192.168.0.2/ +-#web.friends.3.name=Netbook +-#web.friends.3.link=http://192.168.0.38/ ++#web.friends.3.name=Third Raspberry Pi ++#web.friends.3.link=http://192.168.0.3/ + + web.page.icon='img/logo.png' +-web.page.menutitle='RPi-Monitor <sub>('+data.hostname+')</sub>' +-web.page.pagetitle='RPi-Monitor ('+data.hostname+')' ++web.page.menutitle='RPi-Monitor <sub>(' + data.hostname + ')</sub>' ++web.page.pagetitle='RPi-Monitor (' + data.hostname + ')' + + web.status.1.name=Raspberry Pi + #web.status.2.name=Home +@@ -270,44 +263,45 @@ + + web.addons.1.name=Addons + web.addons.1.addons=about +-#web.addons.1.name=Shellinabox +-#web.addons.1.addons=shellinabox + +-#web.addons.2.name=Addons example +-#web.addons.2.addons=example +-#web.addons.2.showTitle=0 ++#web.addons.2.name=Shell-in-a-box ++#web.addons.2.addons=shellinabox + +-#web.addons.3.name=Webcam - Hawkeye ++#web.addons.3.name=Addons Example ++#web.addons.3.addons=example + #web.addons.3.showTitle=0 +-#web.addons.3.addons=custom +-#web.addons.3.url=http://0:8000/ + +-#web.addons.4.name=Custom addons ++#web.addons.4.name=Hawkeye Webcam (https://github.com/ipartola/hawkeye) + #web.addons.4.addons=custom + #web.addons.4.showTitle=0 +-#web.addons.4.url=/addons/custom/custominfo.html +- +-#web.addons.5.name=Top3 +-#web.addons.5.addons=top3 +- +-#include=/etc/rpimonitor/template/example.justgage.conf +-#include=/etc/rpimonitor/template/example.badge_and_label.conf +-#include=/etc/rpimonitor/template/example.progressbar.conf +-#include=/etc/rpimonitor/template/example.visibility.conf +- +-include=/etc/rpimonitor/template/version.conf +-include=/etc/rpimonitor/template/uptime.conf +-include=/etc/rpimonitor/template/cpu.conf +-include=/etc/rpimonitor/template/temperature.conf +-include=/etc/rpimonitor/template/memory.conf +-include=/etc/rpimonitor/template/swap.conf +-include=/etc/rpimonitor/template/sdcard.conf +-include=/etc/rpimonitor/template/network.conf +- +-#include=/etc/rpimonitor/template/printer.conf +-#include=/etc/rpimonitor/template/storage.conf +-#include=/etc/rpimonitor/template/services.conf +-#include=/etc/rpimonitor/template/wlan.conf +-#include=/etc/rpimonitor/template/dht11.conf +- ++#web.addons.4.url=http://192.168.0.4:8000/ + ++#web.addons.5.name=Custom addons ++#web.addons.5.addons=custom ++#web.addons.5.showTitle=0 ++#web.addons.5.url=/addons/custom/custominfo.html ++ ++#web.addons.6.name=Top3 ++#web.addons.6.addons=top3 ++ ++# Usage examples: ++#include=/etc/rpimonitord.conf.d/example.justgage.conf ++#include=/etc/rpimonitord.conf.d/example.badge_and_label.conf ++#include=/etc/rpimonitord.conf.d/example.progressbar.conf ++#include=/etc/rpimonitord.conf.d/example.visibility.conf ++ ++include=/etc/rpimonitord.conf.d/version.conf ++include=/etc/rpimonitord.conf.d/uptime.conf ++include=/etc/rpimonitord.conf.d/cpu.conf ++include=/etc/rpimonitord.conf.d/temperature.conf ++include=/etc/rpimonitord.conf.d/memory.conf ++include=/etc/rpimonitord.conf.d/swap.conf ++include=/etc/rpimonitord.conf.d/sdcard.conf ++include=/etc/rpimonitord.conf.d/network.conf ++ ++# Further real-world examples: ++#include=/etc/rpimonitord.conf.d/printer.conf ++#include=/etc/rpimonitord.conf.d/storage.conf ++#include=/etc/rpimonitord.conf.d/services.conf ++#include=/etc/rpimonitord.conf.d/wlan.conf ++#include=/etc/rpimonitord.conf.d/dht11.conf diff --git a/www-apps/rpi-monitor/files/memory.conf-2.10.patch b/www-apps/rpi-monitor/files/memory.conf-2.10.patch new file mode 100644 index 00000000..e307aa41 --- /dev/null +++ b/www-apps/rpi-monitor/files/memory.conf-2.10.patch @@ -0,0 +1,116 @@ +--- rpimonitor/template/memory.conf.dist 2015-03-14 15:13:47.409612000 +0000 ++++ rpimonitor/template/memory.conf 2015-03-14 15:46:38.469612000 +0000 +@@ -6,34 +6,88 @@ + # - memory free - yes - yes + # - memory available - yes - yes + ######################################################################## +-static.5.name=memory_total +-static.5.source=/proc/meminfo +-static.5.regexp=MemTotal:\s+(\d+) +-static.5.postprocess=$1/1024 +- +-dynamic.9.name=memory_free +-dynamic.9.source=/proc/meminfo +-dynamic.9.regexp=MemFree:\s+(\d+) +-dynamic.9.postprocess=$1/1024 ++ ++#static.11.name=tmpfs_ram_total ++#static.11.source=df /mnt/ram ++#static.11.regexp=^[^\s]+\s+(\d+) ++#static.11.postprocess=$1/1024 ++ ++dynamic.9.name=memory_total ++dynamic.9.source=/opt/vc/bin/vcgencmd get_mem arm ++dynamic.9.regexp=^.*=(\d+)M$ ++dynamic.9.postprocess= + dynamic.9.rrd=GAUGE + +-dynamic.15.name=memory_available +-dynamic.15.source=/usr/bin/free -mk +-dynamic.15.regexp=^-\/\+ buffers\/cache:\s+\d+\s+(\d+) +-dynamic.15.postprocess=$1/1024 +-dynamic.15.rrd=GAUGE ++dynamic.10.name=memory_gpu ++dynamic.10.source=/opt/vc/bin/vcgencmd get_mem gpu ++dynamic.10.regexp=^.*=(\d+)M$ ++dynamic.10.postprocess= ++dynamic.10.rrd=GAUGE ++ ++dynamic.11.name=memory_free ++dynamic.11.source=/proc/meminfo ++dynamic.11.regexp=MemFree:\s+(\d+) ++dynamic.11.postprocess=$1/1024 ++dynamic.11.rrd=GAUGE ++ ++dynamic.12.name=memory_used ++dynamic.12.source=/proc/meminfo ++dynamic.12.regexp=MemFree:\s+(\d+) ++dynamic.12.postprocess=$this->{'dynamic'}->{'memory_total'} - ($1/1024) ++dynamic.12.rrd=GAUGE ++ ++dynamic.13.name=memory_available ++dynamic.13.source=/usr/bin/free -mk ++dynamic.13.regexp=^-\/\+ buffers\/cache:\s+\d+\s+(\d+) ++dynamic.13.postprocess=$1/1024 ++dynamic.13.rrd=GAUGE ++ ++#dynamic.20.name=tmpfs_ram_used ++#dynamic.20.source=df /mnt/ram ++#dynamic.20.regexp=^[^\s]+\s+\d+\s+(\d+) ++#dynamic.20.postprocess=$1/1024 ++#dynamic.20.rrd=GAUGE + + web.status.1.content.5.name=Memory + web.status.1.content.5.icon=memory.png +-web.status.1.content.5.line.1="Used: <b>" + KMG(data.memory_total-data.memory_available,'M') + "</b> (<b>" + Percent(data.memory_total-data.memory_available,data.memory_total,'M') + "</b>) Available: <b>" + KMG(data.memory_available,'M') + "</b> Total: <b>" + KMG(data.memory_total,'M') + "</b>" +-web.status.1.content.5.line.2=ProgressBar(data.memory_total-data.memory_available,data.memory_total) ++web.status.1.content.5.line.1="Used: <b>" + KMG(data.memory_used,'M') + "</b> (<b>" + Percent(data.memory_used,data.memory_total,'M') + "</b>) Free: <b>" + KMG(data.memory_free,'M') + "</b> Available: <b>" + KMG(data.memory_available,'M') + "</b> Total: <b>" + KMG(data.memory_total,'M') + "</b>" ++web.status.1.content.5.line.2="GPU: <b>" + KMG(data.memory_gpu,'M') + "</b>" ++web.status.1.content.5.line.3=ProgressBar(data.memory_used,data.memory_total) ++ ++#web.status.1.content.8.name=RAM fs ++#web.status.1.content.8.icon=memory.png ++#web.status.1.content.8.line.1="Used: <b>" + KMG(data.tmpfs_ram_used,'M') + "</b> (<b>" + Percent(data.tmpfs_ram_used,data.tmpfs_ram_total,'M') + "</b>) Free: <b>" + KMG(data.tmpfs_ram_total-data.tmpfs_ram_used,'M') + "</b> Total: <b>" + KMG(data.tmpfs_ram_total,'M') + "</b>" ++#web.status.1.content.8.line.2=ProgressBar(data.tmpfs_ram_used,data.tmpfs_ram_total) ++ ++#web.statistics.1.content.6.name=tmpfs - RAM ++#web.statistics.1.content.6.graph.1=tmpfs_ram_total ++#web.statistics.1.content.6.graph.2=tmpfs_ram_used ++#web.statistics.1.content.6.ds_graph_options.tmpfs_ram_total.label=Size of /mnt/ram (MB) ++#web.statistics.1.content.6.ds_graph_options.tmpfs_ram_total.color="#FF7777" ++#web.statistics.1.content.6.ds_graph_options.tmpfs_ram_used.label=Used on /mnt/ram (MB) ++#web.statistics.1.content.6.ds_graph_options.tmpfs_ram_used.lines={ fill: true } ++#web.statistics.1.content.6.ds_graph_options.tmpfs_ram_used.color="#7777FF" + +-web.statistics.1.content.6.name=Memory +-web.statistics.1.content.6.graph.1=memory_total +-web.statistics.1.content.6.graph.2=memory_free +-web.statistics.1.content.6.graph.3=memory_available +-web.statistics.1.content.6.ds_graph_options.memory_total.label=Total Memory(MB) +-web.statistics.1.content.6.ds_graph_options.memory_free.label=Free Memory (MB) +-web.statistics.1.content.6.ds_graph_options.memory_free.color="#7777FF" +-web.statistics.1.content.6.ds_graph_options.memory_available.label=Available Memory (MB) +-web.statistics.1.content.6.ds_graph_options.memory_available.color="#77FF77" ++web.statistics.1.content.7.name=Memory ++web.statistics.1.content.7.graph.1=memory_available ++web.statistics.1.content.7.graph.2=memory_free ++web.statistics.1.content.7.graph.3=memory_used ++web.statistics.1.content.7.graph.4=memory_total ++web.statistics.1.content.7.graph.5=memory_gpu ++#web.statistics.1.content.7.graph.6=tmpfs_ram_total ++#web.statistics.1.content.7.graph.7=tmpfs_ram_used ++web.statistics.1.content.7.ds_graph_options.memory_available.label=Available Memory (MB) ++web.statistics.1.content.7.ds_graph_options.memory_available.color="#FF7700" ++web.statistics.1.content.7.ds_graph_options.memory_free.label=Free Memory (MB) ++web.statistics.1.content.7.ds_graph_options.memory_free.color="#77FF77" ++web.statistics.1.content.7.ds_graph_options.memory_used.label=Used Memory (MB) ++web.statistics.1.content.7.ds_graph_options.memory_used.color="#FF7777" ++web.statistics.1.content.7.ds_graph_options.memory_total.label=Total Memory (MB) ++web.statistics.1.content.7.ds_graph_options.memory_total.color="#7777FF" ++web.statistics.1.content.7.ds_graph_options.memory_gpu.label=GPU Memory (MB) ++web.statistics.1.content.7.ds_graph_options.memory_gpu.lines={ fill: true } ++web.statistics.1.content.7.ds_graph_options.memory_gpu.color="#FFFF77" ++#web.statistics.1.content.7.ds_graph_options.tmpfs_ram_total.label=Size of /mnt/ram (MB) ++#web.statistics.1.content.7.ds_graph_options.tmpfs_ram_total.color="#77FFFF" ++#web.statistics.1.content.7.ds_graph_options.tmpfs_ram_used.label=Used on /mnt/ram (MB) ++#web.statistics.1.content.7.ds_graph_options.tmpfs_ram_used.color="#FF77FF" diff --git a/www-apps/rpi-monitor/files/network.conf-2.10.patch b/www-apps/rpi-monitor/files/network.conf-2.10.patch new file mode 100644 index 00000000..a5920d44 --- /dev/null +++ b/www-apps/rpi-monitor/files/network.conf-2.10.patch @@ -0,0 +1,58 @@ +--- rpimonitor/template/network.conf.dist 2015-03-14 15:31:42.639612000 +0000 ++++ rpimonitor/template/network.conf 2015-03-14 15:34:12.979612000 +0000 +@@ -5,31 +5,32 @@ + # - recieved - yes - yes + # - send - yes - yes + ######################################################################## +-dynamic.10.name=net_received +-dynamic.10.source=/sys/class/net/eth0/statistics/rx_bytes +-dynamic.10.regexp=(.*) +-dynamic.10.postprocess=$1*-1 +-dynamic.10.rrd=DERIVE +-dynamic.10.max=0 + +-dynamic.11.name=net_send +-dynamic.11.source=/sys/class/net/eth0/statistics/tx_bytes +-dynamic.11.regexp=(.*) +-dynamic.11.postprocess= +-dynamic.11.rrd=DERIVE +-dynamic.11.min=0 ++dynamic.14.name=net_received ++dynamic.14.source=/sys/class/net/eth0/statistics/rx_bytes ++dynamic.14.regexp=(.*) ++dynamic.14.postprocess=$1*-1 ++dynamic.14.rrd=DERIVE ++dynamic.14.max=0 ++ ++dynamic.15.name=net_send ++dynamic.15.source=/sys/class/net/eth0/statistics/tx_bytes ++dynamic.15.regexp=(.*) ++dynamic.15.postprocess= ++dynamic.15.rrd=DERIVE ++dynamic.15.min=0 + + web.status.1.content.8.name=Network + web.status.1.content.8.icon=network.png +-web.status.1.content.8.line.1="Ethernet Sent: <b>"+KMG(data.net_send)+"<i class='icon-arrow-up'></i></b> Received: <b>"+KMG(Math.abs(data.net_received)) + "<i class='icon-arrow-down'></i></b>" ++web.status.1.content.8.line.1="Ethernet Sent: <b>" + KMG(data.net_send) + "<i class='icon-arrow-up'></i></b> Received: <b>" + KMG(Math.abs(data.net_received)) + "<i class='icon-arrow-down'></i></b>" + +-web.statistics.1.content.2.name=Network +-web.statistics.1.content.2.graph.1=net_send +-web.statistics.1.content.2.graph.2=net_received +-web.statistics.1.content.2.graph_options.yaxis={ tickFormatter: function (v) { if (Math.abs(v) > 1048576) return (Math.round(v*10/1024/1024)/10) + " MiB/s" ; if (Math.abs(v) > 1024) return (Math.round(v*10/1024)/10) + " KiB/s" ; else return v + " B/s" }, } +-web.statistics.1.content.2.ds_graph_options.net_send.label=Upload bandwidth (bytes) +-web.statistics.1.content.2.ds_graph_options.net_send.lines={ fill: true } +-web.statistics.1.content.2.ds_graph_options.net_send.color="#FF7777" +-web.statistics.1.content.2.ds_graph_options.net_received.label=Download bandwidth (bytes) +-web.statistics.1.content.2.ds_graph_options.net_received.lines={ fill: true } +-web.statistics.1.content.2.ds_graph_options.net_received.color="#77FF77" ++web.statistics.1.content.3.name=Network ++web.statistics.1.content.3.graph.1=net_send ++web.statistics.1.content.3.graph.2=net_received ++web.statistics.1.content.3.graph_options.yaxis={ tickFormatter: function (v) { if (Math.abs(v) > 1048576) return (Math.round(v*10/1024/1024)/10) + " MiB/s" ; if (Math.abs(v) > 1024) return (Math.round(v*10/1024)/10) + " KiB/s" ; else return v + " B/s" }, } ++web.statistics.1.content.3.ds_graph_options.net_send.label=Upload bandwidth (bytes) ++web.statistics.1.content.3.ds_graph_options.net_send.lines={ fill: true } ++web.statistics.1.content.3.ds_graph_options.net_send.color="#FF7777" ++web.statistics.1.content.3.ds_graph_options.net_received.label=Download bandwidth (bytes) ++web.statistics.1.content.3.ds_graph_options.net_received.lines={ fill: true } ++web.statistics.1.content.3.ds_graph_options.net_received.color="#77FF77" diff --git a/www-apps/rpi-monitor/files/rpimonitor.confd b/www-apps/rpi-monitor/files/rpimonitor.confd index c3865420..58294fc8 100644 --- a/www-apps/rpi-monitor/files/rpimonitor.confd +++ b/www-apps/rpi-monitor/files/rpimonitor.confd @@ -1,2 +1,2 @@ -# Define configuration file to use -#CONFFILE="-c /etc/rpimonitord.conf -c /etc/rpimonitord.conf.d/default.conf" +# Define configuration files to use +CONFFILES="-c /etc/rpimonitord.conf -c /etc/rpimonitord.conf.d/data.conf" diff --git a/www-apps/rpi-monitor/files/rpimonitor.initd b/www-apps/rpi-monitor/files/rpimonitor.initd index 4a67db71..2006848a 100644 --- a/www-apps/rpi-monitor/files/rpimonitor.initd +++ b/www-apps/rpi-monitor/files/rpimonitor.initd @@ -6,7 +6,7 @@ PERL="$( type -pf perl )" NAME=rpimonitord PIDFILE=/var/run/$NAME.pid DAEMON=/usr/sbin/$NAME -DAEMON_ARGS="-b ${PIDFILE}" +DAEMON_ARGS="-b ${PIDFILE} ${CONFFILES:+${CONFFILES}}" depend() { need net diff --git a/www-apps/rpi-monitor/files/rpimonitord-2.10.patch b/www-apps/rpi-monitor/files/rpimonitord-2.10.patch new file mode 100644 index 00000000..486fdde8 --- /dev/null +++ b/www-apps/rpi-monitor/files/rpimonitord-2.10.patch @@ -0,0 +1,15 @@ +--- rpimonitor/rpimonitord.dist 2015-03-14 19:01:48.049612000 +0000 ++++ rpimonitor/rpimonitord 2015-03-14 19:04:23.919612000 +0000 +@@ -61,8 +61,10 @@ + $_ = abs_path($0); + my ($path,$file) = /(.*)\/([^\/]*)$/; + +- push(@{$this->{'daemon'}->{'confFiles'}},"/etc/rpimonitor/data.conf"); +- push(@{$this->{'daemon'}->{'confFiles'}},"/etc/rpimonitor/daemon.conf"); ++ if( scalar( @{$this->{'daemon'}->{'confFiles'}} < 2 )) { ++ push(@{$this->{'daemon'}->{'confFiles'}},"/etc/rpimonitor/data.conf") if -r "/etc/rpimonitor/data.conf"; ++ push(@{$this->{'daemon'}->{'confFiles'}},"/etc/rpimonitor/daemon.conf") if -r "/etc/rpimonitor/daemon.conf"; ++ } + + foreach ( @{$this->{'daemon'}->{'confFiles'}} ) { + #print "$_\n"; diff --git a/www-apps/rpi-monitor/files/sdcard.conf-2.10.patch b/www-apps/rpi-monitor/files/sdcard.conf-2.10.patch new file mode 100644 index 00000000..528b967d --- /dev/null +++ b/www-apps/rpi-monitor/files/sdcard.conf-2.10.patch @@ -0,0 +1,89 @@ +--- rpimonitor/template/sdcard.conf.dist 2015-03-14 15:25:17.659612000 +0000 ++++ rpimonitor/template/sdcard.conf 2015-03-14 15:47:41.519612000 +0000 +@@ -7,49 +7,50 @@ + # - boot total - yes - yes + # - boot used - yes - yes + ######################################################################## +-static.7.name=sdcard_root_total +-static.7.source=df / +-static.7.regexp=\S+\s+(\d+).*\/$ +-static.7.postprocess=$1/1024 +- +-static.8.name=sdcard_boot_total +-static.8.source=df /boot +-static.8.regexp=\S+\s+(\d+).*\/boot$ ++ ++static.8.name=sdcard_root_total ++static.8.source=df / ++static.8.regexp=^\S+\s+(\d+).*\/$ + static.8.postprocess=$1/1024 + +-dynamic.6.name=sdcard_root_used +-dynamic.6.source=df / +-dynamic.6.regexp=\S+\s+\d+\s+(\d+).*\/$ ++static.9.name=sdcard_boot_total ++static.9.source=df /boot ++static.9.regexp=^\S+\s+(\d+).*\/boot$ ++static.9.postprocess=$1/1024 ++ ++dynamic.5.name=sdcard_root_used ++dynamic.5.source=df / ++dynamic.5.regexp=^\S+\s+\d+\s+(\d+).*\/$ ++dynamic.5.postprocess=$1/1024 ++dynamic.5.rrd=GAUGE ++ ++dynamic.6.name=sdcard_boot_used ++dynamic.6.source=df /boot ++dynamic.6.regexp=^\S+\s+\d+\s+(\d+).*\/boot$ + dynamic.6.postprocess=$1/1024 + dynamic.6.rrd=GAUGE + +-dynamic.7.name=sdcard_boot_used +-dynamic.7.source=df /boot +-dynamic.7.regexp=\S+\s+\d+\s+(\d+).*\/boot$ +-dynamic.7.postprocess=$1/1024 +-dynamic.7.rrd=GAUGE +- + web.status.1.content.7.name=SD card + web.status.1.content.7.icon=sd.png +-web.status.1.content.7.line.1="<b>/boot</b> Used: <b>"+KMG(data.sdcard_boot_used,'M')+"</b> (<b>"+Percent(data.sdcard_boot_used,data.sdcard_boot_total,'M')+"</b>) Free: <b>"+KMG(data.sdcard_boot_total-data.sdcard_boot_used,'M')+ "</b> Total: <b>"+ KMG(data.sdcard_boot_total,'M') +"</b>" ++web.status.1.content.7.line.1="<b>/boot</b> Used: <b>" + KMG(data.sdcard_boot_used,'M') + "</b> (<b>" + Percent(data.sdcard_boot_used,data.sdcard_boot_total,'M') + "</b>) Free: <b>" + KMG(data.sdcard_boot_total-data.sdcard_boot_used,'M') + "</b> Total: <b>" + KMG(data.sdcard_boot_total,'M') + "</b>" + web.status.1.content.7.line.2=ProgressBar(data.sdcard_boot_used,data.sdcard_boot_total,60,80) +-web.status.1.content.7.line.3="<b>/</b> Used: <b>"+KMG(data.sdcard_root_used,'M') + "</b> (<b>" + Percent(data.sdcard_root_used,data.sdcard_root_total,'M')+"</b>) Free: <b>"+KMG(data.sdcard_root_total-data.sdcard_root_used,'M')+ "</b> Total: <b>"+ KMG(data.sdcard_root_total,'M') + "</b>" ++web.status.1.content.7.line.3="<b>/</b> Used: <b>" + KMG(data.sdcard_root_used,'M') + "</b> (<b>" + Percent(data.sdcard_root_used,data.sdcard_root_total,'M') + "</b>) Free: <b>" + KMG(data.sdcard_root_total-data.sdcard_root_used,'M') + "</b> Total: <b>" + KMG(data.sdcard_root_total,'M') + "</b>" + web.status.1.content.7.line.4=ProgressBar(data.sdcard_root_used,data.sdcard_root_total,60,80) + +-web.statistics.1.content.3.name=Disks - boot +-web.statistics.1.content.3.graph.1=sdcard_boot_total +-web.statistics.1.content.3.graph.2=sdcard_boot_used +-web.statistics.1.content.3.ds_graph_options.sdcard_boot_total.label=Size of /boot (MB) +-web.statistics.1.content.3.ds_graph_options.sdcard_boot_total.color="#FF7777" +-web.statistics.1.content.3.ds_graph_options.sdcard_boot_used.label=Used on /boot (MB) +-web.statistics.1.content.3.ds_graph_options.sdcard_boot_used.lines={ fill: true } +-web.statistics.1.content.3.ds_graph_options.sdcard_boot_used.color="#7777FF" +- +-web.statistics.1.content.4.name=Disks - root +-web.statistics.1.content.4.graph.1=sdcard_root_total +-web.statistics.1.content.4.graph.2=sdcard_root_used +-web.statistics.1.content.4.ds_graph_options.sdcard_root_total.label=Size of / (MB) +-web.statistics.1.content.4.ds_graph_options.sdcard_root_total.color="#FF7777" +-web.statistics.1.content.4.ds_graph_options.sdcard_root_used.label=Used on / (MB) +-web.statistics.1.content.4.ds_graph_options.sdcard_root_used.lines={ fill: true } +-web.statistics.1.content.4.ds_graph_options.sdcard_root_used.color="#7777FF" ++web.statistics.1.content.4.name=Disks - boot ++web.statistics.1.content.4.graph.1=sdcard_boot_total ++web.statistics.1.content.4.graph.2=sdcard_boot_used ++web.statistics.1.content.4.ds_graph_options.sdcard_boot_total.label=Size of /boot (MB) ++web.statistics.1.content.4.ds_graph_options.sdcard_boot_total.color="#FF7777" ++web.statistics.1.content.4.ds_graph_options.sdcard_boot_used.label=Used on /boot (MB) ++web.statistics.1.content.4.ds_graph_options.sdcard_boot_used.lines={ fill: true } ++web.statistics.1.content.4.ds_graph_options.sdcard_boot_used.color="#7777FF" ++ ++web.statistics.1.content.5.name=Disks - root ++web.statistics.1.content.5.graph.1=sdcard_root_total ++web.statistics.1.content.5.graph.2=sdcard_root_used ++web.statistics.1.content.5.ds_graph_options.sdcard_root_total.label=Size of / (MB) ++web.statistics.1.content.5.ds_graph_options.sdcard_root_total.color="#FF7777" ++web.statistics.1.content.5.ds_graph_options.sdcard_root_used.label=Used on / (MB) ++web.statistics.1.content.5.ds_graph_options.sdcard_root_used.lines={ fill: true } ++web.statistics.1.content.5.ds_graph_options.sdcard_root_used.color="#7777FF" diff --git a/www-apps/rpi-monitor/files/swap.conf-2.10.patch b/www-apps/rpi-monitor/files/swap.conf-2.10.patch new file mode 100644 index 00000000..bb3d0d93 --- /dev/null +++ b/www-apps/rpi-monitor/files/swap.conf-2.10.patch @@ -0,0 +1,52 @@ +--- rpimonitor/template/swap.conf.dist 2015-03-14 15:22:33.139612000 +0000 ++++ rpimonitor/template/swap.conf 2015-03-14 15:25:01.529612000 +0000 +@@ -5,27 +5,35 @@ + # - swap total - yes - yes + # - swap used - yes - yes + ######################################################################## +-static.6.name=swap_total +-static.6.source=/proc/meminfo +-static.6.regexp=SwapTotal:\s+(\d+) +-static.6.postprocess=$1/1024 ++ ++dynamic.7.name=swap_total ++dynamic.7.source=/proc/meminfo ++dynamic.7.regexp=SwapTotal:\s+(\d+) ++dynamic.7.postprocess=$1/1024 ++dynamic.7.rrd=GAUGE + + dynamic.8.name=swap_used + dynamic.8.source=/proc/meminfo + dynamic.8.regexp=SwapFree:\s+(\d+) +-dynamic.8.postprocess=$this->{'static'}->{'swap_total'} - ($1/1024) ++dynamic.8.postprocess=$this->{'dynamic'}->{'swap_total'} - ($1/1024) + dynamic.8.rrd=GAUGE + ++dynamic.18.name=swappiness ++dynamic.18.source=/proc/sys/vm/swappiness ++dynamic.18.regexp=(.*) ++dynamic.18.postprocess= ++dynamic.18.rrd= ++ + web.status.1.content.6.name=Swap + web.status.1.content.6.icon=swap.png +-web.status.1.content.6.line.1="Used: <b>"+KMG(data.swap_used,'M')+"</b> (<b>"+Percent(data.swap_used,data.swap_total,'M')+"</b>) Free: <b>"+KMG(data.swap_total-data.swap_used,'M')+ "</b> Total: <b>"+ KMG(data.swap_total,'M') + "</b>" ++web.status.1.content.6.line.1="Used: <b>" + KMG(data.swap_used,'M') + "</b> (<b>" + Percent(data.swap_used,data.swap_total,'M') + "</b>) Free: <b>" + KMG(data.swap_total-data.swap_used,'M') + "</b> Total: <b>" + KMG(data.swap_total,'M') + "</b> Swappiness: <b>" + data.swappiness + "</b>" + web.status.1.content.6.line.2=ProgressBar(data.swap_used,data.swap_total) + +-web.statistics.1.content.5.name=Swap +-web.statistics.1.content.5.graph.1=swap_total +-web.statistics.1.content.5.graph.2=swap_used +-web.statistics.1.content.5.ds_graph_options.swap_total.label=Swap size (MB) +-web.statistics.1.content.5.ds_graph_options.swap_total.color="#FF7777" +-web.statistics.1.content.5.ds_graph_options.swap_used.label=Swap used (MB) +-web.statistics.1.content.5.ds_graph_options.swap_used.lines={ fill: true } +-web.statistics.1.content.5.ds_graph_options.swap_used.color="#7777FF" ++web.statistics.1.content.6.name=Swap ++web.statistics.1.content.6.graph.1=swap_total ++web.statistics.1.content.6.graph.2=swap_used ++web.statistics.1.content.6.ds_graph_options.swap_total.label=Swap size (MB) ++web.statistics.1.content.6.ds_graph_options.swap_total.color="#FF7777" ++web.statistics.1.content.6.ds_graph_options.swap_used.label=Swap used (MB) ++web.statistics.1.content.6.ds_graph_options.swap_used.lines={ fill: true } ++web.statistics.1.content.6.ds_graph_options.swap_used.color="#7777FF" diff --git a/www-apps/rpi-monitor/files/temperature.conf-2.10.patch b/www-apps/rpi-monitor/files/temperature.conf-2.10.patch new file mode 100644 index 00000000..14442a70 --- /dev/null +++ b/www-apps/rpi-monitor/files/temperature.conf-2.10.patch @@ -0,0 +1,33 @@ +--- rpimonitor/template/temperature.conf.dist 2015-03-14 15:10:31.249612000 +0000 ++++ rpimonitor/template/temperature.conf 2015-03-14 15:13:36.239612000 +0000 +@@ -4,18 +4,19 @@ + # Information Status Statistics + # - cpu temperature - yes - yes + ######################################################################## +-dynamic.12.name=soc_temp +-dynamic.12.source=/sys/devices/virtual/thermal/thermal_zone0/temp +-dynamic.12.regexp=(.*) +-dynamic.12.postprocess=$1/1000 +-dynamic.12.rrd=GAUGE ++ ++dynamic.16.name=soc_temp ++dynamic.16.source=/sys/devices/virtual/thermal/thermal_zone0/temp ++dynamic.16.regexp=(.*) ++dynamic.16.postprocess=($1/10)/100 ++dynamic.16.rrd=GAUGE + + web.status.1.content.4.name=Temperature + web.status.1.content.4.icon=cpu_temp.png +-#web.status.1.content.4.line.1="CPU Temperature: <b>"+data.soc_temp+"°C</b>" +-#web.status.1.content.4.line.1=JustGageBar("CPU Temperature", data.soc_temp+"°C", 40, data.soc_temp, 80, 100, 80) +-web.status.1.content.4.line.1=JustGageBar("Temperature", "°C", 40, data.soc_temp, 80, 100, 80) ++#web.status.1.content.4.line.1="CPU Temperature: <b>" + data.soc_temp + "°C</b>" ++web.status.1.content.4.line.1=JustGageBar("CPU Temperature", data.soc_temp + "°C", 20, data.soc_temp, 80, 100, 80) ++#web.status.1.content.4.line.1=JustGageBar("Temperature", "°C", 20, data.soc_temp, 80, 100, 80) + +-web.statistics.1.content.8.name=Temperature +-web.statistics.1.content.8.graph.1=soc_temp +-web.statistics.1.content.8.ds_graph_options.soc_temp.label=Core temperature (°C) ++web.statistics.1.content.9.name=Temperature ++web.statistics.1.content.9.graph.1=soc_temp ++web.statistics.1.content.9.ds_graph_options.soc_temp.label=Core temperature (°C) diff --git a/www-apps/rpi-monitor/files/uptime.conf-2.10.patch b/www-apps/rpi-monitor/files/uptime.conf-2.10.patch new file mode 100644 index 00000000..f197eb69 --- /dev/null +++ b/www-apps/rpi-monitor/files/uptime.conf-2.10.patch @@ -0,0 +1,26 @@ +--- rpimonitor/template/uptime.conf.dist 2015-03-14 14:54:39.439612000 +0000 ++++ rpimonitor/template/uptime.conf 2015-03-14 15:03:41.339612000 +0000 +@@ -4,6 +4,7 @@ + # Information Status Statistics + # - uptime - yes - yes + ######################################################################## ++# + dynamic.1.name=uptime + dynamic.1.source=/proc/uptime + dynamic.1.regexp=(^\S+) +@@ -12,10 +13,10 @@ + + web.status.1.content.2.name=Uptime + web.status.1.content.2.icon=uptime.png +-web.status.1.content.2.line.1='Raspberry Pi time: <b>' + Clock( data.localtime) + "</b>" ++web.status.1.content.2.line.1='Raspberry Pi time: <b>' + Clock(data.localtime) + "</b>" + web.status.1.content.2.line.2="Uptime: " + Uptime(data.uptime) + +-web.statistics.1.content.7.name=Uptime +-web.statistics.1.content.7.graph.1=uptime +-web.statistics.1.content.7.graph_options.yaxis={ min:0, tickFormatter: function (v) { if (v > 86400) return (Math.round(v*10/60/60/24)/10) + " d" ; if (v > 3600) return (Math.round(v*10/60/60)/10) + " h" ; else return v + " s" }, } +-web.statistics.1.content.7.ds_graph_options.uptime.label=Uptime (s/h/d) ++web.statistics.1.content.8.name=Uptime ++web.statistics.1.content.8.graph.1=uptime ++web.statistics.1.content.8.graph_options.yaxis={ min:0, tickFormatter: function (v) { if (v > 86400) return (Math.round(v*10/60/60/24)/10) + " days" ; if (v > 3600) return (Math.round(v*10/60/60)/10) + " hours" ; else return v + " seconds" }, } ++web.statistics.1.content.8.ds_graph_options.uptime.label=Uptime diff --git a/www-apps/rpi-monitor/files/version.conf-2.10.patch b/www-apps/rpi-monitor/files/version.conf-2.10.patch new file mode 100644 index 00000000..a8e423f8 --- /dev/null +++ b/www-apps/rpi-monitor/files/version.conf-2.10.patch @@ -0,0 +1,78 @@ +--- rpimonitor/template/version.conf.dist 2015-03-14 14:52:23.219612000 +0000 ++++ rpimonitor/template/version.conf 2015-03-14 15:48:29.459612000 +0000 +@@ -9,6 +9,7 @@ + # - num of pkg upgradable - yes - no + # - list of pkg upgradable - yes - no + ######################################################################## ++ + static.1.name=distribution + static.1.source=/etc/os-release + static.1.regexp=PRETTY_NAME.\"(.*)\" +@@ -20,8 +21,10 @@ + static.2.postprocess= + + static.3.name=firmware +-static.3.source=/proc/version +-static.3.regexp=(#\d+) ++#static.3.source=/proc/version ++#static.3.regexp=(#\d+) ++static.3.source=/usr/bin/strings /boot/start_cd.elf ++static.3.regexp=^VC_BUILD_ID_VERSION:\s+(\S+) + static.3.postprocess= + + static.4.name=processor +@@ -29,22 +32,39 @@ + static.4.regexp=(?:Processor|model name)\s+: (.*) + static.4.postprocess= + +-dynamic.1.name=upgrade +-dynamic.1.source=/var/lib/rpimonitor/updatestatus.txt +-dynamic.1.regexp=(\d+ upgradable\(s\)|.* .*) +-dynamic.1.postprocess= +-dynamic.1.rrd= +- +-dynamic.2.name=packages +-dynamic.2.source=/var/lib/rpimonitor/updatestatus.txt +-dynamic.2.regexp=^\s+(.*)\s+\d+ upgradable +-dynamic.2.postprocess= +-dynamic.2.rrd= ++static.5.name=hardware ++static.5.source=/proc/cpuinfo ++static.5.regexp=Hardware\s+: (.*) ++static.5.postprocess= ++ ++static.6.name=revision ++static.6.source=/proc/cpuinfo ++static.6.regexp=Revision\s+: 0*(.*) ++static.6.postprocess= ++ ++static.7.name=serial ++static.7.source=/proc/cpuinfo ++static.7.regexp=Serial\s+: (.*) ++static.7.postprocess= ++ ++#dynamic.1.name=upgrade ++#dynamic.1.source=/var/lib/rpimonitor/updatestatus.txt ++#dynamic.1.regexp=(\d+ upgradable\(s\)|.* .*) ++#dynamic.1.postprocess= ++#dynamic.1.rrd= ++ ++#dynamic.2.name=packages ++#dynamic.2.source=/var/lib/rpimonitor/updatestatus.txt ++#dynamic.2.regexp=^\s+(.*)\s+\d+ upgradable ++#dynamic.2.postprocess= ++#dynamic.2.rrd= + + web.status.1.content.1.name=Version + web.status.1.content.1.icon=version.png + web.status.1.content.1.line.1='Processor: <b>' + data.processor + '</b>' +-web.status.1.content.1.line.2='Distribution: <b>'+ data.distribution + '</b>' +-web.status.1.content.1.line.3='Kernel version: <b>' + data.kernel_version + '</b>' +-web.status.1.content.1.line.4='Firmware: <b>' + data.firmware + '</b>' +-web.status.1.content.1.line.5='Package(s): <b>' + data.upgrade + '</b>' + ShowInfo('packages','Package(s) upgradable(s)',data.packages) ++web.status.1.content.1.line.2='Hardware: <b>' + data.hardware + '</b> revision <b>' + data.revision + '</b>' ++web.status.1.content.1.line.3='Serial number: <b>' + data.serial + '</b>' ++web.status.1.content.1.line.4='Distribution: <b>' + data.distribution + '</b>' ++web.status.1.content.1.line.5='Kernel version: <b>' + data.kernel_version + '</b>' ++web.status.1.content.1.line.6='Firmware: <b>' + data.firmware + '</b>' ++#web.status.1.content.1.line.7='Package(s): <b>' + data.upgrade + '</b>' + ShowInfo('packages','Package(s) upgradable(s)',data.packages) |