Fixed name and type we're testing for

This commit is contained in:
Peter Wilson
2024-01-08 18:40:12 +00:00
parent 0c3e551a70
commit 3e7cbad383
8 changed files with 29 additions and 10 deletions

View File

@@ -552,7 +552,7 @@ func (b *Backend) configureSinkNode(name string, filePath string, mode string, f
metricLabeler = &audit.MetricLabelerAuditSink{}
}
sinkMetricCounter, err := event.NewMetricsCounter(sinkMetricTimer, metricLabeler)
sinkMetricCounter, err := event.NewMetricsCounter(sinkName, sinkMetricTimer, metricLabeler)
if err != nil {
return fmt.Errorf("%s: unable to add counting metrics to sink for path %q: %w", op, filePath, err)
}

View File

@@ -15,6 +15,7 @@ import (
"github.com/hashicorp/eventlogger"
"github.com/hashicorp/vault/audit"
"github.com/hashicorp/vault/helper/namespace"
"github.com/hashicorp/vault/internal/observability/event"
"github.com/hashicorp/vault/sdk/helper/salt"
"github.com/hashicorp/vault/sdk/logical"
"github.com/stretchr/testify/require"
@@ -529,7 +530,7 @@ func TestBackend_configureSinkNode(t *testing.T) {
id := b.nodeIDList[0]
node := b.nodeMap[id]
require.Equal(t, eventlogger.NodeTypeSink, node.Type())
sw, ok := node.(*audit.SinkMetricTimer)
sw, ok := node.(*event.MetricsCounter)
require.True(t, ok)
require.Equal(t, tc.expectedName, sw.Name)
}

View File

@@ -443,7 +443,7 @@ func (b *Backend) configureSinkNode(name string, address string, format string,
metricLabeler = &audit.MetricLabelerAuditSink{}
}
sinkMetricCounter, err := event.NewMetricsCounter(sinkMetricTimer, metricLabeler)
sinkMetricCounter, err := event.NewMetricsCounter(name, sinkMetricTimer, metricLabeler)
if err != nil {
return fmt.Errorf("%s: unable to add counting metrics to sink for path %q: %w", op, name, err)
}

View File

@@ -9,6 +9,7 @@ import (
"github.com/hashicorp/eventlogger"
"github.com/hashicorp/vault/audit"
"github.com/hashicorp/vault/internal/observability/event"
"github.com/hashicorp/vault/sdk/helper/salt"
"github.com/hashicorp/vault/sdk/logical"
"github.com/stretchr/testify/require"
@@ -285,7 +286,7 @@ func TestBackend_configureSinkNode(t *testing.T) {
id := b.nodeIDList[0]
node := b.nodeMap[id]
require.Equal(t, eventlogger.NodeTypeSink, node.Type())
sw, ok := node.(*audit.SinkMetricTimer)
sw, ok := node.(*event.MetricsCounter)
require.True(t, ok)
require.Equal(t, tc.expectedName, sw.Name)
}

View File

@@ -353,7 +353,7 @@ func (b *Backend) configureSinkNode(name string, format string, opts ...event.Op
metricLabeler = &audit.MetricLabelerAuditSink{}
}
sinkMetricCounter, err := event.NewMetricsCounter(sinkMetricTimer, metricLabeler)
sinkMetricCounter, err := event.NewMetricsCounter(name, sinkMetricTimer, metricLabeler)
if err != nil {
return fmt.Errorf("%s: unable to add counting metrics to sink for path %q: %w", op, name, err)
}

View File

@@ -9,6 +9,7 @@ import (
"github.com/hashicorp/eventlogger"
"github.com/hashicorp/vault/audit"
"github.com/hashicorp/vault/internal/observability/event"
"github.com/hashicorp/vault/sdk/helper/salt"
"github.com/hashicorp/vault/sdk/logical"
"github.com/stretchr/testify/require"
@@ -267,7 +268,7 @@ func TestBackend_configureSinkNode(t *testing.T) {
id := b.nodeIDList[0]
node := b.nodeMap[id]
require.Equal(t, eventlogger.NodeTypeSink, node.Type())
sw, ok := node.(*audit.SinkMetricTimer)
sw, ok := node.(*event.MetricsCounter)
require.True(t, ok)
require.Equal(t, tc.expectedName, sw.Name)
}

View File

@@ -7,6 +7,7 @@ import (
"context"
"fmt"
"reflect"
"strings"
"github.com/hashicorp/eventlogger"
"github.com/hashicorp/go-metrics"
@@ -16,6 +17,7 @@ var _ eventlogger.Node = (*MetricsCounter)(nil)
// MetricsCounter offers a way for nodes to emit metrics which increment a label by 1.
type MetricsCounter struct {
Name string
Node eventlogger.Node
labeler Labeler
}
@@ -28,9 +30,14 @@ type Labeler interface {
}
// NewMetricsCounter should be used to create the MetricsCounter.
func NewMetricsCounter(node eventlogger.Node, labeler Labeler) (*MetricsCounter, error) {
func NewMetricsCounter(name string, node eventlogger.Node, labeler Labeler) (*MetricsCounter, error) {
const op = "event.NewMetricsCounter"
name = strings.TrimSpace(name)
if name == "" {
return nil, fmt.Errorf("%s: name is required: %w", op, ErrInvalidParameter)
}
if node == nil || reflect.ValueOf(node).IsNil() {
return nil, fmt.Errorf("%s: node is required: %w", op, ErrInvalidParameter)
}
@@ -40,6 +47,7 @@ func NewMetricsCounter(node eventlogger.Node, labeler Labeler) (*MetricsCounter,
}
return &MetricsCounter{
Name: name,
Node: node,
labeler: labeler,
}, nil

View File

@@ -35,12 +35,20 @@ func TestNewMetricsCounter(t *testing.T) {
labeler: &testMetricsCounter{},
isErrorExpected: false,
},
"no-name": {
node: nil,
labeler: nil,
isErrorExpected: true,
expectedErrorMessage: "event.NewMetricsCounter: name is required: invalid parameter",
},
"no-node": {
name: "foo",
node: nil,
isErrorExpected: true,
expectedErrorMessage: "event.NewMetricsCounter: node is required: invalid parameter",
},
"no-labeler": {
name: "foo",
node: &testEventLoggerNode{},
labeler: nil,
isErrorExpected: true,
@@ -52,7 +60,7 @@ func TestNewMetricsCounter(t *testing.T) {
name := name
tc := tc
t.Run(name, func(t *testing.T) {
m, err := NewMetricsCounter(tc.node, tc.labeler)
m, err := NewMetricsCounter(tc.name, tc.node, tc.labeler)
switch {
case tc.isErrorExpected:
@@ -84,6 +92,6 @@ func (t testEventLoggerNode) Type() eventlogger.NodeType {
// testMetricsCounter is for testing and implements the event.Labeler interface.
type testMetricsCounter struct{}
func (m *testMetricsCounter) Label(_ *eventlogger.Event, err error) string {
return ""
func (m *testMetricsCounter) Labels(_ *eventlogger.Event, err error) []string {
return []string{""}
}