Commit graph

87 commits

Author SHA1 Message Date
Jo-Philipp Wich
556e14c743 luci-app-statistics: convert plugin definitions to JSON
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-02-06 12:54:07 +01:00
Florian Eckert
b50974a20c luci-app-statistics: update misleading load view
Fixes: #3301

During my tests and developing with the collectd and so
luci-app-statistics I noticed that the values displayed in the Y-axis
are misleading, because probably the individual values are added
together in each case. So the view is not corrected.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-11-14 12:35:02 +01:00
Jo-Philipp Wich
52a68a43b8 luci-app-statistics: iwinfo: fix interface list preselection
Fixes: #3306
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-11-14 11:15:22 +01:00
Hannu Nyman
95ea1e67fe luci-app-statistics: fix memory plugin config
Fix d064cbcf9 by actually enabling ValuesAbsolute in the
config file and also prevent removing that option by LuCI.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2019-10-05 18:59:08 +03:00
Jo-Philipp Wich
dfe41b3b88 luci-app-statistics: show decimal in iptables values
Fixes: #3109
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-09-24 08:10:16 +02:00
Florian Eckert
b80ccb990b luci-app-statistics: add ping stddev definition
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-09-13 14:14:45 +02:00
Florian Eckert
cb252b2c03 luci-app-statistics: cleanup ping definitions
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-09-13 14:14:35 +02:00
Florian Eckert
00fc5548ff luci-app-statistics: update license header in memory definition
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-09-13 12:59:14 +02:00
Florian Eckert
d064cbcf98 luci-app-statistics: add new memory plugin option
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-09-13 12:59:04 +02:00
Florian Eckert
2be8aefe7f luci-app-statistics: add new cpu plugin options
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-09-13 12:58:57 +02:00
Hannu Nyman
24c0e7ca4c luci-app-statistics: cpufreq: tweak graphs
* Frequency usage percentage stats are by kHz instead of Hz.
  Correct the labels. (Linux natively uses kHz for CPU frequency stats,
  but collectd scales the current frequency stats item to Hz.)

* Show frequency usage percentage graph before the transition counts,
  as it is more descriptive.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2019-08-14 19:00:09 +03:00
Yousong Zhou
9def6faa4e luci-app-statistics: scale up ping_droprate to range 0-100
In original collectd, values of this metric are in range 0-1.  OpenWrt
previously have a custom patch scaling them up to range 0-100.  That
patch has been removed to align with possibly other deployments.

Ref: https://github.com/openwrt/packages/pull/9677
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2019-08-10 09:53:14 +08:00
Hannu Nyman
05cad423ce luci-app-statistics: cpufreq: enhance additional data
* Use the new data series sorting and coloring options to
  display the frequencies in order and with matching coloring in
  different cores.

* Fix the y-axis text and legend in the frequency usage graph

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2019-08-01 01:06:25 +03:00
Hannu Nyman
4ca5727785 luci-app-statistics: add options for graph series sorting and color
Add two data series-level options "negweight" and "posweight" that
will use the numerical value of the data instance name
as the sorting factor. This enables e.g. sorting by CPU frequency
in the cpufreq module.

Add new graph-level option "ordercolor" to use colorsfrom a
pre-defined color table for the data series. This enables keeping
similar colors for similar data series in different plugin instances.
E.g. CPU frequencies in several cores that are handled and displayed
separately.
 (note: the table has 8 items and if there are more series, it uses
  the same colors again. The table can be easily extended/modified)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2019-08-01 01:04:40 +03:00
Hannu Nyman
e6f30bb7f3 luci-app-statistics: cpufreq: changes in data structure
Collectd 5.9.0 changed the data structure of the cpufreq plugin:
CPU cores are now handled as separate plugin instances.

There are also new data items per core:
 * time spent at each frequency
 * amount of frequency transitions

Enable these new data items, but initially hide them behind
a new config option "ExtraItems" (default: disabled), as
the amount of graphs in multi-core systems could be rather large.

Note that the frequencies are not (yet) sorted, so the
information value of the time-spent graph is semi-random.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2019-07-30 20:47:02 +03:00
Matthias Berndt
c1380ab367 make luci-app-statistics more extensible 2019-07-05 02:03:13 +02:00
Loïc Yhuel
af5771426b luci-app-statistics: add address family configuration for ping
It allows to force ipv4 or ipv6 when the DNS returns both addresses, but
only one works (for example if there is no ipv6 connectivity).

Signed-off-by: Loïc Yhuel <loic.yhuel@gmail.com>
2019-06-21 02:03:12 +02:00
Fabian Schmid-Michels
50bb1185da luci-app-statistics: change nut voltage graph combines view.
This change splits the graph into two graphs like in apcups and makes it so
possible to see variations in AC Input/Output voltages. Battery charge and
load are indepentent variables. This change also overlays them and display
them as simply two lines. Battery temperature is also displayed as a line now,
as an area under a temperature line makes no sense. Also removed some empty
lines.

Closes: #2417

Signed-off-by: Fabian Schmid-Michels <mail@wohnheimnetz-bielefeld.de>
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-05-14 09:13:05 +02:00
Jo-Philipp Wich
3b379f01b5 luci-app-statistics: escape backslashes as well
Fixes: bab4a3ef ("luci-app-statistics - allow rrd files to contain :")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2019-04-30 09:08:56 +02:00
Martin Surovcak
7bab4a3ef2
luci-app-statistics - allow rrd files to contain :
Fixes situations where RRD file name contains ":" (eg. _ping/ipv6_) in `rrdtool` it's unescaped - thus not able to render image. Adding simple escaping of `:` to `\\:` fixes the situation.

Might be a solution for #958.
2019-04-04 00:36:05 +02:00
Florian Eckert
cd1e8cc6b9 luci-app-statistics: add new item callback for menu entry
Add the item callback function to the rrdtool definitions.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-03-07 15:16:55 +01:00
Florian Eckert
82c2a97314 luci-app-statistics: load graph menu entry name from the definitions
This change defines the menu entry for the LuCI and the rrd definition in
one place. This also has advantage when plugins are written with
exec/python/perl or lua. The controller does not have to be touched for
the menu entry change.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-03-07 15:16:38 +01:00
Florian Eckert
42a060a852 luci-app-statistics: Diskfree graph show also percent view
The Diskfree (df) plugin could also collect the values in percent if the
option "ValuesPercentage" is set in the collectd configuration.
This commit will check if "df_complex" / "percent_bytes" or both are
collected by collectd and so will show the corrsponding graph.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-03-07 15:16:17 +01:00
Florian Eckert
b42465f3fc luci-app-statistics: rrdtool add canvas height option
Added configuration parameters to also configure the height of the rrd images.

config statistics 'rrdtool'
	option image_height '200'

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-03-07 15:14:11 +01:00
Florian Eckert
e380c29960 luci-app-statistics: fix whitespaces
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-02-25 14:45:00 +01:00
Florian Eckert
c593a210b2 luci-app-statisctis: only include lua modules in rrd statistics into local scope
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-01-21 14:44:20 +01:00
Florian Eckert
8302e7995e luci-app-statistics: remove unused luci.sys include
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-01-21 14:44:20 +01:00
Florian Eckert
b8aa3ebced luci-app-statistics: only include lua modules into local scope
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-01-21 14:44:06 +01:00
Florian Eckert
6e8c99714e luic-app-statistics: reduce copyright headers
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-01-21 14:42:10 +01:00
Florian Eckert
d78f79a404 luci-app-statistics: fix whitespaces in rrdtool definitions
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-01-21 14:42:01 +01:00
Kevin Locke
1bbc419e7a luci-app-statistics: quote : in filenames for DEF
: is used to delimit fields in DEF: rrd instructions, so when it appears
in a filename it must be escaped using \.[1]  This commit adds the
escaping.

I discovered the issue after configuring collectd-mod-ping to monitor an
IPv6 host (2001:19f0:5:727:5b56:205d:ff55:2208).  Accessing
https://192.168.0.1/cgi-bin/luci/admin/statistics/graph/ping would cause
the following messages to be logged:

    Wed Nov 14 23:04:33 2018 daemon.err uhttpd[30261]: ERROR: can't parse DEF '2ping_avg_raw=/tmp/rrd/openwrthost/ping/ping-2001:19f0:5:727:5b56:205d:ff55:2208.rrd:value:AVERAGE' -2
    Wed Nov 14 23:04:33 2018 daemon.err uhttpd[30261]: ERROR: can't parse DEF '2ping_droprate_avg_raw=/tmp/rrd/openwrthost/ping/ping_droprate-2001:19f0:5:727:5b56:205d:ff55:2208.rrd:value:AVERAGE' -2

and the graphs would not display.  After applying this commit, the
graphs display correctly and no messages are logged.

1.  https://oss.oetiker.ch/rrdtool/doc/rrdgraph_data.en.html#IDEF

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
2018-11-14 16:55:24 -07:00
Hannu Nyman
703cd24868
Merge pull request #2209 from jinchizhong/luci-app-statistics-add-curl
luci-app-statistics: add support for cUrl
2018-10-13 22:02:42 +03:00
Chizhong Jin
2d1830422b pp-statistics: add support for cUrl
Add collectd-mod-curl plugin support. Which can do some complex track,
such as grab stock, but by now, only response time are supported.

Signed-off-by: Chizhong Jin <pjincz@gmail.com>
2018-10-14 02:34:49 +08:00
yangfl
ae8b68cfe8 treewide: Fix typos in UI strings
Signed-off-by: David Yang <mmyangfl@gmail.com>
2018-10-12 22:18:51 +08:00
yangfl
401382a459 treewide: Fix typos in comments
Signed-off-by: David Yang <mmyangfl@gmail.com>
2018-10-10 15:00:07 +08:00
Jo-Philipp Wich
c0d9c4f3ce treewide: filter shell arguments through shellquote() where applicable
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2018-04-05 09:37:43 +02:00
guidosarducci
fa1f4c42a6 luci-app-statistics: only graph data supported by APC UPS
Some graph definitions rely on data not supported across all APC UPSes.
Due to recent upstream changes in collectd, the daemon no longer creates
a NaN-filled .rrd file corresponding to any missing UPS data. Depending
on the connected UPS, this may result in some "broken" graphs on the Luci
Statistics page since rrdtool cannot find the expected .rrd file.

