func (*interfaceDiagnosticsCollector) Name() string {
	return "Interface Diagnostics"
}
Name returns the name of the collector
package interfacediagnostics
import (
	"encoding/xml"
	"log"
	"math"
	"strconv"
	"strings"
	"github.com/czerwonk/junos_exporter/interfacelabels"
	"github.com/czerwonk/junos_exporter/rpc"
	"github.com/czerwonk/junos_exporter/collector"
	"github.com/prometheus/client_golang/prometheus"
)
const prefix = "junos_interface_diagnostics_"
type interfaceDiagnosticsCollector struct {
	labels                                 *interfacelabels.DynamicLabels
	laserBiasCurrentDesc                   *prometheus.Desc
	laserBiasCurrentHighAlarmThresholdDesc *prometheus.Desc
	laserBiasCurrentLowAlarmThresholdDesc  *prometheus.Desc
	laserBiasCurrentHighWarnThresholdDesc  *prometheus.Desc
	laserBiasCurrentLowWarnThresholdDesc   *prometheus.Desc
	laserOutputPowerDesc                   *prometheus.Desc
	laserOutputPowerHighAlarmThresholdDesc *prometheus.Desc
	laserOutputPowerLowAlarmThresholdDesc  *prometheus.Desc
	laserOutputPowerHighWarnThresholdDesc  *prometheus.Desc
	laserOutputPowerLowWarnThresholdDesc   *prometheus.Desc
	laserOutputPowerDbmDesc                   *prometheus.Desc
	laserOutputPowerHighAlarmThresholdDbmDesc *prometheus.Desc
	laserOutputPowerLowAlarmThresholdDbmDesc  *prometheus.Desc
	laserOutputPowerHighWarnThresholdDbmDesc  *prometheus.Desc
	laserOutputPowerLowWarnThresholdDbmDesc   *prometheus.Desc
	moduleTemperatureDesc                   *prometheus.Desc
	moduleTemperatureHighAlarmThresholdDesc *prometheus.Desc
	moduleTemperatureLowAlarmThresholdDesc  *prometheus.Desc
	moduleTemperatureHighWarnThresholdDesc  *prometheus.Desc
	moduleTemperatureLowWarnThresholdDesc   *prometheus.Desc
	laserRxOpticalPowerDesc                   *prometheus.Desc
	laserRxOpticalPowerHighAlarmThresholdDesc *prometheus.Desc
	laserRxOpticalPowerLowAlarmThresholdDesc  *prometheus.Desc
	laserRxOpticalPowerHighWarnThresholdDesc  *prometheus.Desc
	laserRxOpticalPowerLowWarnThresholdDesc   *prometheus.Desc
	laserRxOpticalPowerDbmDesc                   *prometheus.Desc
	laserRxOpticalPowerHighAlarmThresholdDbmDesc *prometheus.Desc
	laserRxOpticalPowerLowAlarmThresholdDbmDesc  *prometheus.Desc
	laserRxOpticalPowerHighWarnThresholdDbmDesc  *prometheus.Desc
	laserRxOpticalPowerLowWarnThresholdDbmDesc   *prometheus.Desc
	moduleVoltageDesc                   *prometheus.Desc
	moduleVoltageHighAlarmThresholdDesc *prometheus.Desc
	moduleVoltageLowAlarmThresholdDesc  *prometheus.Desc
	moduleVoltageHighWarnThresholdDesc  *prometheus.Desc
	moduleVoltageLowWarnThresholdDesc   *prometheus.Desc
	rxSignalAvgOpticalPowerDesc    *prometheus.Desc
	rxSignalAvgOpticalPowerDbmDesc *prometheus.Desc
}
func NewCollector(labels *interfacelabels.DynamicLabels) collector.RPCCollector {
	c := &interfaceDiagnosticsCollector{
		labels: labels,
	}
	c.init()
	return c
}