otelcollector/otel-allocator/internal/prehook/prehook.go (24 lines of code) (raw):

// Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 package prehook import ( "github.com/go-logr/logr" "github.com/prometheus/prometheus/model/relabel" "github.com/open-telemetry/opentelemetry-operator/cmd/otel-allocator/internal/target" ) type Hook interface { Apply([]*target.Item) []*target.Item SetConfig(map[string][]*relabel.Config) GetConfig() map[string][]*relabel.Config } type HookProvider func(log logr.Logger) Hook var ( registry = map[string]HookProvider{ relabelConfigTargetFilterName: newRelabelConfigTargetFilter, } ) func New(name string, log logr.Logger) Hook { if p, ok := registry[name]; ok { return p(log.WithName("Prehook").WithName(name)) } log.Info("Unrecognized filter strategy; filtering disabled") return nil }