Skip to content

Commit

Permalink
[extension] Remove Settings.ModuleInfo and move to service.Host hidde…
Browse files Browse the repository at this point in the history
…n method
  • Loading branch information
mx-psi committed Feb 5, 2025
1 parent c8d26be commit 79c4ef6
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 22 deletions.
12 changes: 0 additions & 12 deletions extension/extension.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,6 @@ type Extension interface {
component.Component
}

// ModuleInfo describes the go module for each component.
type ModuleInfo struct {
Receiver map[component.Type]string
Processor map[component.Type]string
Exporter map[component.Type]string
Extension map[component.Type]string
Connector map[component.Type]string
}

// Settings is passed to Factory.Create(...) function.
type Settings struct {
// ID returns the ID of the component that will be created.
Expand All @@ -35,9 +26,6 @@ type Settings struct {

// BuildInfo can be used by components for informational purposes
BuildInfo component.BuildInfo

// ModuleInfo describes the go module for each component.
ModuleInfo ModuleInfo
}

// CreateFunc is the equivalent of Factory.Create(...) function.
Expand Down
3 changes: 1 addition & 2 deletions otelcol/collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import (
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/confmap"
"go.opentelemetry.io/collector/confmap/xconfmap"
"go.opentelemetry.io/collector/extension"
"go.opentelemetry.io/collector/otelcol/internal/grpclog"
"go.opentelemetry.io/collector/service"
)
Expand Down Expand Up @@ -199,7 +198,7 @@ func (col *Collector) setupConfigurationComponents(ctx context.Context) error {
ExtensionsConfigs: cfg.Extensions,
ExtensionsFactories: factories.Extensions,

ModuleInfo: extension.ModuleInfo{
ModuleInfo: service.ModuleInfo{
Receiver: factories.ReceiverModules,
Processor: factories.ProcessorModules,
Exporter: factories.ExporterModules,
Expand Down
6 changes: 2 additions & 4 deletions service/extensions/extensions.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,8 @@ func (bes *Extensions) HandleZPages(w http.ResponseWriter, r *http.Request) {

// Settings holds configuration for building Extensions.
type Settings struct {
Telemetry component.TelemetrySettings
BuildInfo component.BuildInfo
ModuleInfo extension.ModuleInfo
Telemetry component.TelemetrySettings
BuildInfo component.BuildInfo

// Extensions builder for extensions.
Extensions builders.Extension
Expand Down Expand Up @@ -214,7 +213,6 @@ func New(ctx context.Context, set Settings, cfg Config, options ...Option) (*Ext
ID: extID,
TelemetrySettings: set.Telemetry,
BuildInfo: set.BuildInfo,
ModuleInfo: set.ModuleInfo,
}
extSet.TelemetrySettings.Logger = components.ExtensionLogger(set.Telemetry.Logger, extID)

Expand Down
15 changes: 13 additions & 2 deletions service/internal/graph/host.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ import (

"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/component/componentstatus"
"go.opentelemetry.io/collector/extension"
"go.opentelemetry.io/collector/featuregate"
"go.opentelemetry.io/collector/pipeline"
"go.opentelemetry.io/collector/service/extensions"
"go.opentelemetry.io/collector/service/internal/builders"
"go.opentelemetry.io/collector/service/internal/moduleinfo"
"go.opentelemetry.io/collector/service/internal/status"
"go.opentelemetry.io/collector/service/internal/zpages"
)
Expand All @@ -25,9 +25,16 @@ type getExporters interface {
GetExporters() map[pipeline.Signal]map[component.ID]component.Component
}

// TODO: expose GetModuleInfo as part of a service/hostcapabilities package.
type getModuleInfo interface {
// GetModuleInfo returns the module information for the host.
GetModuleInfo() moduleinfo.ModuleInfo
}

var (
_ getExporters = (*Host)(nil)
_ component.Host = (*Host)(nil)
_ getModuleInfo = (*Host)(nil)
)

type Host struct {
Expand All @@ -38,7 +45,7 @@ type Host struct {
Connectors *builders.ConnectorBuilder
Extensions *builders.ExtensionBuilder

ModuleInfo extension.ModuleInfo
ModuleInfo moduleinfo.ModuleInfo
BuildInfo component.BuildInfo

Pipelines *Graph
Expand Down Expand Up @@ -67,6 +74,10 @@ func (host *Host) GetExtensions() map[component.ID]component.Component {
return host.ServiceExtensions.GetExtensions()
}

func (host *Host) GetModuleInfo() moduleinfo.ModuleInfo {
return host.ModuleInfo
}

// Deprecated: [0.79.0] This function will be removed in the future.
// Several components in the contrib repository use this function so it cannot be removed
// before those cases are removed. In most cases, use of this function can be replaced by a
Expand Down
12 changes: 12 additions & 0 deletions service/internal/moduleinfo/moduleinfo.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package moduleinfo

import "go.opentelemetry.io/collector/component"

// ModuleInfo describes the go module for each component.
type ModuleInfo struct {
Receiver map[component.Type]string
Processor map[component.Type]string
Exporter map[component.Type]string
Extension map[component.Type]string
Connector map[component.Type]string
}
7 changes: 5 additions & 2 deletions service/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import (
"go.opentelemetry.io/collector/service/extensions"
"go.opentelemetry.io/collector/service/internal/builders"
"go.opentelemetry.io/collector/service/internal/graph"
"go.opentelemetry.io/collector/service/internal/moduleinfo"
"go.opentelemetry.io/collector/service/internal/proctelemetry"
"go.opentelemetry.io/collector/service/internal/resource"
"go.opentelemetry.io/collector/service/internal/status"
Expand All @@ -56,6 +57,9 @@ var disableHighCardinalityMetricsFeatureGate = featuregate.GlobalRegistry().Must
featuregate.WithRegisterDescription("controls whether the collector should enable potentially high"+
"cardinality metrics. The gate will be removed when the collector allows for view configuration."))

// ModuleInfo describes the go module for each component.
type ModuleInfo = moduleinfo.ModuleInfo

// Settings holds configuration for building a new Service.
type Settings struct {
// BuildInfo provides collector start information.
Expand Down Expand Up @@ -88,7 +92,7 @@ type Settings struct {
ExtensionsFactories map[component.Type]extension.Factory

// ModuleInfo describes the go module for each component.
ModuleInfo extension.ModuleInfo
ModuleInfo ModuleInfo

// AsyncErrorChannel is the channel that is used to report fatal errors.
AsyncErrorChannel chan error
Expand Down Expand Up @@ -341,7 +345,6 @@ func (srv *Service) initExtensions(ctx context.Context, cfg extensions.Config) e
Telemetry: srv.telemetrySettings,
BuildInfo: srv.buildInfo,
Extensions: srv.host.Extensions,
ModuleInfo: srv.host.ModuleInfo,
}
if srv.host.ServiceExtensions, err = extensions.New(ctx, extensionsSettings, cfg, extensions.WithReporter(srv.host.Reporter)); err != nil {
return fmt.Errorf("failed to build extensions: %w", err)
Expand Down

0 comments on commit 79c4ef6

Please sign in to comment.