collector

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 17, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActiveTunnelReply added in v0.1.10

type ActiveTunnelReply struct {
	XMLName                              xml.Name `xml:"rpc-reply"`
	Text                                 string   `xml:",chardata"`
	Junos                                string   `xml:"junos,attr"`
	IpsecSecurityAssociationsInformation struct {
		Text                           string `xml:",chardata"`
		Style                          string `xml:"style,attr"`
		TotalActiveTunnels             string `xml:"total-active-tunnels"`
		IpsecSecurityAssociationsBlock []struct {
			Text                      string `xml:",chardata"`
			SaBlockState              string `xml:"sa-block-state"`
			IpsecSecurityAssociations struct {
				Text                     string `xml:",chardata"`
				SaDirection              string `xml:"sa-direction"`
				SaTunnelIndex            string `xml:"sa-tunnel-index"`
				SaSpi                    string `xml:"sa-spi"`
				SaAuxSpi                 string `xml:"sa-aux-spi"`
				SaRemoteGateway          string `xml:"sa-remote-gateway"`
				SaPort                   string `xml:"sa-port"`
				SaVpnMonitoringState     string `xml:"sa-vpn-monitoring-state"`
				SaProtocol               string `xml:"sa-protocol"`
				SaEspEncryptionAlgorithm string `xml:"sa-esp-encryption-algorithm"`
				SaHmacAlgorithm          string `xml:"sa-hmac-algorithm"`
				SaHardLifetime           string `xml:"sa-hard-lifetime"`
				SaLifesizeRemaining      string `xml:"sa-lifesize-remaining"`
				SaVirtualSystem          string `xml:"sa-virtual-system"`
			} `xml:"ipsec-security-associations"`
		} `xml:"ipsec-security-associations-block"`
	} `xml:"ipsec-security-associations-information"`
	Cli struct {
		Text   string `xml:",chardata"`
		Banner string `xml:"banner"`
	} `xml:"cli"`
}

type BGPCollector

type BGPCollector struct{}

BGPCollector collects BGP metrics, implemented as per the Collector interface.

func NewBGPCollector

func NewBGPCollector() *BGPCollector

NewBGPCollector returns a new BGPCollector

func (*BGPCollector) Get added in v0.1.6

func (c *BGPCollector) Get(ch chan<- prometheus.Metric, conf Config) ([]error, float64)

Get metrics and send to the Prometheus.Metric channel.

func (*BGPCollector) Name

func (*BGPCollector) Name() string

Name of the collector.

type BoolIfPresent added in v1.0.0

type BoolIfPresent bool

func (*BoolIfPresent) UnmarshalXML added in v1.0.0

func (c *BoolIfPresent) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error

type Collector

type Collector interface {
	// Returns the name of the collector.
	Name() string
	// Gets metrics and sends to the Prometheus.Metric channel.
	Get(ch chan<- prometheus.Metric, config Config) ([]error, float64)
}

Collector is the interface a collector has to implement.

type Config added in v0.1.6

type Config struct {
	SSHClientConfig *ssh.ClientConfig
	SSHTarget       string
	IfaceDescrKeys  []string
	IfaceMetricKeys []string
	BGPTypeKeys     []string
}

Config required by the collectors.

type EnvCollector

type EnvCollector struct{}

EnvCollector collects environment metrics, implemented as per the Collector interface.

func NewEnvCollector

func NewEnvCollector() *EnvCollector

NewEnvCollector returns a new EnvCollector.

func (*EnvCollector) Get added in v0.1.6

func (c *EnvCollector) Get(ch chan<- prometheus.Metric, conf Config) ([]error, float64)

Get metrics and send to the Prometheus.Metric channel.

func (*EnvCollector) Name

func (*EnvCollector) Name() string

Name of the collector.

type EnvTempThreshold added in v1.1.0

type EnvTempThreshold struct {
	Name              envTempThresholdText `xml:"name"`
	FanNormalSpeed    envTempThresholdText `xml:"fan-normal-speed"`
	FanHighSpeed      envTempThresholdText `xml:"fan-high-speed"`
	BadFanYellowAlarm envTempThresholdText `xml:"bad-fan-yellow-alarm"`
	BadFanRedAlarm    envTempThresholdText `xml:"bad-fan-red-alarm"`
	YellowAlarm       envTempThresholdText `xml:"yellow-alarm"`
	RedAlarm          envTempThresholdText `xml:"red-alarm"`
	FireShutdown      envTempThresholdText `xml:"fire-shutdown"`
}