Include the add_supported() function to determine the UPS data available
at runtime and update any definitions of graphs to include only supported
data. For example, the whole chart stack of AC input and output voltages
will normally be "broken" if the UPS only measures AC input voltage. With
these changes, the output voltage graph definition is stripped out,
allowing the chart to render.

Make consistent use of data types and instances in graph definitions. All
definitions now use the same format with the 'instances' key. Unnecessary
'types' and 'sources' keys are removed.

Fix the definition of 'line frequency' graph, based on upstream collectd
apcups plugin code: type is 'frequency' but instance should be 'input'.

This also includes some code and whitespace cleanup.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2018-03-03 13:54:55 -08:00
bobmseagithub
2145b7b33b luci-app-statistics: Voltage graphs - AC and DC
The Voltage graph combines Battery, Input Voltage and Output Voltage.
The Y-Axis scale masks changes in Input/Output voltages over time.
This patch splits the graphs into 2 graphs.
This makes it possible to see variations in AC Input/Output voltages.

Signed-off-by: Bob Meizlik <bobmseagithub@squakmt.com>
2017-07-23 20:44:44 -07:00
guidosarducci
808f261793 luci-app-statistics: add support for apcups plugin
OpenWRT/LEDE support for APC UPSes is only partial: although the collectd
apcups plugin is included, related lua/luci code is missing. These changes
add the lua side and have been used for ~2 years, both on OpenWRT and LEDE.

Reworked from patches submitted by James Klaas to the luci development list
in 2015.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
2017-07-04 16:07:14 -07:00
Jo-Philipp Wich
cace1d80ed luci-app-statistics: support specifying line width in graph definitions
This allows a graph definition to explicitely request LINE1, LINE2 or
LINE3 for a data source.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-06-10 20:37:29 +02:00
Jo-Philipp Wich
b1d307d3f5 luci-app-statistics: support graph menu entries without corresponding labels
Properly render menu items for plugin instances that do not have a
corresponding label defined.

This allows for registering new graph pages solely by dropping files
into /usr/lib/lua/luci/statistics/rrdtool/definitions/

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-06-10 20:32:47 +02:00
Hannu Nyman
d04f667383 luci-app-statistics: check that uci config sections exist
A missing or faulty luci_statistics config file may prevent
LuCI access completely already at the login phase as
the statistics config is parsed already then.

The error is like:
  .../statistics/datatree.lua:16: attempt to index upvalue 'sections' (a nil value)

User may be completely locked out of LuCI until he figures out
the need to have a proper luci_statistics config file.

Prevent the error by checking for the existence of
the uci config sections before trying to use values from them.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2017-05-10 19:15:52 +03:00
Hannu Nyman
0a6ce20423 luci-app-statistics: processes: fix graph visibility
Fix graph visibility on processes page based on plugin
instance. The overview instance is empty, while monitored
processes have their own instances.

Original version of the patch created by @koblack and
discussed in #1021

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2017-05-09 09:46:50 +03:00
Hannu Nyman
b737831e56 luci-app-statistics: processes plugin: add labels, correct data
Enhance processes statistics page:
* add proper labels to graphs
* correct RSS memory stats title, add VSZ stats

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2017-04-30 19:05:19 +03:00
fantom-x
5bf636732e Support for collectd-mod-contextswitch
Signed-off-by: Marc Benoit marcb6218@gmail.com
2017-04-29 12:38:23 -04:00
Hannu Nyman
298f838d39 luci-app-statistics: remove non-functional links from graphs
The statistics graphs on the pages with multiple data sources
have contained links to the data sources, but those links
have not worked. Remove the links as they are unnecessary.

This commit fixes #1006

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2017-02-13 19:10:51 +02:00
Hannu Nyman
eaafb4508c luci-app-statistics: add advice about data directory permissions
Add advice about the permissions needed for the data directory:

  Pages are rendered as user 'nobody', so the *.rrd files,
  data directory and all its parent directories need to be
  world readable.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2017-01-23 19:31:40 +02:00
Daniel Dickinson
388c84fa06 app-statistics: df: Don't separate disk usage types
The df plugin wasn't displaying useful lables for the space
used vs free vs reserved due to title override.  This patch
fixes that issues by removing the per-instance setting.

Signed-off-by: Daniel Dickinson <lede@cshore.thecshore.com>
2016-12-07 03:45:21 -05:00
Hannu Nyman
1c27f6b462 luci-app-statistics: add support for thermal stats
Add support for temperature data from collect-mod-thermal

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2016-11-19 16:10:57 +02:00
Hannu Nyman
d4bbf44fbb luci-app-statistics: adjust cpufreq graph for single/dual-core CPUs
The original data model definition assumed data from a quad-core CPU,
which caused errors with single- and dual-core processors.
Adjust the data model to work with also them.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
2016-11-10 20:34:08 +02:00