summaryrefslogtreecommitdiff
path: root/internal/rpn/operations_metric_cmd.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rpn/operations_metric_cmd.go')
-rw-r--r--internal/rpn/operations_metric_cmd.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/internal/rpn/operations_metric_cmd.go b/internal/rpn/operations_metric_cmd.go
index 255daed..370be98 100644
--- a/internal/rpn/operations_metric_cmd.go
+++ b/internal/rpn/operations_metric_cmd.go
@@ -150,11 +150,19 @@ func (o *Operations) CustomDefine(name string, factor float64, category string)
Factor: func(PrefixMode) float64 { return factor },
IsCustom: true,
}
- reg.Register(m)
+ writer, ok := reg.(MetricWriter)
+ if !ok {
+ return fmt.Errorf("metric registry does not support write operations")
+ }
+ writer.Register(m)
return nil
}
// CustomUndefine removes a custom metric.
func (o *Operations) CustomUndefine(name string) error {
- return o.metricRegistry.Unregister(name)
+ writer, ok := o.metricRegistry.(MetricWriter)
+ if !ok {
+ return fmt.Errorf("metric registry does not support write operations")
+ }
+ return writer.Unregister(name)
}