type EnvTempThresholdInformation added in v1.1.0

type EnvTempThresholdInformation struct {
	EnvTempThreshold []EnvTempThreshold `xml:"temperature-threshold"`
}

type Exporter added in v0.1.6

type Exporter struct {
	Collectors []Collector
	// contains filtered or unexported fields
}

Exporter collects all exporter metrics, implemented as per the prometheus.Collector interface.

func NewExporter

func NewExporter(collectors []Collector, config Config) (*Exporter, error)

NewExporter returns a new Exporter.

func (*Exporter) Collect added in v0.1.6

func (e *Exporter) Collect(ch chan<- prometheus.Metric)

Collect implemented as per the prometheus.Collector interface.

func (*Exporter) Describe added in v0.1.6

func (e *Exporter) Describe(ch chan<- *prometheus.Desc)

Describe implemented as per the prometheus.Collector interface.

type InactiveTunnelReply added in v0.1.10

type InactiveTunnelReply struct {
	XMLName                             xml.Name `xml:"rpc-reply"`
	Text                                string   `xml:",chardata"`
	Junos                               string   `xml:"junos,attr"`
	MessageID                           string   `xml:"message-id,attr"`
	Xmlns                               string   `xml:"xmlns,attr"`
	IpsecUnestablishedTunnelInformation struct {
		Text                                         string `xml:",chardata"`
		Style                                        string `xml:"style,attr"`
		TotalInactiveTunnels                         string `xml:"total-inactive-tunnels"`
		TotalInactiveTunnelsWithEstablishImmediately string `xml:"total-inactive-tunnels-with-establish-immediately"`
		IpsecSecurityAssociationsBlock               []struct {
			Text                      string `xml:",chardata"`
			IpsecSecurityAssociations struct {
				Text                  string `xml:",chardata"`
				SaTunnelIndex         string `xml:"sa-tunnel-index"`
				SaRemoteGateway       string `xml:"sa-remote-gateway"`
				SaPort                string `xml:"sa-port"`
				SaTunnelEventTime     string `xml:"sa-tunnel-event-time"`
				SaTunnelEvent         string `xml:"sa-tunnel-event"`
				SaTunnelEventNumTimes string `xml:"sa-tunnel-event-num-times"`
			} `xml:"ipsec-security-associations"`
		} `xml:"ipsec-security-associations-block"`
	} `xml:"ipsec-unestablished-tunnel-information"`
}

type InterfaceCollector

type InterfaceCollector struct{}

InterfaceCollector collects Iface metrics, implemented as per the Collector iface.

func NewInterfaceCollector

func NewInterfaceCollector() *InterfaceCollector

NewInterfaceCollector returns a new InterfaceCollector.

func (*InterfaceCollector) Get added in v0.1.6

func (c *InterfaceCollector) Get(ch chan<- prometheus.Metric, conf Config) ([]error, float64)

Get metrics and send to the Prometheus.Metric channel.

func (*InterfaceCollector) Name

func (*InterfaceCollector) Name() string

Name of the collector.

type IpsecCollector added in v0.1.10

type IpsecCollector struct{}

EnvCollector collects environment metrics, implemented as per the Collector interface.

func NewIpsecCollector added in v0.1.10

func NewIpsecCollector() *IpsecCollector

NewEnvCollector returns a new EnvCollector.

func (*IpsecCollector) Get added in v0.1.10

func (c *IpsecCollector) Get(ch chan<- prometheus.Metric, conf Config) ([]error, float64)

Get metrics and send to the Prometheus.Metric channel.

func (*IpsecCollector) Name added in v0.1.10

func (*IpsecCollector) Name() string

Name of the collector.

type OSPFCollector added in v1.3.0

type OSPFCollector struct{}

EnvCollector collects environment metrics, implemented as per the Collector interface.

func NewOSPFCollector added in v1.3.0

func NewOSPFCollector() *OSPFCollector

NewEnvCollector returns a new EnvCollector.

func (*OSPFCollector) Get added in v1.3.0

func (c *OSPFCollector) Get(ch chan<- prometheus.Metric, conf Config) ([]error, float64)

Get metrics and send to the Prometheus.Metric channel.

func (*OSPFCollector) Name added in v1.3.0

func (*OSPFCollector) Name() string

Name of the collector.

type OpticsCollector added in v1.1.0

type OpticsCollector struct{}

OpticsCollector collects power metrics, implemented as per the Collector interface.

func NewOpticsCollector added in v1.1.0

func NewOpticsCollector() *OpticsCollector

NewOpticsCollector returns a new OpticsCollector .

func (*OpticsCollector) Get added in v1.1.0

func (c *OpticsCollector) Get(ch chan<- prometheus.Metric, conf Config) ([]error, float64)

Get metrics and send to the Prometheus.Metric channel.

func (*OpticsCollector) Name added in v1.1.0

func (*OpticsCollector) Name() string

Name of the collector.

type OpticsDiagLanes added in v1.1.0

type OpticsDiagLanes struct {
	LaneIndex                        opticsText `xml:"lane-index"`
	LaserBiasCurrent                 opticsText `xml:"laser-bias-current"`
	LaserOutputPower                 opticsText `xml:"laser-output-power"`
	LaserOutputPowerDbm              opticsText `xml:"laser-output-power-dbm"`
	LaserRxOpticalPower              opticsText `xml:"laser-rx-optical-power"`
	LaserRxOpticalPowerDbm           opticsText `xml:"laser-rx-optical-power-dbm"`
	LaserBiasCurrentHighAlarm        opticsText `xml:"laser-bias-current-high-alarm"`
	LaserBiasCurrentLowAlarm         opticsText `xml:"laser-bias-current-low-alarm"`
	LaserBiasCurrentHighWarn         opticsText `xml:"laser-bias-current-high-warn"`
	LaserBiasCurrentLowWarn          opticsText `xml:"laser-bias-current-low-warn"`
	LaserRxPowerHighAlarm            opticsText `xml:"laser-rx-power-high-alarm"`
	LaserRxPowerLowAlarm             opticsText `xml:"laser-rx-power-low-alarm"`
	LaserRxPowerHighWarn             opticsText `xml:"laser-rx-power-high-warn"`
	LaserRxPowerLowWarn              opticsText `xml:"laser-rx-power-low-warn"`
	TxLossOfSignalFunctionalityAlarm opticsText `xml:"tx-loss-of-signal-functionality-alarm"`
	RxLossOfSignalAlarm              opticsText `xml:"rx-loss-of-signal-alarm"`
	TxLaserDisabledAlarm             opticsText `xml:"tx-laser-disabled-alarm"`
}

type OpticsDiagnostics added in v1.1.0

