Add more DOCSIS channel information
This commit is contained in:
parent
d7f6534e3a
commit
780eb92684
1 changed files with 73 additions and 17 deletions
|
|
@ -17,10 +17,22 @@ var (
|
||||||
uidDesc *prometheus.Desc
|
uidDesc *prometheus.Desc
|
||||||
defaultPasswordDesc *prometheus.Desc
|
defaultPasswordDesc *prometheus.Desc
|
||||||
|
|
||||||
centralFrequencyDesc *prometheus.Desc
|
centralFrequencyDownstreamDesc *prometheus.Desc
|
||||||
powerDesc *prometheus.Desc
|
powerDownstreamDesc *prometheus.Desc
|
||||||
snrDesc *prometheus.Desc
|
snrDownstreamDesc *prometheus.Desc
|
||||||
lockedDesc *prometheus.Desc
|
lockedDownstreamDesc *prometheus.Desc
|
||||||
|
|
||||||
|
startFrequencyOfdmDownstreamDesc *prometheus.Desc
|
||||||
|
endFrequencyOfdmDownstreamDesc *prometheus.Desc
|
||||||
|
centralFrequencyOfdmDownstreamDesc *prometheus.Desc
|
||||||
|
bandwidthOfdmDownstreamDesc *prometheus.Desc
|
||||||
|
powerOfdmDownstreamDesc *prometheus.Desc
|
||||||
|
snrOfdmDownstreamDesc *prometheus.Desc
|
||||||
|
lockedOfdmDownstreamDesc *prometheus.Desc
|
||||||
|
|
||||||
|
centralFrequencyUpstreamDesc *prometheus.Desc
|
||||||
|
powerUpstreamDesc *prometheus.Desc
|
||||||
|
rangingStatusUpstreamDesc *prometheus.Desc
|
||||||
|
|
||||||
logoutSuccessDesc *prometheus.Desc
|
logoutSuccessDesc *prometheus.Desc
|
||||||
logoutMessageDesc *prometheus.Desc
|
logoutMessageDesc *prometheus.Desc
|
||||||
|
|
@ -35,11 +47,25 @@ func init() {
|
||||||
uidDesc = prometheus.NewDesc(prefix+"uid_info", "User id as returned by the web interface", []string{"uid"}, nil)
|
uidDesc = prometheus.NewDesc(prefix+"uid_info", "User id as returned by the web interface", []string{"uid"}, nil)
|
||||||
defaultPasswordDesc = prometheus.NewDesc(prefix+"default_password_bool", "1 if the default password is in use", nil, nil)
|
defaultPasswordDesc = prometheus.NewDesc(prefix+"default_password_bool", "1 if the default password is in use", nil, nil)
|
||||||
|
|
||||||
channelLabels := []string{"id", "channel_id", "fft", "channel_type"}
|
downstreamChannelLabels := []string{"id", "channel_id", "fft", "channel_type"}
|
||||||
centralFrequencyDesc = prometheus.NewDesc(prefix+"central_frequency_hertz", "Central frequency in hertz", channelLabels, nil)
|
centralFrequencyDownstreamDesc = prometheus.NewDesc(prefix+"downstream_central_frequency_hertz", "Central frequency in hertz", downstreamChannelLabels, nil)
|
||||||
powerDesc = prometheus.NewDesc(prefix+"power_dBmV", "Power in dBmV", channelLabels, nil)
|
powerDownstreamDesc = prometheus.NewDesc(prefix+"downstream_power_dBmV", "Power in dBmV", downstreamChannelLabels, nil)
|
||||||
snrDesc = prometheus.NewDesc(prefix+"snr_dB", "SNR in dB", channelLabels, nil)
|
snrDownstreamDesc = prometheus.NewDesc(prefix+"downstream_snr_dB", "SNR in dB", downstreamChannelLabels, nil)
|
||||||
lockedDesc = prometheus.NewDesc(prefix+"locked_bool", "Locking status", channelLabels, nil)
|
lockedDownstreamDesc = prometheus.NewDesc(prefix+"downstream_locked_bool", "Locking status", downstreamChannelLabels, nil)
|
||||||
|
|
||||||
|
ofdmDownstreamChannelLabels := []string{"id", "channel_id_ofdm", "fft", "channel_type"}
|
||||||
|
startFrequencyOfdmDownstreamDesc = prometheus.NewDesc(prefix+"ofdm_downstream_start_frequency_hertz", "Start frequency", ofdmDownstreamChannelLabels, nil)
|
||||||
|
endFrequencyOfdmDownstreamDesc = prometheus.NewDesc(prefix+"ofdm_downstream_end_frequency_hertz", "End frequency", ofdmDownstreamChannelLabels, nil)
|
||||||
|
centralFrequencyOfdmDownstreamDesc = prometheus.NewDesc(prefix+"ofdm_downstream_central_frequency_hertz", "Central frequency", ofdmDownstreamChannelLabels, nil)
|
||||||
|
bandwidthOfdmDownstreamDesc = prometheus.NewDesc(prefix+"ofdm_downstream_bandwidth_hertz", "Bandwidth", ofdmDownstreamChannelLabels, nil)
|
||||||
|
powerOfdmDownstreamDesc = prometheus.NewDesc(prefix+"ofdm_downstream_power_dBmV", "Power", ofdmDownstreamChannelLabels, nil)
|
||||||
|
snrOfdmDownstreamDesc = prometheus.NewDesc(prefix+"ofdm_downstream_snr_dB", "SNR", ofdmDownstreamChannelLabels, nil)
|
||||||
|
lockedOfdmDownstreamDesc = prometheus.NewDesc(prefix+"ofdm_downstream_locked_bool", "Locking status", ofdmDownstreamChannelLabels, nil)
|
||||||
|
|
||||||
|
upstreamLabels := []string{"id", "channel_id_up", "fft", "channel_type"}
|
||||||
|
centralFrequencyUpstreamDesc = prometheus.NewDesc(prefix+"upstream_central_frequency_hertz", "Central frequency", upstreamLabels, nil)
|
||||||
|
powerUpstreamDesc = prometheus.NewDesc(prefix+"upstream_power_dBmV", "Power", upstreamLabels, nil)
|
||||||
|
rangingStatusUpstreamDesc = prometheus.NewDesc(prefix+"upstream_ranging_status_info", "Ranging status", append(upstreamLabels, "status"), nil)
|
||||||
|
|
||||||
logoutSuccessDesc = prometheus.NewDesc(prefix+"logout_success_bool", "1 if the logout was successfull", nil, nil)
|
logoutSuccessDesc = prometheus.NewDesc(prefix+"logout_success_bool", "1 if the logout was successfull", nil, nil)
|
||||||
logoutMessageDesc = prometheus.NewDesc(prefix+"logout_message_info", "Logout message returned by the web interface", []string{"message"}, nil)
|
logoutMessageDesc = prometheus.NewDesc(prefix+"logout_message_info", "Logout message returned by the web interface", []string{"message"}, nil)
|
||||||
|
|
@ -52,10 +78,24 @@ func (c *Collector) Describe(ch chan<- *prometheus.Desc) {
|
||||||
ch <- userDesc
|
ch <- userDesc
|
||||||
ch <- uidDesc
|
ch <- uidDesc
|
||||||
ch <- defaultPasswordDesc
|
ch <- defaultPasswordDesc
|
||||||
ch <- centralFrequencyDesc
|
|
||||||
ch <- powerDesc
|
ch <- centralFrequencyDownstreamDesc
|
||||||
ch <- snrDesc
|
ch <- powerDownstreamDesc
|
||||||
ch <- snrDesc
|
ch <- snrDownstreamDesc
|
||||||
|
ch <- snrDownstreamDesc
|
||||||
|
|
||||||
|
ch <- startFrequencyOfdmDownstreamDesc
|
||||||
|
ch <- endFrequencyOfdmDownstreamDesc
|
||||||
|
ch <- centralFrequencyOfdmDownstreamDesc
|
||||||
|
ch <- bandwidthOfdmDownstreamDesc
|
||||||
|
ch <- powerOfdmDownstreamDesc
|
||||||
|
ch <- snrOfdmDownstreamDesc
|
||||||
|
ch <- lockedOfdmDownstreamDesc
|
||||||
|
|
||||||
|
ch <- centralFrequencyUpstreamDesc
|
||||||
|
ch <- powerUpstreamDesc
|
||||||
|
ch <- rangingStatusUpstreamDesc
|
||||||
|
|
||||||
ch <- logoutSuccessDesc
|
ch <- logoutSuccessDesc
|
||||||
ch <- logoutMessageDesc
|
ch <- logoutMessageDesc
|
||||||
}
|
}
|
||||||
|
|
@ -80,10 +120,26 @@ func (c *Collector) Collect(ch chan<- prometheus.Metric) {
|
||||||
if err == nil && docsisStatusResponse.Data != nil {
|
if err == nil && docsisStatusResponse.Data != nil {
|
||||||
for _, downstreamChannel := range docsisStatusResponse.Data.Downstream {
|
for _, downstreamChannel := range docsisStatusResponse.Data.Downstream {
|
||||||
labels := []string{downstreamChannel.Id, downstreamChannel.ChannelId, downstreamChannel.Fft, downstreamChannel.ChannelType}
|
labels := []string{downstreamChannel.Id, downstreamChannel.ChannelId, downstreamChannel.Fft, downstreamChannel.ChannelType}
|
||||||
ch <- prometheus.MustNewConstMetric(centralFrequencyDesc, prometheus.GaugeValue, parse2float(downstreamChannel.CentralFrequency), labels...)
|
ch <- prometheus.MustNewConstMetric(centralFrequencyDownstreamDesc, prometheus.GaugeValue, parse2float(downstreamChannel.CentralFrequency)*10e9, labels...)
|
||||||
ch <- prometheus.MustNewConstMetric(powerDesc, prometheus.GaugeValue, parse2float(downstreamChannel.Power), labels...)
|
ch <- prometheus.MustNewConstMetric(powerDownstreamDesc, prometheus.GaugeValue, parse2float(downstreamChannel.Power), labels...)
|
||||||
ch <- prometheus.MustNewConstMetric(snrDesc, prometheus.GaugeValue, parse2float(downstreamChannel.Snr), labels...)
|
ch <- prometheus.MustNewConstMetric(snrDownstreamDesc, prometheus.GaugeValue, parse2float(downstreamChannel.Snr), labels...)
|
||||||
ch <- prometheus.MustNewConstMetric(lockedDesc, prometheus.GaugeValue, bool2float64(downstreamChannel.Locked == "Locked"), labels...)
|
ch <- prometheus.MustNewConstMetric(lockedDownstreamDesc, prometheus.GaugeValue, bool2float64(downstreamChannel.Locked == "Locked"), labels...)
|
||||||
|
}
|
||||||
|
for _, ofdmDownstreamChannel := range docsisStatusResponse.Data.OfdmDownstreamData {
|
||||||
|
labels := []string{ofdmDownstreamChannel.Id, ofdmDownstreamChannel.ChannelIdOfdm, ofdmDownstreamChannel.FftOfdm, ofdmDownstreamChannel.ChannelType}
|
||||||
|
ch <- prometheus.MustNewConstMetric(startFrequencyOfdmDownstreamDesc, prometheus.GaugeValue, parse2float(ofdmDownstreamChannel.StartFrequency)*10e9, labels...)
|
||||||
|
ch <- prometheus.MustNewConstMetric(endFrequencyOfdmDownstreamDesc, prometheus.GaugeValue, parse2float(ofdmDownstreamChannel.EndFrequency)*10e9, labels...)
|
||||||
|
ch <- prometheus.MustNewConstMetric(centralFrequencyOfdmDownstreamDesc, prometheus.GaugeValue, parse2float(ofdmDownstreamChannel.CentralFrequencyOfdm)*10e9, labels...)
|
||||||
|
ch <- prometheus.MustNewConstMetric(bandwidthOfdmDownstreamDesc, prometheus.GaugeValue, parse2float(ofdmDownstreamChannel.Bandwidth)*10e9, labels...)
|
||||||
|
ch <- prometheus.MustNewConstMetric(powerOfdmDownstreamDesc, prometheus.GaugeValue, parse2float(ofdmDownstreamChannel.PowerOfdm), labels...)
|
||||||
|
ch <- prometheus.MustNewConstMetric(snrOfdmDownstreamDesc, prometheus.GaugeValue, parse2float(ofdmDownstreamChannel.SnrOfdm), labels...)
|
||||||
|
ch <- prometheus.MustNewConstMetric(lockedOfdmDownstreamDesc, prometheus.GaugeValue, bool2float64(ofdmDownstreamChannel.LockedOfdm == "Locked"), labels...)
|
||||||
|
}
|
||||||
|
for _, upstreamChannel := range docsisStatusResponse.Data.Upstream {
|
||||||
|
labels := []string{upstreamChannel.Id, upstreamChannel.ChannelIdUp, upstreamChannel.Fft, upstreamChannel.ChannelType}
|
||||||
|
ch <- prometheus.MustNewConstMetric(centralFrequencyUpstreamDesc, prometheus.GaugeValue, parse2float(upstreamChannel.CentralFrequency)*10e9, labels...)
|
||||||
|
ch <- prometheus.MustNewConstMetric(powerUpstreamDesc, prometheus.GaugeValue, parse2float(upstreamChannel.Power), labels...)
|
||||||
|
ch <- prometheus.MustNewConstMetric(rangingStatusUpstreamDesc, prometheus.GaugeValue, 1, append(labels, upstreamChannel.RangingStatus)...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue