Skip to content

[service] create service/hostcapabilities package #12375

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Use this changelog template to create an entry for release notes.

# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: new_component

# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
component: service/hostcapabilities

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: create `service/hostcapabilities` module

# One or more tracking issues or pull requests related to the change
issues: [12296, 12375]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext: |
Removes getExporters interface in service/internal/graph.
Removes getModuleInfos interface in service/internal/graph.
Creates interface ExposeExporters in service/hostcapabilities to expose GetExporters function.
Creates interface ModuleInfo in service/hostcapabilities to expose GetModuleInfos function.
# Optional: The change log or logs in which this entry should be included.
# e.g. '[user]' or '[user, api]'
# Include 'user' if the change is relevant to end users.
# Include 'api' if there is a change to a library API.
# Default: '[user]'
change_logs: [api]
1 change: 1 addition & 0 deletions cmd/builder/internal/builder/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ var replaceModules = []string{
"/receiver/xreceiver",
"/semconv",
"/service",
"/service/hostcapabilities",
}

func newTestConfig(tb testing.TB) *Config {
Expand Down
1 change: 1 addition & 0 deletions cmd/otelcorecol/builder-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,4 @@ replaces:
- go.opentelemetry.io/collector/receiver/xreceiver => ../../receiver/xreceiver
- go.opentelemetry.io/collector/semconv => ../../semconv
- go.opentelemetry.io/collector/service => ../../service
- go.opentelemetry.io/collector/service/hostcapabilities => ../../service/hostcapabilities
3 changes: 3 additions & 0 deletions cmd/otelcorecol/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ require (
go.opentelemetry.io/collector/receiver/xreceiver v0.120.0 // indirect
go.opentelemetry.io/collector/semconv v0.120.0 // indirect
go.opentelemetry.io/collector/service v0.120.0 // indirect
go.opentelemetry.io/collector/service/hostcapabilities v0.120.0 // indirect
go.opentelemetry.io/contrib/bridges/otelzap v0.9.0 // indirect
go.opentelemetry.io/contrib/config v0.14.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 // indirect
Expand Down Expand Up @@ -299,3 +300,5 @@ replace go.opentelemetry.io/collector/receiver/xreceiver => ../../receiver/xrece
replace go.opentelemetry.io/collector/semconv => ../../semconv

replace go.opentelemetry.io/collector/service => ../../service

replace go.opentelemetry.io/collector/service/hostcapabilities => ../../service/hostcapabilities
3 changes: 3 additions & 0 deletions internal/e2e/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ require (
go.opentelemetry.io/collector/processor/xprocessor v0.120.0 // indirect
go.opentelemetry.io/collector/receiver/xreceiver v0.120.0 // indirect
go.opentelemetry.io/collector/semconv v0.120.0 // indirect
go.opentelemetry.io/collector/service/hostcapabilities v0.120.0 // indirect
go.opentelemetry.io/contrib/bridges/otelzap v0.9.0 // indirect
go.opentelemetry.io/contrib/config v0.14.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.59.0 // indirect
Expand Down Expand Up @@ -253,3 +254,5 @@ replace go.opentelemetry.io/collector/otelcol => ../../otelcol
replace go.opentelemetry.io/collector/confmap/provider/yamlprovider => ../../confmap/provider/yamlprovider

replace go.opentelemetry.io/collector/confmap/provider/fileprovider => ../../confmap/provider/fileprovider

replace go.opentelemetry.io/collector/service/hostcapabilities => ../../service/hostcapabilities
3 changes: 3 additions & 0 deletions otelcol/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ require (
go.opentelemetry.io/collector/processor/xprocessor v0.120.0 // indirect
go.opentelemetry.io/collector/receiver/xreceiver v0.120.0 // indirect
go.opentelemetry.io/collector/semconv v0.120.0 // indirect
go.opentelemetry.io/collector/service/hostcapabilities v0.120.0 // indirect
go.opentelemetry.io/contrib/bridges/otelzap v0.9.0 // indirect
go.opentelemetry.io/contrib/propagators/b3 v1.34.0 // indirect
go.opentelemetry.io/otel v1.34.0 // indirect
Expand Down Expand Up @@ -123,6 +124,8 @@ replace go.opentelemetry.io/collector => ../

replace go.opentelemetry.io/collector/service => ../service

replace go.opentelemetry.io/collector/service/hostcapabilities => ../service/hostcapabilities

replace go.opentelemetry.io/collector/connector => ../connector

replace go.opentelemetry.io/collector/connector/connectortest => ../connector/connectortest
Expand Down
3 changes: 3 additions & 0 deletions otelcol/otelcoltest/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ require (
go.opentelemetry.io/collector/receiver v0.120.0 // indirect
go.opentelemetry.io/collector/receiver/xreceiver v0.120.0 // indirect
go.opentelemetry.io/collector/semconv v0.120.0 // indirect
go.opentelemetry.io/collector/service/hostcapabilities v0.120.0 // indirect
go.opentelemetry.io/contrib/bridges/otelzap v0.9.0 // indirect
go.opentelemetry.io/contrib/config v0.14.0 // indirect
go.opentelemetry.io/contrib/propagators/b3 v1.34.0 // indirect
Expand Down Expand Up @@ -208,6 +209,8 @@ replace go.opentelemetry.io/collector/extension/zpagesextension => ../../extensi

replace go.opentelemetry.io/collector/service => ../../service

replace go.opentelemetry.io/collector/service/hostcapabilities => ../../service/hostcapabilities

replace go.opentelemetry.io/collector/internal/fanoutconsumer => ../../internal/fanoutconsumer

replace go.opentelemetry.io/collector/extension/extensiontest => ../../extension/extensiontest
Expand Down
3 changes: 3 additions & 0 deletions service/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ require (
go.opentelemetry.io/collector/receiver/receivertest v0.120.0
go.opentelemetry.io/collector/receiver/xreceiver v0.120.0
go.opentelemetry.io/collector/semconv v0.120.0
go.opentelemetry.io/collector/service/hostcapabilities v0.120.0
go.opentelemetry.io/contrib/bridges/otelzap v0.9.0
go.opentelemetry.io/contrib/config v0.14.0
go.opentelemetry.io/contrib/propagators/b3 v1.34.0
Expand Down Expand Up @@ -173,6 +174,8 @@ replace go.opentelemetry.io/collector/consumer => ../consumer

replace go.opentelemetry.io/collector/semconv => ../semconv

replace go.opentelemetry.io/collector/service/hostcapabilities => ./hostcapabilities

replace go.opentelemetry.io/collector/receiver => ../receiver

replace go.opentelemetry.io/collector/featuregate => ../featuregate
Expand Down
1 change: 1 addition & 0 deletions service/hostcapabilities/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include ../../Makefile.Common
81 changes: 81 additions & 0 deletions service/hostcapabilities/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
module go.opentelemetry.io/collector/service/hostcapabilities

go 1.23.0

require (
go.opentelemetry.io/collector/component v0.120.0
go.opentelemetry.io/collector/pipeline v0.120.0
go.opentelemetry.io/collector/service v0.119.0
)

require (
github.com/gogo/protobuf v1.3.2 // indirect
go.opentelemetry.io/collector/pdata v1.26.0 // indirect
go.opentelemetry.io/otel v1.34.0 // indirect
go.opentelemetry.io/otel/metric v1.34.0 // indirect
go.opentelemetry.io/otel/trace v1.34.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/net v0.35.0 // indirect
golang.org/x/sys v0.30.0 // indirect
golang.org/x/text v0.22.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect
google.golang.org/grpc v1.70.0 // indirect
google.golang.org/protobuf v1.36.5 // indirect
)

replace (
go.opentelemetry.io/collector => ../..
go.opentelemetry.io/collector/client => ../../client
go.opentelemetry.io/collector/component => ../../component
go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus
go.opentelemetry.io/collector/component/componenttest => ../../component/componenttest
go.opentelemetry.io/collector/config/configauth => ../../config/configauth
go.opentelemetry.io/collector/config/configcompression => ../../config/configcompression
go.opentelemetry.io/collector/config/confighttp => ../../config/confighttp
go.opentelemetry.io/collector/config/configopaque => ../../config/configopaque
go.opentelemetry.io/collector/config/configretry => ../../config/configretry
go.opentelemetry.io/collector/config/configtelemetry => ../../config/configtelemetry
go.opentelemetry.io/collector/config/configtls => ../../config/configtls
go.opentelemetry.io/collector/confmap => ../../confmap
go.opentelemetry.io/collector/confmap/xconfmap => ../../confmap/xconfmap
go.opentelemetry.io/collector/connector => ../../connector
go.opentelemetry.io/collector/connector/connectortest => ../../connector/connectortest
go.opentelemetry.io/collector/connector/xconnector => ../../connector/xconnector
go.opentelemetry.io/collector/consumer => ../../consumer
go.opentelemetry.io/collector/consumer/consumererror => ../../consumer/consumererror
go.opentelemetry.io/collector/consumer/consumertest => ../../consumer/consumertest
go.opentelemetry.io/collector/consumer/xconsumer => ../../consumer/xconsumer
go.opentelemetry.io/collector/exporter => ../../exporter
go.opentelemetry.io/collector/exporter/exportertest => ../../exporter/exportertest
go.opentelemetry.io/collector/exporter/xexporter => ../../exporter/xexporter
go.opentelemetry.io/collector/extension => ../../extension
go.opentelemetry.io/collector/extension/auth => ../../extension/auth
go.opentelemetry.io/collector/extension/auth/authtest => ../../extension/auth/authtest
go.opentelemetry.io/collector/extension/extensioncapabilities => ../../extension/extensioncapabilities
go.opentelemetry.io/collector/extension/extensiontest => ../../extension/extensiontest
go.opentelemetry.io/collector/extension/xextension => ../../extension/xextension
go.opentelemetry.io/collector/extension/zpagesextension => ../../extension/zpagesextension
go.opentelemetry.io/collector/featuregate => ../../featuregate
go.opentelemetry.io/collector/internal/fanoutconsumer => ../../internal/fanoutconsumer
go.opentelemetry.io/collector/internal/telemetry => ../../internal/telemetry
go.opentelemetry.io/collector/pdata => ../../pdata
go.opentelemetry.io/collector/pdata/pprofile => ../../pdata/pprofile
go.opentelemetry.io/collector/pdata/testdata => ../../pdata/testdata
go.opentelemetry.io/collector/pipeline => ../../pipeline
go.opentelemetry.io/collector/pipeline/xpipeline => ../../pipeline/xpipeline
go.opentelemetry.io/collector/processor => ../../processor
go.opentelemetry.io/collector/processor/processortest => ../../processor/processortest
go.opentelemetry.io/collector/processor/xprocessor => ../../processor/xprocessor
go.opentelemetry.io/collector/receiver => ../../receiver
go.opentelemetry.io/collector/receiver/receivertest => ../../receiver/receivertest
go.opentelemetry.io/collector/receiver/xreceiver => ../../receiver/xreceiver
go.opentelemetry.io/collector/semconv => ../../semconv
go.opentelemetry.io/collector/service => ..
)

replace go.opentelemetry.io/collector/otelcol => ../../otelcol

replace go.opentelemetry.io/collector/confmap/provider/fileprovider => ../../confmap/provider/fileprovider

replace go.opentelemetry.io/collector/confmap/provider/yamlprovider => ../../confmap/provider/yamlprovider
79 changes: 79 additions & 0 deletions service/hostcapabilities/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

28 changes: 28 additions & 0 deletions service/hostcapabilities/interfaces.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

// Package hostcapabilities provides interfaces that can be implemented by the host
// to provide additional capabilities.
package hostcapabilities // import "go.opentelemetry.io/collector/service/hostcapabilities"

import (
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/pipeline"
"go.opentelemetry.io/collector/service/internal/moduleinfo"
)

// ModuleInfo is an interface that may be implemented by the host to provide
// information about modules that were used to build the host.
type ModuleInfo interface {
// GetModuleInfos returns the module information for the host
// i.e. Receivers, Processors, Exporters, Extensions, and Connectors
GetModuleInfos() moduleinfo.ModuleInfos
}

// ExposeExporters is an interface that may be implemented by the host to provide
// access to the exporters that were used to build the host.
// Deprecated: [v0.121.0] Will be removed in Service 1.0.
// See: https://github.com/open-telemetry/opentelemetry-collector/issues/7370 for service 1.0
type ExposeExporters interface {
GetExporters() map[pipeline.Signal]map[component.ID]component.Component
}
Loading
Loading