Skip to content

Commit 1ff6b6c

Browse files
authored
pkg/beholder: cache metadata validator (#1673)
1 parent 4018f84 commit 1ff6b6c

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

pkg/beholder/message.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"maps"
77
"regexp"
88
"strings"
9+
"sync"
910

1011
"github.com/go-playground/validator/v10"
1112
"go.opentelemetry.io/otel/attribute"
@@ -231,7 +232,9 @@ func NewMetadata(attrs Attributes) *Metadata {
231232
// validDomainAndEntityRegex allows for alphanumeric characters and ._-
232233
var validDomainAndEntityRegex = regexp.MustCompile(`^[a-zA-Z0-9._-]+$`)
233234

234-
func NewMetadataValidator() (*validator.Validate, error) {
235+
func NewMetadataValidator() (*validator.Validate, error) { return metadataValidator() }
236+
237+
var metadataValidator = sync.OnceValues(func() (*validator.Validate, error) {
235238
validate := validator.New()
236239
err := validate.RegisterValidation("domain_entity", func(fl validator.FieldLevel) bool {
237240
str, isStr := fl.Field().Interface().(string)
@@ -250,7 +253,7 @@ func NewMetadataValidator() (*validator.Validate, error) {
250253
return nil, err
251254
}
252255
return validate, nil
253-
}
256+
})
254257

255258
func (m *Metadata) Validate() error {
256259
validate, err := NewMetadataValidator()

0 commit comments

Comments
 (0)