85 lines
1.9 KiB
Go
85 lines
1.9 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"github.com/prometheus/client_golang/prometheus"
|
||
|
)
|
||
|
|
||
|
type ResticMetrics struct {
|
||
|
JobRunTime *prometheus.GaugeVec
|
||
|
JobRunDuration *prometheus.GaugeVec
|
||
|
SnapshotCount *prometheus.GaugeVec
|
||
|
LatestSnapshotTime *prometheus.GaugeVec
|
||
|
LatestSnapshotSize *prometheus.GaugeVec
|
||
|
}
|
||
|
|
||
|
func InitMetrics() *ResticMetrics {
|
||
|
labelNames := []string{"job"}
|
||
|
|
||
|
metrics := &ResticMetrics{
|
||
|
JobRunTime: prometheus.NewGaugeVec(
|
||
|
prometheus.GaugeOpts{
|
||
|
Name: "job_run_time",
|
||
|
Help: "time that a job was run",
|
||
|
Namespace: "",
|
||
|
Subsystem: "",
|
||
|
ConstLabels: nil,
|
||
|
},
|
||
|
labelNames,
|
||
|
),
|
||
|
JobRunDuration: prometheus.NewGaugeVec(
|
||
|
prometheus.GaugeOpts{
|
||
|
Name: "job_run_duration",
|
||
|
Help: "time it took for the last job run",
|
||
|
Namespace: "",
|
||
|
Subsystem: "",
|
||
|
ConstLabels: nil,
|
||
|
},
|
||
|
labelNames,
|
||
|
),
|
||
|
SnapshotCount: prometheus.NewGaugeVec(
|
||
|
prometheus.GaugeOpts{
|
||
|
Name: "snapshot_total",
|
||
|
Help: "time it took for the last job run",
|
||
|
Namespace: "",
|
||
|
Subsystem: "",
|
||
|
ConstLabels: nil,
|
||
|
},
|
||
|
labelNames,
|
||
|
),
|
||
|
LatestSnapshotTime: prometheus.NewGaugeVec(
|
||
|
prometheus.GaugeOpts{
|
||
|
Name: "latest_snapshot_time",
|
||
|
Help: "time of the most recent snapshot",
|
||
|
Namespace: "",
|
||
|
Subsystem: "",
|
||
|
ConstLabels: nil,
|
||
|
},
|
||
|
labelNames,
|
||
|
),
|
||
|
LatestSnapshotSize: prometheus.NewGaugeVec(
|
||
|
prometheus.GaugeOpts{
|
||
|
Name: "latest_snapshot_size",
|
||
|
Help: "size of the most recent snapshot",
|
||
|
Namespace: "",
|
||
|
Subsystem: "",
|
||
|
ConstLabels: nil,
|
||
|
},
|
||
|
labelNames,
|
||
|
),
|
||
|
}
|
||
|
|
||
|
prometheus.MustRegister(metrics.JobRunTime)
|
||
|
prometheus.MustRegister(metrics.JobRunDuration)
|
||
|
prometheus.MustRegister(metrics.SnapshotCount)
|
||
|
prometheus.MustRegister(metrics.LatestSnapshotTime)
|
||
|
prometheus.MustRegister(metrics.LatestSnapshotSize)
|
||
|
|
||
|
return metrics
|
||
|
}
|
||
|
|
||
|
var Metrics = InitMetrics()
|
||
|
|
||
|
func JobComplete() {
|
||
|
|
||
|
}
|