collector

package
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UNKNOWN = iota
	DELL
	HPE
	LENOVO
	INSPUR
	H3C
)
View Source
const (
	StateEnabled = "Enabled"
	StateAbsent  = "Absent"
)

Variables

This section is empty.

Functions

func Reset

func Reset(target string)

Resets an existing collector of the given target

Types

type ChassisResponse

type ChassisResponse struct {
	Name               string `json:"Name"`
	AssetTag           string `json:"AssetTag"`
	SerialNumber       string `json:"SerialNumber"`
	PartNumber         string `json:"PartNumber"`
	Model              string `json:"Model"`
	ChassisType        string `json:"ChassisType"`
	Manufacturer       string `json:"Manufacturer"`
	Description        string `json:"Description"`
	SKU                string `json:"SKU"`
	PowerState         string `json:"PowerState"`
	EnvironmentalClass string `json:"EnvironmentalClass"`
	IndicatorLED       string `json:"IndicatorLED"`
	Assembly           Odata  `json:"Assembly"`
	Location           *struct {
		Info       string `json:"Info"`
		InfoFormat string `json:"InfoFormat"`
		Placement  struct {
			Rack string `json:"Rack"`
			Row  string `json:"Row"`
		} `json:"Placement"`
		PostalAddress struct {
			Building string `json:"Building"`
			Room     string `json:"Room"`
		} `json:"PostalAddress"`
	} `json:"Location"`
	Memory           Odata  `json:"Memory"`
	NetworkAdapters  Odata  `json:"NetworkAdapters"`
	PCIeSlots        Odata  `json:"PCIeSlots"`
	Power            Odata  `json:"Power"`
	Sensors          Odata  `json:"Sensors"`
	Status           Status `json:"Status"`
	Thermal          Odata  `json:"Thermal"`
	PhysicalSecurity *struct {
		IntrusionSensor       string `json:"IntrusionSensor"`
		IntrusionSensorNumber int    `json:"IntrusionSensorNumber"`
		IntrusionSensorReArm  string `json:"IntrusionSensorReArm"`
	} `json:"PhysicalSecurity"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(hostConfig *config.HostConfig) (*Client, error)

func (*Client) RefreshIdracSel

func (client *Client) RefreshIdracSel(mc *Collector, ch chan<- prometheus.Metric) error

func (*Client) RefreshMemory

func (client *Client) RefreshMemory(mc *Collector, ch chan<- prometheus.Metric) error

func (*Client) RefreshNetwork added in v1.1.0

func (client *Client) RefreshNetwork(mc *Collector, ch chan<- prometheus.Metric) error

func (*Client) RefreshPower

func (client *Client) RefreshPower(mc *Collector, ch chan<- prometheus.Metric) error

func (*Client) RefreshSensors

func (client *Client) RefreshSensors(mc *Collector, ch chan<- prometheus.Metric) error

func (*Client) RefreshStorage

func (client *Client) RefreshStorage(mc *Collector, ch chan<- prometheus.Metric) error

func (*Client) RefreshSystem

func (client *Client) RefreshSystem(mc *Collector, ch chan<- prometheus.Metric) error

type Collector

type Collector struct {

	// Exporter
	ExporterBuildInfo         *prometheus.Desc
	ExporterScrapeErrorsTotal *prometheus.Desc

	// System
	SystemPowerOn      *prometheus.Desc
	SystemHealth       *prometheus.Desc
	SystemIndicatorLED *prometheus.Desc
	SystemMemorySize   *prometheus.Desc
	SystemCpuCount     *prometheus.Desc
	SystemBiosInfo     *prometheus.Desc
	SystemMachineInfo  *prometheus.Desc

	// Sensors
	SensorsTemperature *prometheus.Desc
	SensorsFanHealth   *prometheus.Desc
	SensorsFanSpeed    *prometheus.Desc

	// Power supply
	PowerSupplyHealth            *prometheus.Desc
	PowerSupplyOutputWatts       *prometheus.Desc
	PowerSupplyInputWatts        *prometheus.Desc
	PowerSupplyCapacityWatts     *prometheus.Desc
	PowerSupplyInputVoltage      *prometheus.Desc
	PowerSupplyEfficiencyPercent *prometheus.Desc

	// Power control
	PowerControlConsumedWatts    *prometheus.Desc
	PowerControlCapacityWatts    *prometheus.Desc
	PowerControlMinConsumedWatts *prometheus.Desc
	PowerControlMaxConsumedWatts *prometheus.Desc
	PowerControlAvgConsumedWatts *prometheus.Desc
	PowerControlInterval         *prometheus.Desc

	// System event log
	SelEntry *prometheus.Desc

	// Disk drives
	DriveInfo     *prometheus.Desc
	DriveHealth   *prometheus.Desc
	DriveCapacity *prometheus.Desc
	DriveLifeLeft *prometheus.Desc

	// Memory modules
	MemoryModuleInfo     *prometheus.Desc
	MemoryModuleHealth   *prometheus.Desc
	MemoryModuleCapacity *prometheus.Desc
	MemoryModuleSpeed    *prometheus.Desc

	// Network
	NetworkInterfaceHealth *prometheus.Desc
	NetworkPortHealth      *prometheus.Desc
	NetworkPortSpeed       *prometheus.Desc
	NetworkPortLinkUp      *prometheus.Desc
	// contains filtered or unexported fields
}

func GetCollector

func GetCollector(target string) (*Collector, error)

func NewCollector

func NewCollector() *Collector

func (*Collector) Collect

func (collector *Collector) Collect(ch chan<- prometheus.Metric)

func (*Collector) Describe

func (collector *Collector) Describe(ch chan<- *prometheus.Desc)

func (*Collector) Gather

func (collector *Collector) Gather() (string, error)

func (*Collector) NewDriveCapacity

func (mc *Collector) NewDriveCapacity(id string, capacity int) prometheus.Metric

func (*Collector) NewDriveHealth

func (mc *Collector) NewDriveHealth(id, health string) prometheus.Metric

func (*Collector) NewDriveInfo

func (mc *Collector) NewDriveInfo(id, name, manufacturer, model, serial, mediatype, protocol string, slot int) prometheus.Metric

func (*Collector) NewDriveLifeLeft added in v1.1.0

func (mc *Collector) NewDriveLifeLeft(id string, lifeLeft int) prometheus.Metric

func (*Collector) NewMemoryModuleCapacity

func (mc *Collector) NewMemoryModuleCapacity(id string, capacity int) prometheus.Metric

func (*Collector) NewMemoryModuleHealth

func (mc *Collector) NewMemoryModuleHealth(id, health string) prometheus.Metric

func (*Collector) NewMemoryModuleInfo

func (mc *Collector) NewMemoryModuleInfo(id, name, manufacturer, memtype, serial, ecc string, rank int) prometheus.Metric

func (*Collector) NewMemoryModuleSpeed

func (mc *Collector) NewMemoryModuleSpeed(id string, speed int) prometheus.Metric

func (*Collector) NewNetworkInterfaceHealth added in v1.1.0

func (mc *Collector) NewNetworkInterfaceHealth(id, health string) prometheus.Metric

func (*Collector) NewNetworkPortHealth added in v1.1.0

func (mc *Collector) NewNetworkPortHealth(iface, id, health string) prometheus.Metric

func (*Collector) NewNetworkPortLinkUp added in v1.1.0

func (mc *Collector) NewNetworkPortLinkUp(iface, id, status string) prometheus.Metric

func (*Collector) NewNetworkPortSpeed added in v1.1.0

func (mc *Collector) NewNetworkPortSpeed(iface, id string, speed int) prometheus.Metric

func (*Collector) NewPowerControlAvgConsumedWatts

func (mc *Collector) NewPowerControlAvgConsumedWatts(value float64, id, name string) prometheus.Metric

func (*Collector) NewPowerControlCapacityWatts

func (mc *Collector) NewPowerControlCapacityWatts(value float64, id, name string) prometheus.Metric

func (*Collector) NewPowerControlConsumedWatts

func (mc *Collector) NewPowerControlConsumedWatts(value float64, id, name string) prometheus.Metric

func (*Collector) NewPowerControlInterval

func (mc *Collector) NewPowerControlInterval(interval int, id, name string) prometheus.Metric

func (*Collector) NewPowerControlMaxConsumedWatts

func (mc *Collector) NewPowerControlMaxConsumedWatts(value float64, id, name string) prometheus.Metric

func (*Collector) NewPowerControlMinConsumedWatts

func (mc *Collector) NewPowerControlMinConsumedWatts(value float64, id, name string) prometheus.Metric

func (*Collector) NewPowerSupplyCapacityWatts

func (mc *Collector) NewPowerSupplyCapacityWatts(value float64, id string) prometheus.Metric

func (*Collector) NewPowerSupplyEfficiencyPercent

func (mc *Collector) NewPowerSupplyEfficiencyPercent(value float64, id string) prometheus.Metric

func (*Collector) NewPowerSupplyHealth added in v1.1.0

func (mc *Collector) NewPowerSupplyHealth(health, id string) prometheus.Metric

func (*Collector) NewPowerSupplyInputVoltage

func (mc *Collector) NewPowerSupplyInputVoltage(value float64, id string) prometheus.Metric

func (*Collector) NewPowerSupplyInputWatts

func (mc *Collector) NewPowerSupplyInputWatts(value float64, id string) prometheus.Metric

func (*Collector) NewPowerSupplyOutputWatts

func (mc *Collector) NewPowerSupplyOutputWatts(value float64, id string) prometheus.Metric

func (*Collector) NewSelEntry

func (mc *Collector) NewSelEntry(id string, message string, component string, severity string, created time.Time) prometheus.Metric

func (*Collector) NewSensorsFanHealth added in v1.1.0

func (mc *Collector) NewSensorsFanHealth(id, name, health string) prometheus.Metric

func (*Collector) NewSensorsFanSpeed

func (mc *Collector) NewSensorsFanSpeed(speed float64, id, name, units string) prometheus.Metric

func (*Collector) NewSensorsTemperature

func (mc *Collector) NewSensorsTemperature(temperature float64, id, name, units string) prometheus.Metric

func (*Collector) NewSystemBiosInfo

func (mc *Collector) NewSystemBiosInfo(version string) prometheus.Metric

func (*Collector) NewSystemCpuCount

func (mc *Collector) NewSystemCpuCount(cpus int, model string) prometheus.Metric

func (*Collector) NewSystemHealth

func (mc *Collector) NewSystemHealth(health string) prometheus.Metric

func (*Collector) NewSystemIndicatorLED

func (mc *Collector) NewSystemIndicatorLED(state string) prometheus.Metric

func (*Collector) NewSystemMachineInfo

func (mc *Collector) NewSystemMachineInfo(manufacturer, model, serial, sku string) prometheus.Metric

func (*Collector) NewSystemMemorySize

func (mc *Collector) NewSystemMemorySize(memory float64) prometheus.Metric

func (*Collector) NewSystemPowerOn

func (mc *Collector) NewSystemPowerOn(state string) prometheus.Metric

type Drive

type Drive struct {
	Id                string  `json:"Id"`
	Name              string  `json:"Name"`
	Description       string  `json:"Description"`
	MediaType         string  `json:"MediaType"`
	Manufacturer      string  `json:"Manufacturer"`
	Model             string  `json:"Model"`
	CapacityBytes     int     `json:"CapacityBytes"`
	BlockSizeBytes    int     `json:"BlockSizeBytes"`
	CapableSpeedGbs   float64 `json:"CapableSpeedGbs"`
	Status            Status  `json:"Status"`
	SerialNumber      string  `json:"SerialNumber"`
	Protocol          string  `json:"Protocol"`
	Revision          string  `json:"Revision"`
	PartNumber        string  `json:"PartNumber"`
	PredictedLifeLeft int     `json:"PredictedMediaLifeLeftPercent"`
	RotationSpeedRPM  int     `json:"RotationSpeedRPM"`
	PhysicalLocation  *struct {
		PartLocation *struct {
			LocationOrdinalValue int `json:"LocationOrdinalValue"`
		} `json:"PartLocation"`
	} `json:"PhysicalLocation"`
	// iLO 4
	CapacityMiB                       int    `json:"CapacityMiB"`
	InterfaceType                     string `json:"InterfaceType"`
	SSDEnduranceUtilizationPercentage int    `json:"SSDEnduranceUtilizationPercentage"`
}

func (*Drive) GetSlot

func (d *Drive) GetSlot() int

type Fan

type Fan struct {
	Name                      string       `json:"Name"`
	FanName                   string       `json:"FanName"`
	MemberId                  string       `json:"MemberId"`
	Assembly                  Odata        `json:"Assembly"`
	HotPluggable              bool         `json:"HotPluggable"`
	MaxReadingRange           any          `json:"MaxReadingRange"`
	MinReadingRange           any          `json:"MinReadingRange"`
	PhysicalContext           string       `json:"PhysicalContext"`
	Reading                   float64      `json:"Reading"`
	CurrentReading            float64      `json:"CurrentReading"`
	Units                     string       `json:"Units"`
	ReadingUnits              string       `json:"ReadingUnits"`
	Redundancy                []Redundancy `json:"Redundancy"`
	Status                    Status       `json:"Status"`
	LowerThresholdCritical    any          `json:"LowerThresholdCritical"`
	LowerThresholdFatal       any          `json:"LowerThresholdFatal"`
	LowerThresholdNonCritical any          `json:"LowerThresholdNonCritical"`
	UpperThresholdCritical    any          `json:"UpperThresholdCritical"`
	UpperThresholdFatal       any          `json:"UpperThresholdFatal"`
	UpperThresholdNonCritical any          `json:"UpperThresholdNonCritical"`
}

func (*Fan) GetId added in v1.2.0

func (f *Fan) GetId(fallback int) string

func (*Fan) GetName

func (f *Fan) GetName() string

func (*Fan) GetReading

func (f *Fan) GetReading() float64

func (*Fan) GetUnits

func (f *Fan) GetUnits() string

type GroupResponse

type GroupResponse struct {
	Name        string  `json:"Name"`
	Description string  `json:"Description"`
	Members     []Odata `json:"Members"`
}

type IdracSelResponse

type IdracSelResponse struct {
	Name        string `json:"Name"`
	Description string `json:"Description"`
	Members     []struct {
		Id           string    `json:"Id"`
		Name         string    `json:"Name"`
		Created      time.Time `json:"Created"`
		Description  string    `json:"Description"`
		EntryCode    xstring   `json:"EntryCode"`
		EntryType    string    `json:"EntryType"`
		Message      string    `json:"Message"`
		MessageArgs  []any     `json:"MessageArgs"`
		MessageId    string    `json:"MessageId"`
		SensorNumber int       `json:"SensorNumber"`
		SensorType   xstring   `json:"SensorType"`
		Severity     string    `json:"Severity"`
	} `json:"Members"`
}

type Memory

type Memory struct {
	Id                string `json:"Id"`
	Name              string `json:"Name"`
	Description       string `json:"Description"`
	Manufacturer      string `json:"Manufacturer"`
	ErrorCorrection   string `json:"ErrorCorrection"`
	MemoryDeviceType  string `json:"MemoryDeviceType"`
	AllowedSpeedsMHz  []int  `json:"AllowedSpeedsMHz"`
	OperatingSpeedMhz int    `json:"OperatingSpeedMhz"`
	CapacityMiB       int    `json:"CapacityMiB"`
	PartNumber        string `json:"PartNumber"`
	SerialNumber      string `json:"SerialNumber"`
	DeviceLocator     string `json:"DeviceLocator"`
	RankCount         int    `json:"RankCount"`
	BusWidthBits      int    `json:"BusWidthBits"`
	DataWidthBits     int    `json:"DataWidthBits"`
	Status            Status `json:"Status"`
	// iLO 4
	HPMemoryType        string `json:"HPMemoryType"`
	DIMMStatus          string `json:"DIMMStatus"`
	DIMMType            string `json:"DIMMType"`
	MaximumFrequencyMHz int    `json:"MaximumFrequencyMHz"`
	Rank                int    `json:"Rank"`
	SizeMB              int    `json:"SizeMB"`
}

type NetworkInterface added in v1.1.0

type NetworkInterface struct {
	Id           string `json:"Id"`
	Name         string `json:"Name"`
	Description  string `json:"Description"`
	Status       Status `json:"Status"`
	NetworkPorts Odata  `json:"NetworkPorts"`
	Ports        Odata  `json:"Ports"`
}

func (*NetworkInterface) GetPorts added in v1.1.0

func (n *NetworkInterface) GetPorts() string

type NetworkPort added in v1.1.0

type NetworkPort struct {
	Id                        string `json:"Id"`
	Name                      string `json:"Name"`
	Description               string `json:"Description"`
	LinkStatus                string `json:"LinkStatus"`
	CurrentLinkSpeedMbps      int    `json:"CurrentLinkSpeedMbps"`
	CurrentSpeedGbps          int    `json:"CurrentSpeedGbps"`
	Status                    Status `json:"Status"`
	SupportedLinkCapabilities []struct {
		LinkNetworkTechnology string `json:"LinkNetworkTechnology"`
		LinkSpeedMbps         int    `json:"LinkSpeedMbps"`
	} `json:"SupportedLinkCapabilities"`
}

func (*NetworkPort) GetSpeed added in v1.1.0

func (n *NetworkPort) GetSpeed() int

type Odata

type Odata struct {
	OdataContext string `json:"@odata.context"`
	OdataId      string `json:"@odata.id"`
	OdataType    string `json:"@odata.type"`
}

Odata is a common structure to unmarshal Open Data Protocol metadata

type PowerControlUnit

type PowerControlUnit struct {
	Name                string  `json:"Name"`
	Id                  string  `json:"Id"`
	PowerAllocatedWatts float64 `json:"PowerAllocatedWatts"`
	PowerAvailableWatts float64 `json:"PowerAvailableWatts"`
	PowerCapacityWatts  float64 `json:"PowerCapacityWatts"`
	PowerConsumedWatts  float64 `json:"PowerConsumedWatts"`
	PowerRequestedWatts float64 `json:"PowerRequestedWatts"`
	PowerLimit          *struct {
		CorrectionInMs int    `json:"CorrectionInMs"`
		LimitException string `json:"LimitException"`
		LimitInWatts   int    `json:"LimitInWatts"`
	} `json:"PowerLimit"`
	PowerMetrics *struct {
		AverageConsumedWatts float64 `json:"AverageConsumedWatts"`
		IntervalInMinutes    int     `json:"IntervalInMin"`
		MaxConsumedWatts     float64 `json:"MaxConsumedWatts"`
		MinConsumedWatts     float64 `json:"MinConsumedWatts"`
	} `json:"PowerMetrics"`
}

type PowerResponse

type PowerResponse struct {
	Name          string             `json:"Name"`
	Description   string             `json:"Description"`
	PowerControl  []PowerControlUnit `json:"PowerControl"`
	PowerSupplies []PowerSupplyUnit  `json:"PowerSupplies"`
	Redundancy    []Redundancy       `json:"Redundancy"`
	Voltages      []struct {
		Name            string `json:"Name"`
		SensorNumber    int    `json:"SensorNumber"`
		PhysicalContext string `json:"PhysicalContext"`
		Status          Status `json:"Status"`
		// These should be float64, but they have been seen reported as "N/A" so we use the any type
		ReadingVolts              any `json:"ReadingVolts"`
		LowerThresholdCritical    any `json:"LowerThresholdCritical"`
		LowerThresholdFatal       any `json:"LowerThresholdFatal"`
		LowerThresholdNonCritical any `json:"LowerThresholdNonCritical"`
		UpperThresholdCritical    any `json:"UpperThresholdCritical"`
		UpperThresholdFatal       any `json:"UpperThresholdFatal"`
		UpperThresholdNonCritical any `json:"UpperThresholdNonCritical"`
	} `json:"Voltages"`
}

type PowerSupplyUnit

type PowerSupplyUnit struct {
	Name            string `json:"Name"`
	Assembly        Odata  `json:"Assembly"`
	FirmwareVersion string `json:"FirmwareVersion"`
	InputRanges     []struct {
		InputType          string  `json:"InputType"`
		MaximumFrequencyHz float64 `json:"MaximumFrequencyHz"`
		MaximumVoltage     float64 `json:"MaximumVoltage"`
		MinimumFrequencyHz float64 `json:"MinimumFrequencyHz"`
		MinimumVoltage     float64 `json:"MinimumVoltage"`
		OutputWattage      float64 `json:"OutputWattage"`
	} `json:"InputRanges"`
	HotPluggable         bool         `json:"HotPluggable"`
	EfficiencyPercent    float64      `json:"EfficiencyPercent"`
	PowerOutputWatts     float64      `json:"PowerOutputWatts"`
	LastPowerOutputWatts float64      `json:"LastPowerOutputWatts"`
	PowerInputWatts      float64      `json:"PowerInputWatts"`
	PowerCapacityWatts   float64      `json:"PowerCapacityWatts"`
	LineInputVoltage     float64      `json:"LineInputVoltage"`
	LineInputVoltageType string       `json:"LineInputVoltageType"`
	Manufacturer         string       `json:"Manufacturer"`
	Model                string       `json:"Model"`
	PartNumber           string       `json:"PartNumber"`
	PowerSupplyType      string       `json:"PowerSupplyType"`
	SerialNumber         string       `json:"SerialNumber"`
	SparePartNumber      string       `json:"SparePartNumber"`
	Status               Status       `json:"Status"`
	Redundancy           []Redundancy `json:"Redundancy"`
}

func (*PowerSupplyUnit) GetOutputPower

func (psu *PowerSupplyUnit) GetOutputPower() float64

type Redundancy

type Redundancy struct {
	Name              string  `json:"Name"`
	MaxNumSupported   int     `json:"MaxNumSupported"`
	MinNumNeeded      int     `json:"MinNumNeeded"`
	Mode              xstring `json:"Mode"`
	RedundancyEnabled bool    `json:"RedundancyEnabled"`
	RedundancySet     []any   `json:"RedundancySet"`
	Status            Status  `json:"Status"`
}

Redundancy is a common structure used in any entity with redundancy

type Status

type Status struct {
	Health       string `json:"Health"`
	HealthRollup string `json:"HealthRollup"`
	State        string `json:"State"`
}

Status is a common structure used in any entity with a status

type StorageController

type StorageController struct {
	Id                 string  `json:"Id"`
	Name               string  `json:"Name"`
	Description        string  `json:"Description"`
	Drives             []Odata `json:"Drives"`
	Status             Status  `json:"Status"`
	StorageControllers []struct {
		FirmwareVersion string  `json:"FirmwareVersion"`
		Manufacturer    string  `json:"Manufacturer"`
		Model           string  `json:"Model"`
		Name            string  `json:"Name"`
		SpeedGbps       float64 `json:"SpeedGbps"`
		Status          Status  `json:"Status"`
	}
}

type SystemResponse

type SystemResponse struct {
	IndicatorLED string `json:"IndicatorLED"`
	Manufacturer string `json:"Manufacturer"`
	AssetTag     string `json:"AssetTag"`
	PartNumber   string `json:"PartNumber"`
	Description  string `json:"Description"`
	HostName     string `json:"HostName"`
	PowerState   string `json:"PowerState"`
	Bios         Odata  `json:"Bios"`
	BiosVersion  string `json:"BiosVersion"`
	Boot         *struct {
		BootOptions                                    Odata    `json:"BootOptions"`
		Certificates                                   Odata    `json:"Certificates"`
		BootOrder                                      []string `json:"BootOrder"`
		BootSourceOverrideEnabled                      string   `json:"BootSourceOverrideEnabled"`
		BootSourceOverrideMode                         string   `json:"BootSourceOverrideMode"`
		BootSourceOverrideTarget                       string   `json:"BootSourceOverrideTarget"`
		UefiTargetBootSourceOverride                   any      `json:"UefiTargetBootSourceOverride"`
		BootSourceOverrideTargetRedfishAllowableValues []string `json:"BootSourceOverrideTarget@Redfish.AllowableValues"`
	} `json:"Boot"`
	EthernetInterfaces Odata `json:"EthernetInterfaces"`
	HostWatchdogTimer  *struct {
		FunctionEnabled bool   `json:"FunctionEnabled"`
		Status          Status `json:"Status"`
		TimeoutAction   string `json:"TimeoutAction"`
	} `json:"HostWatchdogTimer"`
	HostingRoles  []any `json:"HostingRoles"`
	Memory        Odata `json:"Memory"`
	MemorySummary *struct {
		MemoryMirroring      string  `json:"MemoryMirroring"`
		Status               Status  `json:"Status"`
		TotalSystemMemoryGiB float64 `json:"TotalSystemMemoryGiB"`
	} `json:"MemorySummary"`
	Model             string  `json:"Model"`
	Name              string  `json:"Name"`
	NetworkInterfaces Odata   `json:"NetworkInterfaces"`
	PCIeDevices       []Odata `json:"PCIeDevices"`
	PCIeFunctions     []Odata `json:"PCIeFunctions"`
	ProcessorSummary  *struct {
		Count                 int    `json:"Count"`
		LogicalProcessorCount int    `json:"LogicalProcessorCount"`
		Model                 string `json:"Model"`
		Status                Status `json:"Status"`
	} `json:"ProcessorSummary"`
	Processors     Odata  `json:"Processors"`
	SKU            string `json:"SKU"`
	SecureBoot     Odata  `json:"SecureBoot"`
	SerialNumber   string `json:"SerialNumber"`
	SimpleStorage  Odata  `json:"SimpleStorage"`
	Status         Status `json:"Status"`
	Storage        Odata  `json:"Storage"`
	SystemType     string `json:"SystemType"`
	TrustedModules []struct {
		FirmwareVersion string `json:"FirmwareVersion"`
		InterfaceType   string `json:"InterfaceType"`
		Status          Status `json:"Status"`
	} `json:"TrustedModules"`
}

type Temperature

type Temperature struct {
	Name                      string  `json:"Name"`
	Number                    int     `json:"Number"`
	MemberId                  string  `json:"MemberId"`
	ReadingCelsius            float64 `json:"ReadingCelsius"`
	MaxReadingRangeTemp       float64 `json:"MaxReadingRangeTemp"`
	MinReadingRangeTemp       float64 `json:"MinReadingRangeTemp"`
	PhysicalContext           string  `json:"PhysicalContext"`
	LowerThresholdCritical    float64 `json:"LowerThresholdCritical"`
	LowerThresholdFatal       float64 `json:"LowerThresholdFatal"`
	LowerThresholdNonCritical float64 `json:"LowerThresholdNonCritical"`
	UpperThresholdCritical    float64 `json:"UpperThresholdCritical"`
	UpperThresholdFatal       float64 `json:"UpperThresholdFatal"`
	UpperThresholdNonCritical float64 `json:"UpperThresholdNonCritical"`
	Status                    Status  `json:"Status"`
}

func (*Temperature) GetId added in v1.2.0

func (t *Temperature) GetId(fallback int) string

type ThermalResponse

type ThermalResponse struct {
	Name         string        `json:"Name"`
	Description  string        `json:"Description"`
	Fans         []Fan         `json:"Fans"`
	Temperatures []Temperature `json:"Temperatures"`
	Redundancy   []Redundancy  `json:"Redundancy"`
}

type V1Response

type V1Response struct {
	RedfishVersion     string `json:"RedfishVersion"`
	Name               string `json:"Name"`
	Product            string `json:"Product"`
	Vendor             string `json:"Vendor"`
	Description        string `json:"Description"`
	AccountService     Odata  `json:"AccountService"`
	CertificateService Odata  `json:"CertificateService"`
	Chassis            Odata  `json:"Chassis"`
	EventService       Odata  `json:"EventService"`
	Fabrics            Odata  `json:"Fabrics"`
	JobService         Odata  `json:"JobService"`
	JsonSchemas        Odata  `json:"JsonSchemas"`
	Managers           Odata  `json:"Managers"`
	Registries         Odata  `json:"Registries"`
	SessionService     Odata  `json:"SessionService"`
	Systems            Odata  `json:"Systems"`
	Tasks              Odata  `json:"Tasks"`
	TelemetryService   Odata  `json:"TelemetryService"`
	UpdateService      Odata  `json:"UpdateService"`
}

V1Response represents structure of the response body from /redfish/v1

Jump to

Keyboard shortcuts

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