mirror of
https://github.com/prometheus-community/smartctl_exporter.git
synced 2024-11-16 01:33:07 +01:00
965204547a
I've added the following metrics for the NVMe drives: smart_status, critical_warning, available_spare, media_errors
213 lines
3.8 KiB
Go
213 lines
3.8 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
)
|
|
|
|
var (
|
|
metricSmartctlVersion = prometheus.NewDesc(
|
|
"smartctl_version",
|
|
"smartctl version",
|
|
[]string{
|
|
"json_format_version",
|
|
"smartctl_version",
|
|
"svn_revision",
|
|
"build_info",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceModel = prometheus.NewDesc(
|
|
"smartctl_device",
|
|
"Device info",
|
|
[]string{
|
|
"device",
|
|
"interface",
|
|
"protocol",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
"ata_additional_product_id",
|
|
"firmware_version",
|
|
"ata_version",
|
|
"sata_version",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceCapacityBlocks = prometheus.NewDesc(
|
|
"smartctl_device_capacity_blocks",
|
|
"Device capacity in blocks",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceCapacityBytes = prometheus.NewDesc(
|
|
"smartctl_device_capacity_bytes",
|
|
"Device capacity in bytes",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceBlockSize = prometheus.NewDesc(
|
|
"smartctl_device_block_size",
|
|
"Device block size",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
"blocks_type",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceInterfaceSpeed = prometheus.NewDesc(
|
|
"smartctl_device_interface_speed",
|
|
"Device interface speed, bits per second",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
"speed_type",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceAttribute = prometheus.NewDesc(
|
|
"smartctl_device_attribute",
|
|
"Device attributes",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
"attribute_name",
|
|
"attribute_flags_short",
|
|
"attribute_flags_long",
|
|
"attribute_value_type",
|
|
"attribute_id",
|
|
},
|
|
nil,
|
|
)
|
|
metricDevicePowerOnSeconds = prometheus.NewDesc(
|
|
"smartctl_device_power_on_seconds",
|
|
"Device power on seconds",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceRotationRate = prometheus.NewDesc(
|
|
"smartctl_device_rotation_rate",
|
|
"Device rotation rate",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceTemperature = prometheus.NewDesc(
|
|
"smartctl_device_temperature",
|
|
"Device temperature celsius",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
"temperature_type",
|
|
},
|
|
nil,
|
|
)
|
|
metricDevicePowerCycleCount = prometheus.NewDesc(
|
|
"smartctl_device_power_cycle_count",
|
|
"Device power cycle count",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceExitStatus = prometheus.NewDesc(
|
|
"smartctl_device_smartctl_exit_status",
|
|
"Exit status of smartctl on device",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
metricDeviceStatistics = prometheus.NewDesc(
|
|
"smartctl_device_statistics",
|
|
"Device statistics",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
"statistic_table",
|
|
"statistic_name",
|
|
"statistic_flags_short",
|
|
"statistic_flags_long",
|
|
},
|
|
nil,
|
|
)
|
|
metricCriticalWarning = prometheus.NewDesc(
|
|
"critical_warning",
|
|
"Critical warning counter",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
metricAvailableSpare = prometheus.NewDesc(
|
|
"available_spare",
|
|
"Available spare",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
metricMediaErrors = prometheus.NewDesc(
|
|
"media_errors",
|
|
"Media errors counter",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
metricSmartStatus = prometheus.NewDesc(
|
|
"smart_status",
|
|
"Smart status",
|
|
[]string{
|
|
"device",
|
|
"model_family",
|
|
"model_name",
|
|
"serial_number",
|
|
},
|
|
nil,
|
|
)
|
|
)
|