mirror of https://github.com/coder/coder.git
57 lines
1.8 KiB
Go
57 lines
1.8 KiB
Go
|
package workspacetraffic
|
||
|
|
||
|
import "github.com/prometheus/client_golang/prometheus"
|
||
|
|
||
|
type Metrics struct {
|
||
|
BytesReadTotal prometheus.CounterVec
|
||
|
BytesWrittenTotal prometheus.CounterVec
|
||
|
ReadErrorsTotal prometheus.CounterVec
|
||
|
WriteErrorsTotal prometheus.CounterVec
|
||
|
ReadLatencySeconds prometheus.HistogramVec
|
||
|
WriteLatencySeconds prometheus.HistogramVec
|
||
|
LabelNames []string
|
||
|
}
|
||
|
|
||
|
func NewMetrics(reg prometheus.Registerer, labelNames ...string) *Metrics {
|
||
|
m := &Metrics{
|
||
|
BytesReadTotal: *prometheus.NewCounterVec(prometheus.CounterOpts{
|
||
|
Namespace: "coderd",
|
||
|
Subsystem: "scaletest",
|
||
|
Name: "bytes_read_total",
|
||
|
}, labelNames),
|
||
|
BytesWrittenTotal: *prometheus.NewCounterVec(prometheus.CounterOpts{
|
||
|
Namespace: "coderd",
|
||
|
Subsystem: "scaletest",
|
||
|
Name: "bytes_written_total",
|
||
|
}, labelNames),
|
||
|
ReadErrorsTotal: *prometheus.NewCounterVec(prometheus.CounterOpts{
|
||
|
Namespace: "coderd",
|
||
|
Subsystem: "scaletest",
|
||
|
Name: "read_errors_total",
|
||
|
}, labelNames),
|
||
|
WriteErrorsTotal: *prometheus.NewCounterVec(prometheus.CounterOpts{
|
||
|
Namespace: "coderd",
|
||
|
Subsystem: "scaletest",
|
||
|
Name: "write_errors_total",
|
||
|
}, labelNames),
|
||
|
ReadLatencySeconds: *prometheus.NewHistogramVec(prometheus.HistogramOpts{
|
||
|
Namespace: "coderd",
|
||
|
Subsystem: "scaletest",
|
||
|
Name: "read_latency_seconds",
|
||
|
}, labelNames),
|
||
|
WriteLatencySeconds: *prometheus.NewHistogramVec(prometheus.HistogramOpts{
|
||
|
Namespace: "coderd",
|
||
|
Subsystem: "scaletest",
|
||
|
Name: "write_latency_seconds",
|
||
|
}, labelNames),
|
||
|
}
|
||
|
|
||
|
reg.MustRegister(m.BytesReadTotal)
|
||
|
reg.MustRegister(m.BytesWrittenTotal)
|
||
|
reg.MustRegister(m.ReadErrorsTotal)
|
||
|
reg.MustRegister(m.WriteErrorsTotal)
|
||
|
reg.MustRegister(m.ReadLatencySeconds)
|
||
|
reg.MustRegister(m.WriteLatencySeconds)
|
||
|
return m
|
||
|
}
|