Files
JaviandGitHub 5ba6c3c285 Update OTEL Collector to v0.122.1 (#4893)
* update otel

* update otel-collector-contrib

* rollback upgrade of jaegerreceiver and kafkareceiver

* fix go.sum

* update opentelemetry-collector-contrib and jaegertracing

* fix factory initialization

* fix e2e

* use the new jaeger definitions

* fix factory initialization for otelexporter

* use proper prefix

* fix metric matcher for integration tests

* changelog
2025-03-26 15:56:41 +01:00

63 lines
2.2 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package otelcol // import "go.opentelemetry.io/collector/otelcol"
import (
"fmt"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/connector"
"go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/extension"
"go.opentelemetry.io/collector/processor"
"go.opentelemetry.io/collector/receiver"
)
// Factories struct holds in a single type all component factories that
// can be handled by the Config.
type Factories struct {
// Receivers maps receiver type names in the config to the respective factory.
Receivers map[component.Type]receiver.Factory
// Processors maps processor type names in the config to the respective factory.
Processors map[component.Type]processor.Factory
// Exporters maps exporter type names in the config to the respective factory.
Exporters map[component.Type]exporter.Factory
// Extensions maps extension type names in the config to the respective factory.
Extensions map[component.Type]extension.Factory
// Connectors maps connector type names in the config to the respective factory.
Connectors map[component.Type]connector.Factory
// ReceiverModules maps receiver types to their respective go modules.
ReceiverModules map[component.Type]string
// ProcessorModules maps processor types to their respective go modules.
ProcessorModules map[component.Type]string
// ExporterModules maps exporter types to their respective go modules.
ExporterModules map[component.Type]string
// ExtensionModules maps extension types to their respective go modules.
ExtensionModules map[component.Type]string
// ConnectorModules maps connector types to their respective go modules.
ConnectorModules map[component.Type]string
}
// MakeFactoryMap takes a list of factories and returns a map with Factory type as keys.
// It returns a non-nil error when there are factories with duplicate type.
func MakeFactoryMap[T component.Factory](factories ...T) (map[component.Type]T, error) {
fMap := map[component.Type]T{}
for _, f := range factories {
if _, ok := fMap[f.Type()]; ok {
return fMap, fmt.Errorf("duplicate component factory %q", f.Type())
}
fMap[f.Type()] = f
}
return fMap, nil
}