monitors: Remove stats that have been dead since Luminous

Ceph commit reference e170405fd873723bec6ce691afad82641bab2ef1
This commit is contained in:
Joshua Baergen 2023-12-15 15:50:21 -07:00
parent 545836d5da
commit c01b5fb37e
2 changed files with 0 additions and 394 deletions

View File

@ -37,23 +37,6 @@ type MonitorCollector struct {
conn Conn conn Conn
logger *logrus.Logger logger *logrus.Logger
// TotalKBs display the total storage a given monitor node has.
TotalKBs *prometheus.GaugeVec
// UsedKBs depict how much of the total storage our monitor process
// has utilized.
UsedKBs *prometheus.GaugeVec
// AvailKBs shows the space left unused.
AvailKBs *prometheus.GaugeVec
// PercentAvail shows the amount of unused space as a percentage of total
// space.
PercentAvail *prometheus.GaugeVec
// Store exposes information about internal backing store.
Store Store
// ClockSkew shows how far the monitor clocks have skewed from each other. This // ClockSkew shows how far the monitor clocks have skewed from each other. This
// is an important metric because the functioning of Ceph's paxos depends on // is an important metric because the functioning of Ceph's paxos depends on
// the clocks being aligned as close to each other as possible. // the clocks being aligned as close to each other as possible.
@ -73,23 +56,6 @@ type MonitorCollector struct {
CephFeatures *prometheus.GaugeVec CephFeatures *prometheus.GaugeVec
} }
// Store displays information about Monitor's FileStore. It is responsible for
// storing all the meta information about the cluster, including monmaps, osdmaps,
// pgmaps, etc. along with logs and other data.
type Store struct {
// TotalBytes displays the current size of the FileStore.
TotalBytes *prometheus.GaugeVec
// SSTBytes shows the amount used by LevelDB's sorted-string tables.
SSTBytes *prometheus.GaugeVec
// LogBytes shows the amount used by logs.
LogBytes *prometheus.GaugeVec
// MiscBytes shows the amount used by miscellaneous information.
MiscBytes *prometheus.GaugeVec
}
// NewMonitorCollector creates an instance of the MonitorCollector and instantiates // NewMonitorCollector creates an instance of the MonitorCollector and instantiates
// the individual metrics that show information about the monitor processes. // the individual metrics that show information about the monitor processes.
func NewMonitorCollector(exporter *Exporter) *MonitorCollector { func NewMonitorCollector(exporter *Exporter) *MonitorCollector {
@ -100,80 +66,6 @@ func NewMonitorCollector(exporter *Exporter) *MonitorCollector {
conn: exporter.Conn, conn: exporter.Conn,
logger: exporter.Logger, logger: exporter.Logger,
TotalKBs: prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: cephNamespace,
Name: "monitor_capacity_bytes",
Help: "Total storage capacity of the monitor node",
ConstLabels: labels,
},
[]string{"monitor"},
),
UsedKBs: prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: cephNamespace,
Name: "monitor_used_bytes",
Help: "Storage of the monitor node that is currently allocated for use",
ConstLabels: labels,
},
[]string{"monitor"},
),
AvailKBs: prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: cephNamespace,
Name: "monitor_avail_bytes",
Help: "Total unused storage capacity that the monitor node has left",
ConstLabels: labels,
},
[]string{"monitor"},
),
PercentAvail: prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: cephNamespace,
Name: "monitor_avail_percent",
Help: "Percentage of total unused storage capacity that the monitor node has left",
ConstLabels: labels,
},
[]string{"monitor"},
),
Store: Store{
TotalBytes: prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: cephNamespace,
Name: "monitor_store_capacity_bytes",
Help: "Total capacity of the FileStore backing the monitor daemon",
ConstLabels: labels,
},
[]string{"monitor"},
),
SSTBytes: prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: cephNamespace,
Name: "monitor_store_sst_bytes",
Help: "Capacity of the FileStore used only for raw SSTs",
ConstLabels: labels,
},
[]string{"monitor"},
),
LogBytes: prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: cephNamespace,
Name: "monitor_store_log_bytes",
Help: "Capacity of the FileStore used only for logging",
ConstLabels: labels,
},
[]string{"monitor"},
),
MiscBytes: prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: cephNamespace,
Name: "monitor_store_misc_bytes",
Help: "Capacity of the FileStore used only for storing miscellaneous information",
ConstLabels: labels,
},
[]string{"monitor"},
),
},
ClockSkew: prometheus.NewGaugeVec( ClockSkew: prometheus.NewGaugeVec(
prometheus.GaugeOpts{ prometheus.GaugeOpts{
Namespace: cephNamespace, Namespace: cephNamespace,
@ -223,16 +115,6 @@ func NewMonitorCollector(exporter *Exporter) *MonitorCollector {
func (m *MonitorCollector) collectorList() []prometheus.Collector { func (m *MonitorCollector) collectorList() []prometheus.Collector {
return []prometheus.Collector{ return []prometheus.Collector{
m.TotalKBs,
m.UsedKBs,
m.AvailKBs,
m.PercentAvail,
m.Store.TotalBytes,
m.Store.SSTBytes,
m.Store.LogBytes,
m.Store.MiscBytes,
m.ClockSkew, m.ClockSkew,
m.Latency, m.Latency,
m.CephVersions, m.CephVersions,
@ -255,32 +137,6 @@ type cephTimeSyncStatus struct {
} }
type cephMonitorStats struct { type cephMonitorStats struct {
Health struct {
Health struct {
HealthServices []struct {
Mons []struct {
Name string `json:"name"`
KBTotal json.Number `json:"kb_total"`
KBUsed json.Number `json:"kb_used"`
KBAvail json.Number `json:"kb_avail"`
AvailPercent json.Number `json:"avail_percent"`
StoreStats struct {
BytesTotal json.Number `json:"bytes_total"`
BytesSST json.Number `json:"bytes_sst"`
BytesLog json.Number `json:"bytes_log"`
BytesMisc json.Number `json:"bytes_misc"`
} `json:"store_stats"`
} `json:"mons"`
} `json:"health_services"`
} `json:"health"`
TimeChecks struct {
Mons []struct {
Name string `json:"name"`
Skew json.Number `json:"skew"`
Latency json.Number `json:"latency"`
} `json:"mons"`
} `json:"timechecks"`
} `json:"health"`
Quorum []int `json:"quorum"` Quorum []int `json:"quorum"`
} }
@ -397,81 +253,11 @@ func (m *MonitorCollector) collect() error {
} }
// Reset daemon specifc metrics; daemons can leave the cluster // Reset daemon specifc metrics; daemons can leave the cluster
m.TotalKBs.Reset()
m.UsedKBs.Reset()
m.AvailKBs.Reset()
m.PercentAvail.Reset()
m.Latency.Reset() m.Latency.Reset()
m.ClockSkew.Reset() m.ClockSkew.Reset()
m.CephVersions.Reset() m.CephVersions.Reset()
m.CephFeatures.Reset() m.CephFeatures.Reset()
for _, healthService := range stats.Health.Health.HealthServices {
for _, monstat := range healthService.Mons {
kbTotal, err := monstat.KBTotal.Float64()
if err != nil {
return err
}
m.TotalKBs.WithLabelValues(monstat.Name).Set(kbTotal * 1024)
kbUsed, err := monstat.KBUsed.Float64()
if err != nil {
return err
}
m.UsedKBs.WithLabelValues(monstat.Name).Set(kbUsed * 1024)
kbAvail, err := monstat.KBAvail.Float64()
if err != nil {
return err
}
m.AvailKBs.WithLabelValues(monstat.Name).Set(kbAvail * 1024)
percentAvail, err := monstat.AvailPercent.Float64()
if err != nil {
return err
}
m.PercentAvail.WithLabelValues(monstat.Name).Set(percentAvail)
storeBytes, err := monstat.StoreStats.BytesTotal.Float64()
if err != nil {
return err
}
m.Store.TotalBytes.WithLabelValues(monstat.Name).Set(storeBytes)
sstBytes, err := monstat.StoreStats.BytesSST.Float64()
if err != nil {
return err
}
m.Store.SSTBytes.WithLabelValues(monstat.Name).Set(sstBytes)
logBytes, err := monstat.StoreStats.BytesLog.Float64()
if err != nil {
return err
}
m.Store.LogBytes.WithLabelValues(monstat.Name).Set(logBytes)
miscBytes, err := monstat.StoreStats.BytesMisc.Float64()
if err != nil {
return err
}
m.Store.MiscBytes.WithLabelValues(monstat.Name).Set(miscBytes)
}
}
for _, monstat := range stats.Health.TimeChecks.Mons {
skew, err := monstat.Skew.Float64()
if err != nil {
return err
}
m.ClockSkew.WithLabelValues(monstat.Name).Set(skew)
latency, err := monstat.Latency.Float64()
if err != nil {
return err
}
m.Latency.WithLabelValues(monstat.Name).Set(latency)
}
for monNode, tstat := range timeStats.TimeChecks { for monNode, tstat := range timeStats.TimeChecks {
skew, err := tstat.Skew.Float64() skew, err := tstat.Skew.Float64()
if err != nil { if err != nil {

View File

@ -37,136 +37,6 @@ func TestMonitorCollector(t *testing.T) {
{ {
input: ` input: `
{ {
"health": {
"health": {
"health_services": [
{
"mons": [
{
"name": "test-mon01",
"kb_total": 412718256,
"kb_used": 1812852,
"kb_avail": 389917500,
"avail_percent": 94,
"last_updated": "2015-12-28 15:54:03.763348",
"store_stats": {
"bytes_total": 1781282079,
"bytes_sst": 1,
"bytes_log": 609694,
"bytes_misc": 1780672385,
"last_updated": "0.000000"
},
"health": "HEALTH_OK"
},
{
"name": "test-mon02",
"kb_total": 412718256,
"kb_used": 1875304,
"kb_avail": 389855048,
"avail_percent": 94,
"last_updated": "2015-12-28 15:53:53.808657",
"store_stats": {
"bytes_total": 1844348214,
"bytes_sst": 2,
"bytes_log": 871605,
"bytes_misc": 1843476609,
"last_updated": "0.000000"
},
"health": "HEALTH_OK"
},
{
"name": "test-mon03",
"kb_total": 412718256,
"kb_used": 2095356,
"kb_avail": 389634996,
"avail_percent": 94,
"last_updated": "2015-12-28 15:53:06.292749",
"store_stats": {
"bytes_total": 2069468587,
"bytes_sst": 3,
"bytes_log": 871605,
"bytes_misc": 2068596982,
"last_updated": "0.000000"
},
"health": "HEALTH_OK"
},
{
"name": "test-mon04",
"kb_total": 412718256,
"kb_used": 1726276,
"kb_avail": 390004076,
"avail_percent": 94,
"last_updated": "2015-12-28 15:53:10.770775",
"store_stats": {
"bytes_total": 1691972147,
"bytes_sst": 4,
"bytes_log": 871605,
"bytes_misc": 1691100542,
"last_updated": "0.000000"
},
"health": "HEALTH_OK"
},
{
"name": "test-mon05",
"kb_total": 412718256,
"kb_used": 1883228,
"kb_avail": 389847124,
"avail_percent": 94,
"last_updated": "2015-12-28 15:53:11.407033",
"store_stats": {
"bytes_total": 1852485942,
"bytes_sst": 5,
"bytes_log": 871605,
"bytes_misc": 1851614337,
"last_updated": "0.000000"
},
"health": "HEALTH_OK"
}
]
}
]
},
"timechecks": {
"epoch": 70,
"round": 3362,
"round_status": "finished",
"mons": [
{
"name": "test-mon01",
"skew": 0.000000,
"latency": 0.000000,
"health": "HEALTH_OK"
},
{
"name": "test-mon02",
"skew": -0.000002,
"latency": 0.000815,
"health": "HEALTH_OK"
},
{
"name": "test-mon03",
"skew": -0.000002,
"latency": 0.000829,
"health": "HEALTH_OK"
},
{
"name": "test-mon04",
"skew": -0.000019,
"latency": 0.000609,
"health": "HEALTH_OK"
},
{
"name": "test-mon05",
"skew": -0.000628,
"latency": 0.000659,
"health": "HEALTH_OK"
}
]
},
"summary": [],
"overall_status": "HEALTH_OK",
"detail": []
},
"fsid": "6C9BF03E-044E-4EEB-9C5F-145A54ECF7DB", "fsid": "6C9BF03E-044E-4EEB-9C5F-145A54ECF7DB",
"election_epoch": 70, "election_epoch": 70,
"quorum": [ "quorum": [
@ -213,57 +83,7 @@ func TestMonitorCollector(t *testing.T) {
`, `,
version: `{"version":"ceph version 16.2.11-22-wasd (1984a8c33225d70559cdf27dbab81e3ce153f6ac) pacific (stable)"}`, version: `{"version":"ceph version 16.2.11-22-wasd (1984a8c33225d70559cdf27dbab81e3ce153f6ac) pacific (stable)"}`,
regexes: []*regexp.Regexp{ regexes: []*regexp.Regexp{
regexp.MustCompile(`ceph_monitor_avail_bytes{cluster="ceph",monitor="test-mon01"} 3.9927552e`),
regexp.MustCompile(`ceph_monitor_avail_bytes{cluster="ceph",monitor="test-mon02"} 3.99211569152e`),
regexp.MustCompile(`ceph_monitor_avail_bytes{cluster="ceph",monitor="test-mon03"} 3.98986235904e`),
regexp.MustCompile(`ceph_monitor_avail_bytes{cluster="ceph",monitor="test-mon04"} 3.99364173824`),
regexp.MustCompile(`ceph_monitor_avail_bytes{cluster="ceph",monitor="test-mon05"} 3.99203454976e`),
regexp.MustCompile(`ceph_monitor_avail_percent{cluster="ceph",monitor="test-mon01"} 94`),
regexp.MustCompile(`ceph_monitor_avail_percent{cluster="ceph",monitor="test-mon02"} 94`),
regexp.MustCompile(`ceph_monitor_avail_percent{cluster="ceph",monitor="test-mon03"} 94`),
regexp.MustCompile(`ceph_monitor_avail_percent{cluster="ceph",monitor="test-mon04"} 94`),
regexp.MustCompile(`ceph_monitor_avail_percent{cluster="ceph",monitor="test-mon05"} 94`),
regexp.MustCompile(`ceph_monitor_clock_skew_seconds{cluster="ceph",monitor="test-mon01"} 0`),
regexp.MustCompile(`ceph_monitor_clock_skew_seconds{cluster="ceph",monitor="test-mon02"} -2e-06`),
regexp.MustCompile(`ceph_monitor_clock_skew_seconds{cluster="ceph",monitor="test-mon03"} -2e-06`),
regexp.MustCompile(`ceph_monitor_clock_skew_seconds{cluster="ceph",monitor="test-mon04"} -1.9e-05`),
regexp.MustCompile(`ceph_monitor_clock_skew_seconds{cluster="ceph",monitor="test-mon05"} -0.000628`),
regexp.MustCompile(`ceph_monitor_latency_seconds{cluster="ceph",monitor="test-mon01"} 0`),
regexp.MustCompile(`ceph_monitor_latency_seconds{cluster="ceph",monitor="test-mon02"} 0.000815`),
regexp.MustCompile(`ceph_monitor_latency_seconds{cluster="ceph",monitor="test-mon03"} 0.000829`),
regexp.MustCompile(`ceph_monitor_latency_seconds{cluster="ceph",monitor="test-mon04"} 0.000609`),
regexp.MustCompile(`ceph_monitor_latency_seconds{cluster="ceph",monitor="test-mon05"} 0.000659`),
regexp.MustCompile(`ceph_monitor_quorum_count{cluster="ceph"} 5`), regexp.MustCompile(`ceph_monitor_quorum_count{cluster="ceph"} 5`),
regexp.MustCompile(`ceph_monitor_store_log_bytes{cluster="ceph",monitor="test-mon01"} 609694`),
regexp.MustCompile(`ceph_monitor_store_log_bytes{cluster="ceph",monitor="test-mon02"} 871605`),
regexp.MustCompile(`ceph_monitor_store_log_bytes{cluster="ceph",monitor="test-mon03"} 871605`),
regexp.MustCompile(`ceph_monitor_store_log_bytes{cluster="ceph",monitor="test-mon04"} 871605`),
regexp.MustCompile(`ceph_monitor_store_log_bytes{cluster="ceph",monitor="test-mon05"} 871605`),
regexp.MustCompile(`ceph_monitor_store_misc_bytes{cluster="ceph",monitor="test-mon01"} 1.780672385e`),
regexp.MustCompile(`ceph_monitor_store_misc_bytes{cluster="ceph",monitor="test-mon02"} 1.843476609e`),
regexp.MustCompile(`ceph_monitor_store_misc_bytes{cluster="ceph",monitor="test-mon03"} 2.068596982e`),
regexp.MustCompile(`ceph_monitor_store_misc_bytes{cluster="ceph",monitor="test-mon04"} 1.691100542e`),
regexp.MustCompile(`ceph_monitor_store_misc_bytes{cluster="ceph",monitor="test-mon05"} 1.851614337e`),
regexp.MustCompile(`ceph_monitor_store_sst_bytes{cluster="ceph",monitor="test-mon01"} 1`),
regexp.MustCompile(`ceph_monitor_store_sst_bytes{cluster="ceph",monitor="test-mon02"} 2`),
regexp.MustCompile(`ceph_monitor_store_sst_bytes{cluster="ceph",monitor="test-mon03"} 3`),
regexp.MustCompile(`ceph_monitor_store_sst_bytes{cluster="ceph",monitor="test-mon04"} 4`),
regexp.MustCompile(`ceph_monitor_store_sst_bytes{cluster="ceph",monitor="test-mon05"} 5`),
regexp.MustCompile(`ceph_monitor_store_capacity_bytes{cluster="ceph",monitor="test-mon01"} 1.781282079e`),
regexp.MustCompile(`ceph_monitor_store_capacity_bytes{cluster="ceph",monitor="test-mon02"} 1.844348214e`),
regexp.MustCompile(`ceph_monitor_store_capacity_bytes{cluster="ceph",monitor="test-mon03"} 2.069468587e`),
regexp.MustCompile(`ceph_monitor_store_capacity_bytes{cluster="ceph",monitor="test-mon04"} 1.691972147e`),
regexp.MustCompile(`ceph_monitor_store_capacity_bytes{cluster="ceph",monitor="test-mon05"} 1.852485942e`),
regexp.MustCompile(`ceph_monitor_capacity_bytes{cluster="ceph",monitor="test-mon01"} 4.22623494144e`),
regexp.MustCompile(`ceph_monitor_capacity_bytes{cluster="ceph",monitor="test-mon02"} 4.22623494144e`),
regexp.MustCompile(`ceph_monitor_capacity_bytes{cluster="ceph",monitor="test-mon03"} 4.22623494144e`),
regexp.MustCompile(`ceph_monitor_capacity_bytes{cluster="ceph",monitor="test-mon04"} 4.22623494144e`),
regexp.MustCompile(`ceph_monitor_capacity_bytes{cluster="ceph",monitor="test-mon05"} 4.22623494144e`),
regexp.MustCompile(`ceph_monitor_used_bytes{cluster="ceph",monitor="test-mon01"} 1.856360448e`),
regexp.MustCompile(`ceph_monitor_used_bytes{cluster="ceph",monitor="test-mon02"} 1.920311296e`),
regexp.MustCompile(`ceph_monitor_used_bytes{cluster="ceph",monitor="test-mon03"} 2.145644544e`),
regexp.MustCompile(`ceph_monitor_used_bytes{cluster="ceph",monitor="test-mon04"} 1.767706624e`),
regexp.MustCompile(`ceph_monitor_used_bytes{cluster="ceph",monitor="test-mon05"} 1.928425472e`),
}, },
}, },
} { } {