--- /dev/null
+/* Licensed to the public under the Apache License 2.0. */
+
+'use strict';
+'require baseclass';
+'require uci';
+
+return baseclass.extend({
+ title: _('Chrony'),
+
+ rrdargs: function(graph, host, plugin, plugin_instance, dtype) {
+ var offset = {
+ title: "%H: Chrony - time offset",
+ vlabel: "Time offset (ms)",
+ number_format: "%9.3lf ms",
+ data: {
+ types: [ "time_offset" ],
+ options: {
+ time_offset_chrony: {
+ noarea: true,
+ overlay: true,
+ color: "ff0000",
+ title: "%di",
+ transform_rpn: "1000,*"
+ },
+ time_offset: {
+ noarea: true,
+ overlay: true,
+ title: "%di",
+ transform_rpn: "1000,*"
+ }
+ }
+ }
+ };
+
+ var stratum = {
+ title: "%H: Chrony - clock stratum",
+ vlabel: "Clock stratum",
+ number_format: "%3.1lf%S",
+ data: {
+ types: [ "clock_stratum" ],
+ options: {
+ clock_stratum_chrony: {
+ noarea: true,
+ overlay: true,
+ color: "ff0000",
+ title: "%di"
+ },
+ clock_stratum: {
+ noarea: true,
+ overlay: true,
+ title: "%di"
+ }
+ }
+ }
+ };
+
+ return [ offset, stratum ];
+
+ }
+});
+
--- /dev/null
+'use strict';
+'require baseclass';
+'require form';
+
+return baseclass.extend({
+ title: _('Chrony Plugin Configuration'),
+ description: _('The chrony plugin will monitor chrony NTP server statistics'),
+
+ addFormOptions: function(s) {
+ var o;
+
+ o = s.option(form.Flag, 'enable', _('Enable this plugin'));
+
+ o = s.option(form.Value, 'Host', _('Host running chrony'),
+ _('Possibly bug in collectd. Only 127.0.0.1 and localhost work'));
+ o.default = '127.0.0.1';
+ o.datatype = 'or(hostname,ipaddr("nomask"))';
+ o.depends('enable', '1');
+
+ o = s.option(form.Value, 'Port', _('Port for chronyd'));
+ o.default = '323';
+ o.datatype = 'port';
+ o.depends('enable', '1');
+
+ o = s.option(form.Value, 'Timeout', _('Timeout for polling chrony'), _('Seconds'));
+ o.default = '2';
+ o.datatype = 'range(0, 255)';
+ o.depends('enable', '1');
+ },
+
+ configSummary: function(section) {
+ return _('Chrony monitoring enabled');
+ }
+});