76 lines
2.4 KiB
Go
76 lines
2.4 KiB
Go
package label
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/influxdata/influxdb/v2"
|
|
"github.com/influxdata/influxdb/v2/kit/metric"
|
|
"github.com/influxdata/influxdb/v2/kit/platform"
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
)
|
|
|
|
type LabelMetrics struct {
|
|
// RED metrics
|
|
rec *metric.REDClient
|
|
|
|
labelService influxdb.LabelService
|
|
}
|
|
|
|
func NewLabelMetrics(reg prometheus.Registerer, s influxdb.LabelService, opts ...metric.ClientOptFn) *LabelMetrics {
|
|
o := metric.ApplyMetricOpts(opts...)
|
|
return &LabelMetrics{
|
|
rec: metric.New(reg, o.ApplySuffix("org")),
|
|
labelService: s,
|
|
}
|
|
}
|
|
|
|
var _ influxdb.LabelService = (*LabelMetrics)(nil)
|
|
|
|
func (m *LabelMetrics) CreateLabel(ctx context.Context, l *influxdb.Label) (err error) {
|
|
rec := m.rec.Record("create_label")
|
|
err = m.labelService.CreateLabel(ctx, l)
|
|
return rec(err)
|
|
}
|
|
|
|
func (m *LabelMetrics) FindLabelByID(ctx context.Context, id platform.ID) (label *influxdb.Label, err error) {
|
|
rec := m.rec.Record("find_label_by_id")
|
|
l, err := m.labelService.FindLabelByID(ctx, id)
|
|
return l, rec(err)
|
|
}
|
|
|
|
func (m *LabelMetrics) FindLabels(ctx context.Context, filter influxdb.LabelFilter, opt ...influxdb.FindOptions) (ls []*influxdb.Label, err error) {
|
|
rec := m.rec.Record("find_labels")
|
|
l, err := m.labelService.FindLabels(ctx, filter, opt...)
|
|
return l, rec(err)
|
|
}
|
|
|
|
func (m *LabelMetrics) FindResourceLabels(ctx context.Context, filter influxdb.LabelMappingFilter) (ls []*influxdb.Label, err error) {
|
|
rec := m.rec.Record("find_labels_for_resource")
|
|
l, err := m.labelService.FindResourceLabels(ctx, filter)
|
|
return l, rec(err)
|
|
}
|
|
|
|
func (m *LabelMetrics) UpdateLabel(ctx context.Context, id platform.ID, upd influxdb.LabelUpdate) (lbl *influxdb.Label, err error) {
|
|
rec := m.rec.Record("update_label")
|
|
l, err := m.labelService.UpdateLabel(ctx, id, upd)
|
|
return l, rec(err)
|
|
}
|
|
|
|
func (m *LabelMetrics) DeleteLabel(ctx context.Context, id platform.ID) (err error) {
|
|
rec := m.rec.Record("delete_label")
|
|
err = m.labelService.DeleteLabel(ctx, id)
|
|
return rec(err)
|
|
}
|
|
|
|
func (m *LabelMetrics) CreateLabelMapping(ctx context.Context, lm *influxdb.LabelMapping) (err error) {
|
|
rec := m.rec.Record("create_label_mapping")
|
|
err = m.labelService.CreateLabelMapping(ctx, lm)
|
|
return rec(err)
|
|
}
|
|
|
|
func (m *LabelMetrics) DeleteLabelMapping(ctx context.Context, lm *influxdb.LabelMapping) (err error) {
|
|
rec := m.rec.Record("delete_label_mapping")
|
|
err = m.labelService.DeleteLabelMapping(ctx, lm)
|
|
return rec(err)
|
|
}
|