diff options
Diffstat (limited to '')
-rw-r--r-- | src/go/plugin/go.d/modules/chrony/charts.go | 320 |
1 files changed, 320 insertions, 0 deletions
diff --git a/src/go/plugin/go.d/modules/chrony/charts.go b/src/go/plugin/go.d/modules/chrony/charts.go new file mode 100644 index 000000000..37a6fa3e6 --- /dev/null +++ b/src/go/plugin/go.d/modules/chrony/charts.go @@ -0,0 +1,320 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package chrony + +import ( + "github.com/netdata/netdata/go/plugins/plugin/go.d/agent/module" +) + +const ( + prioStratum = module.Priority + iota + prioCurrentCorrection + prioRootDelay + prioRootDispersion + prioLastOffset + prioRmsOffset + prioFrequency + prioResidualFrequency + prioSkew + prioUpdateInterval + prioRefMeasurementTime + prioLeapStatus + prioActivity + //prioNTPPackets + //prioCommandPackets + //prioNKEConnections + //prioClientLogRecords +) + +var charts = module.Charts{ + stratumChart.Copy(), + + currentCorrectionChart.Copy(), + + rootDelayChart.Copy(), + rootDispersionChart.Copy(), + + lastOffsetChart.Copy(), + rmsOffsetChart.Copy(), + + frequencyChart.Copy(), + residualFrequencyChart.Copy(), + + skewChart.Copy(), + + updateIntervalChart.Copy(), + refMeasurementTimeChart.Copy(), + + leapStatusChart.Copy(), + + activityChart.Copy(), +} + +// Tracking charts +var ( + stratumChart = module.Chart{ + ID: "stratum", + Title: "Distance to the reference clock", + Units: "level", + Fam: "stratum", + Ctx: "chrony.stratum", + Priority: prioStratum, + Dims: module.Dims{ + {ID: "stratum", Name: "stratum"}, + }, + } + + currentCorrectionChart = module.Chart{ + ID: "current_correction", + Title: "Current correction", + Units: "seconds", + Fam: "correction", + Ctx: "chrony.current_correction", + Priority: prioCurrentCorrection, + Dims: module.Dims{ + {ID: "current_correction", Div: scaleFactor}, + }, + } + + rootDelayChart = module.Chart{ + ID: "root_delay", + Title: "Network path delay to stratum-1", + Units: "seconds", + Fam: "root", + Ctx: "chrony.root_delay", + Priority: prioRootDelay, + Dims: module.Dims{ + {ID: "root_delay", Div: scaleFactor}, + }, + } + rootDispersionChart = module.Chart{ + ID: "root_dispersion", + Title: "Dispersion accumulated back to stratum-1", + Units: "seconds", + Fam: "root", + Ctx: "chrony.root_dispersion", + Priority: prioRootDispersion, + Dims: module.Dims{ + {ID: "root_dispersion", Div: scaleFactor}, + }, + } + + lastOffsetChart = module.Chart{ + ID: "last_offset", + Title: "Offset on the last clock update", + Units: "seconds", + Fam: "offset", + Ctx: "chrony.last_offset", + Priority: prioLastOffset, + Dims: module.Dims{ + {ID: "last_offset", Name: "offset", Div: scaleFactor}, + }, + } + rmsOffsetChart = module.Chart{ + ID: "rms_offset", + Title: "Long-term average of the offset value", + Units: "seconds", + Fam: "offset", + Ctx: "chrony.rms_offset", + Priority: prioRmsOffset, + Dims: module.Dims{ + {ID: "rms_offset", Name: "offset", Div: scaleFactor}, + }, + } + + frequencyChart = module.Chart{ + ID: "frequency", + Title: "Frequency", + Units: "ppm", + Fam: "frequency", + Ctx: "chrony.frequency", + Priority: prioFrequency, + Dims: module.Dims{ + {ID: "frequency", Div: scaleFactor}, + }, + } + residualFrequencyChart = module.Chart{ + ID: "residual_frequency", + Title: "Residual frequency", + Units: "ppm", + Fam: "frequency", + Ctx: "chrony.residual_frequency", + Priority: prioResidualFrequency, + Dims: module.Dims{ + {ID: "residual_frequency", Div: scaleFactor}, + }, + } + + skewChart = module.Chart{ + ID: "skew", + Title: "Skew", + Units: "ppm", + Fam: "frequency", + Ctx: "chrony.skew", + Priority: prioSkew, + Dims: module.Dims{ + {ID: "skew", Div: scaleFactor}, + }, + } + + updateIntervalChart = module.Chart{ + ID: "update_interval", + Title: "Interval between the last two clock updates", + Units: "seconds", + Fam: "updates", + Ctx: "chrony.update_interval", + Priority: prioUpdateInterval, + Dims: module.Dims{ + {ID: "update_interval", Div: scaleFactor}, + }, + } + refMeasurementTimeChart = module.Chart{ + ID: "ref_measurement_time", + Title: "Time since the last measurement", + Units: "seconds", + Fam: "updates", + Ctx: "chrony.ref_measurement_time", + Priority: prioRefMeasurementTime, + Dims: module.Dims{ + {ID: "ref_measurement_time"}, + }, + } + + leapStatusChart = module.Chart{ + ID: "leap_status", + Title: "Leap status", + Units: "status", + Fam: "leap status", + Ctx: "chrony.leap_status", + Priority: prioLeapStatus, + Dims: module.Dims{ + {ID: "leap_status_normal", Name: "normal"}, + {ID: "leap_status_insert_second", Name: "insert_second"}, + {ID: "leap_status_delete_second", Name: "delete_second"}, + {ID: "leap_status_unsynchronised", Name: "unsynchronised"}, + }, + } +) + +// Activity charts +var ( + activityChart = module.Chart{ + ID: "activity", + Title: "Peers activity", + Units: "sources", + Fam: "activity", + Ctx: "chrony.activity", + Type: module.Stacked, + Priority: prioActivity, + Dims: module.Dims{ + {ID: "online_sources", Name: "online"}, + {ID: "offline_sources", Name: "offline"}, + {ID: "burst_online_sources", Name: "burst_online"}, + {ID: "burst_offline_sources", Name: "burst_offline"}, + {ID: "unresolved_sources", Name: "unresolved"}, + }, + } +) + +//var serverStatsVer1Charts = module.Charts{ +// ntpPacketsChart.Copy(), +// commandPacketsChart.Copy(), +// clientLogRecordsChart.Copy(), +//} +// +//var serverStatsVer2Charts = module.Charts{ +// ntpPacketsChart.Copy(), +// commandPacketsChart.Copy(), +// clientLogRecordsChart.Copy(), +// nkeConnectionChart.Copy(), +//} +// +//var serverStatsVer3Charts = module.Charts{ +// ntpPacketsChart.Copy(), +// commandPacketsChart.Copy(), +// clientLogRecordsChart.Copy(), +// nkeConnectionChart.Copy(), +//} +// +//var serverStatsVer4Charts = module.Charts{ +// ntpPacketsChart.Copy(), +// commandPacketsChart.Copy(), +// clientLogRecordsChart.Copy(), +// nkeConnectionChart.Copy(), +//} + +// ServerStats charts +//var ( +// ntpPacketsChart = module.Chart{ +// ID: "ntp_packets", +// Title: "NTP packets", +// Units: "packets/s", +// Fam: "client requests", +// Ctx: "chrony.ntp_packets", +// Type: module.Stacked, +// Priority: prioNTPPackets, +// Dims: module.Dims{ +// {ID: "ntp_packets_received", Name: "received", Algo: module.Incremental}, +// {ID: "ntp_packets_dropped", Name: "dropped", Algo: module.Incremental}, +// }, +// } +// commandPacketsChart = module.Chart{ +// ID: "command_packets", +// Title: "Command packets", +// Units: "packets/s", +// Fam: "client requests", +// Ctx: "chrony.command_packets", +// Type: module.Stacked, +// Priority: prioCommandPackets, +// Dims: module.Dims{ +// {ID: "command_packets_received", Name: "received", Algo: module.Incremental}, +// {ID: "command_packets_dropped", Name: "dropped", Algo: module.Incremental}, +// }, +// } +// nkeConnectionChart = module.Chart{ +// ID: "nke_connections", +// Title: "NTS-KE connections", +// Units: "connections/s", +// Fam: "client requests", +// Ctx: "chrony.nke_connections", +// Type: module.Stacked, +// Priority: prioNKEConnections, +// Dims: module.Dims{ +// {ID: "nke_connections_accepted", Name: "accepted", Algo: module.Incremental}, +// {ID: "nke_connections_dropped", Name: "dropped", Algo: module.Incremental}, +// }, +// } +// clientLogRecordsChart = module.Chart{ +// ID: "client_log_records", +// Title: "Client log records", +// Units: "records/s", +// Fam: "client requests", +// Ctx: "chrony.client_log_records", +// Type: module.Stacked, +// Priority: prioClientLogRecords, +// Dims: module.Dims{ +// {ID: "client_log_records_dropped", Name: "dropped", Algo: module.Incremental}, +// }, +// } +//) + +//func (c *Chrony) addServerStatsCharts(stats *serverStats) { +// var err error +// +// switch { +// case stats.v1 != nil: +// err = c.Charts().Add(*serverStatsVer1Charts.Copy()...) +// case stats.v2 != nil: +// err = c.Charts().Add(*serverStatsVer2Charts.Copy()...) +// case stats.v3 != nil: +// err = c.Charts().Add(*serverStatsVer3Charts.Copy()...) +// case stats.v4 != nil: +// err = c.Charts().Add(*serverStatsVer4Charts.Copy()...) +// default: +// err = errors.New("unknown stats chart") +// } +// +// if err != nil { +// c.Warning(err) +// } +//} |