type OpticsDiagnostics struct {
	ModuleTemperature                        opticsTemp        `xml:"module-temperature"`
	ModuleVoltage                            opticsText        `xml:"module-voltage"`
	ModuleTemperatureHighAlarm               opticsText        `xml:"module-temperature-high-alarm"`
	ModuleTemperatureLowAlarm                opticsText        `xml:"module-temperature-low-alarm"`
	ModuleTemperatureHighWarn                opticsText        `xml:"module-temperature-high-warn"`
	ModuleTemperatureLowWarn                 opticsText        `xml:"module-temperature-low-warn"`
	ModuleVoltageHighAlarm                   opticsText        `xml:"module-voltage-high-alarm"`
	ModuleVoltageLowAlarm                    opticsText        `xml:"module-voltage-low-alarm"`
	ModuleVoltageHighWarn                    opticsText        `xml:"module-voltage-high-warn"`
	ModuleVoltageLowWarn                     opticsText        `xml:"module-voltage-low-warn"`
	ModuleTemperatureHighAlarmThreshold      opticsTemp        `xml:"module-temperature-high-alarm-threshold"`
	ModuleTemperatureLowAlarmThreshold       opticsTemp        `xml:"module-temperature-low-alarm-threshold"`
	ModuleTemperatureHighWarnThreshold       opticsTemp        `xml:"module-temperature-high-warn-threshold"`
	ModuleTemperatureLowWarnThreshold        opticsTemp        `xml:"module-temperature-low-warn-threshold"`
	ModuleVoltageHighAlarmThreshold          opticsText        `xml:"module-voltage-high-alarm-threshold"`
	ModuleVoltageLowAlarmThreshold           opticsText        `xml:"module-voltage-low-alarm-threshold"`
	ModuleVoltageHighWarnThreshold           opticsText        `xml:"module-voltage-high-warn-threshold"`
	ModuleVoltageLowWarnThreshold            opticsText        `xml:"module-voltage-low-warn-threshold"`
	LaserBiasCurrentHighAlarmThreshold       opticsText        `xml:"laser-bias-current-high-alarm-threshold"`
	LaserBiasCurrentLowAlarmThreshold        opticsText        `xml:"laser-bias-current-low-alarm-threshold"`
	LaserBiasCurrentHighWarnThreshold        opticsText        `xml:"laser-bias-current-high-warn-threshold"`
	LaserBiasCurrentLowWarnThreshold         opticsText        `xml:"laser-bias-current-low-warn-threshold"`
	LaserTxPowerHighAlarmThreshold           opticsText        `xml:"laser-tx-power-high-alarm-threshold"`
	LaserTxPowerHighAlarmThresholdDbm        opticsText        `xml:"laser-tx-power-high-alarm-threshold-dbm"`
	LaserTxPowerLowAlarmThreshold            opticsText        `xml:"laser-tx-power-low-alarm-threshold"`
	LaserTxPowerLowAlarmThresholdDbm         opticsText        `xml:"laser-tx-power-low-alarm-threshold-dbm"`
	LaserTxPowerHighWarnThreshold            opticsText        `xml:"laser-tx-power-high-warn-threshold"`
	LaserTxPowerHighWarnThresholdDbm         opticsText        `xml:"laser-tx-power-high-warn-threshold-dbm"`
	LaserTxPowerLowWarnThreshold             opticsText        `xml:"laser-tx-power-low-warn-threshold"`
	LaserTxPowerLowWarnThresholdDbm          opticsText        `xml:"laser-tx-power-low-warn-threshold-dbm"`
	LaserRxPowerHighAlarmThreshold           opticsText        `xml:"laser-rx-power-high-alarm-threshold"`
	LaserRxPowerHighAlarmThresholdDbm        opticsText        `xml:"laser-rx-power-high-alarm-threshold-dbm"`
	LaserRxPowerLowAlarmThreshold            opticsText        `xml:"laser-rx-power-low-alarm-threshold"`
	LaserRxPowerLowAlarmThresholdDbm         opticsText        `xml:"laser-rx-power-low-alarm-threshold-dbm"`
	LaserRxPowerHighWarnThreshold            opticsText        `xml:"laser-rx-power-high-warn-threshold"`
	LaserRxPowerHighWarnThresholdDbm         opticsText        `xml:"laser-rx-power-high-warn-threshold-dbm"`
	LaserRxPowerLowWarnThreshold             opticsText        `xml:"laser-rx-power-low-warn-threshold"`
	LaserRxPowerLowWarnThresholdDbm          opticsText        `xml:"laser-rx-power-low-warn-threshold-dbm"`
	OpticsDiagLanes                          []OpticsDiagLanes `xml:"optics-diagnostics-lane-values"`
	NonChannelizedLaserBiasCurrent           opticsText        `xml:"laser-bias-current"`
	NonChannelizedLaserOutputPower           opticsText        `xml:"laser-output-power"`
	NonChannelizedLaserOutputPowerDbm        opticsText        `xml:"laser-output-power-dbm"`
	NonChannelizedRxSignalAvgOpticalPower    opticsText        `xml:"rx-signal-avg-optical-power"`
	NonChannelizedRxSignalAvgOpticalPowerDbm opticsText        `xml:"rx-signal-avg-optical-power-dbm"`
}

type PowerCollector

type PowerCollector struct{}

PowerCollector collects power metrics, implemented as per the Collector interface.

func NewPowerCollector

func NewPowerCollector() *PowerCollector

NewPowerCollector returns a new PowerCollector .

func (*PowerCollector) Get added in v0.1.6

func (c *PowerCollector) Get(ch chan<- prometheus.Metric, conf Config) ([]error, float64)

Get metrics and send to the Prometheus.Metric channel.

func (*PowerCollector) Name

func (*PowerCollector) Name() string

Name of the collector.

type RECollector

type RECollector struct{}

RECollector collects route engine metrics, implemented as per the Collector interface.

func NewRECollector

func NewRECollector() *RECollector

NewRECollector returns a new RECollector.

func (*RECollector) Get added in v0.1.6

func (c *RECollector) Get(ch chan<- prometheus.Metric, conf Config) ([]error, float64)

Get metrics and send to the Prometheus.Metric channel.

func (*RECollector) Name

func (*RECollector) Name() string

Name of the collector.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL