mirror of
https://github.com/hanzoai/traces.git
synced 2026-11-03 04:05:45 +00:00
* Update Prometheus to v0.307.2 * Update otel collector * Update OTel collector
50 lines
2.2 KiB
Go
50 lines
2.2 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package otelcol // import "go.opentelemetry.io/collector/otelcol"
|
|
|
|
import (
|
|
"go.opentelemetry.io/collector/confmap"
|
|
"go.opentelemetry.io/collector/connector"
|
|
"go.opentelemetry.io/collector/exporter"
|
|
"go.opentelemetry.io/collector/extension"
|
|
"go.opentelemetry.io/collector/otelcol/internal/configunmarshaler"
|
|
"go.opentelemetry.io/collector/processor"
|
|
"go.opentelemetry.io/collector/receiver"
|
|
"go.opentelemetry.io/collector/service"
|
|
"go.opentelemetry.io/collector/service/telemetry/otelconftelemetry"
|
|
)
|
|
|
|
type configSettings struct {
|
|
Receivers *configunmarshaler.Configs[receiver.Factory] `mapstructure:"receivers"`
|
|
Processors *configunmarshaler.Configs[processor.Factory] `mapstructure:"processors"`
|
|
Exporters *configunmarshaler.Configs[exporter.Factory] `mapstructure:"exporters"`
|
|
Connectors *configunmarshaler.Configs[connector.Factory] `mapstructure:"connectors"`
|
|
Extensions *configunmarshaler.Configs[extension.Factory] `mapstructure:"extensions"`
|
|
Service service.Config `mapstructure:"service"`
|
|
}
|
|
|
|
// unmarshal the configSettings from a confmap.Conf.
|
|
// After the config is unmarshalled, `Validate()` must be called to validate.
|
|
func unmarshal(v *confmap.Conf, factories Factories) (*configSettings, error) {
|
|
// TODO: inject the telemetry factory through factories, once available.
|
|
// See https://github.com/open-telemetry/opentelemetry-collector/issues/4970
|
|
telFactory := otelconftelemetry.NewFactory()
|
|
defaultTelConfig := telFactory.CreateDefaultConfig().(*otelconftelemetry.Config)
|
|
|
|
// Unmarshal top level sections and validate.
|
|
cfg := &configSettings{
|
|
Receivers: configunmarshaler.NewConfigs(factories.Receivers),
|
|
Processors: configunmarshaler.NewConfigs(factories.Processors),
|
|
Exporters: configunmarshaler.NewConfigs(factories.Exporters),
|
|
Connectors: configunmarshaler.NewConfigs(factories.Connectors),
|
|
Extensions: configunmarshaler.NewConfigs(factories.Extensions),
|
|
// TODO: Add a component.ServiceFactory to allow this to be defined by the Service.
|
|
Service: service.Config{
|
|
Telemetry: defaultTelConfig,
|
|
},
|
|
}
|
|
err := v.Unmarshal(&cfg)
|
|
return cfg, err
|
|
}
|