[extensiontest] Remove StatusWatcher helpers (#11044)
Ex. Adding a feature - Explain what this achieves.--> #### Description Removes some helpers from `extensiontest` related to the componentstatus package. As the following Github searches show, these symbols are not used by any public package outside of opentelemetry-collector and its forks: - [NewStatusWatcherExtensionCreateSettings](https://github.com/search?q=NewStatusWatcherExtensionCreateSettings+language%3AGo+-is%3Afork&type=code) - [NewStatusWatcherFactory](https://github.com/search?q=NewStatusWatcherExtensionFactory+language%3AGo+-is%3Afork&type=code) Therefore, I think we can safely remove this in one go. <!-- Issue number if applicable --> #### Link to tracking issue Updates #11005
This commit is contained in:
parent
46d0f7361e
commit
752ec37c0e
|
|
@ -0,0 +1,26 @@
|
|||
# Use this changelog template to create an entry for release notes.
|
||||
|
||||
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
|
||||
change_type: breaking
|
||||
|
||||
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
|
||||
component: Remove `extensiontest` StatusWatcher helpers
|
||||
|
||||
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
|
||||
note: |
|
||||
They were unused. They may be added back on a different module or after `componentstatus` is marked 1.0
|
||||
|
||||
# One or more tracking issues or pull requests related to the change
|
||||
issues: [11044]
|
||||
|
||||
# (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:
|
||||
|
||||
# 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]
|
||||
|
|
@ -48,5 +48,3 @@ replace go.opentelemetry.io/collector/config/configtelemetry => ../configtelemet
|
|||
replace go.opentelemetry.io/collector/extension => ../../extension
|
||||
|
||||
replace go.opentelemetry.io/collector/extension/auth => ../../extension/auth
|
||||
|
||||
replace go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ require (
|
|||
github.com/prometheus/client_model v0.6.1 // indirect
|
||||
github.com/prometheus/common v0.57.0 // indirect
|
||||
github.com/prometheus/procfs v0.15.1 // indirect
|
||||
go.opentelemetry.io/collector/component/componentstatus v0.108.1 // indirect
|
||||
go.opentelemetry.io/collector/confmap v1.14.1 // indirect
|
||||
go.opentelemetry.io/collector/receiver/receiverprofiles v0.108.1 // indirect
|
||||
go.opentelemetry.io/otel/exporters/prometheus v0.51.0 // indirect
|
||||
|
|
|
|||
|
|
@ -59,5 +59,3 @@ replace go.opentelemetry.io/collector/extension => ../
|
|||
replace go.opentelemetry.io/collector/pdata => ../../pdata
|
||||
|
||||
replace go.opentelemetry.io/collector/config/configtelemetry => ../../config/configtelemetry
|
||||
|
||||
replace go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus
|
||||
|
|
|
|||
|
|
@ -41,5 +41,3 @@ replace go.opentelemetry.io/collector/pdata => ../../../pdata
|
|||
replace go.opentelemetry.io/collector/confmap => ../../../confmap
|
||||
|
||||
replace go.opentelemetry.io/collector/config/configtelemetry => ../../../config/configtelemetry
|
||||
|
||||
replace go.opentelemetry.io/collector/component/componentstatus => ../../../component/componentstatus
|
||||
|
|
|
|||
|
|
@ -39,5 +39,3 @@ replace go.opentelemetry.io/collector/confmap => ../../confmap
|
|||
replace go.opentelemetry.io/collector/config/configtelemetry => ../../config/configtelemetry
|
||||
|
||||
replace go.opentelemetry.io/collector/component => ../../component
|
||||
|
||||
replace go.opentelemetry.io/collector/component/componentstatus => ../../component/componentstatus
|
||||
|
|
|
|||
|
|
@ -1,48 +0,0 @@
|
|||
// Copyright The OpenTelemetry Authors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package extensiontest // import "go.opentelemetry.io/collector/extension/extensiontest"
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
"go.opentelemetry.io/collector/component/componentstatus"
|
||||
"go.opentelemetry.io/collector/component/componenttest"
|
||||
"go.opentelemetry.io/collector/extension"
|
||||
)
|
||||
|
||||
// NewStatusWatcherExtensionCreateSettings returns a new nop settings for Create*Extension functions.
|
||||
func NewStatusWatcherExtensionCreateSettings() extension.Settings {
|
||||
return extension.Settings{
|
||||
TelemetrySettings: componenttest.NewNopTelemetrySettings(),
|
||||
BuildInfo: component.NewDefaultBuildInfo(),
|
||||
}
|
||||
}
|
||||
|
||||
// NewStatusWatcherExtensionFactory returns a component.ExtensionFactory to construct a status watcher extension.
|
||||
func NewStatusWatcherExtensionFactory(
|
||||
onStatusChanged func(source *componentstatus.InstanceID, event *componentstatus.Event),
|
||||
) extension.Factory {
|
||||
return extension.NewFactory(
|
||||
component.MustNewType("statuswatcher"),
|
||||
func() component.Config {
|
||||
return &struct{}{}
|
||||
},
|
||||
func(context.Context, extension.Settings, component.Config) (component.Component, error) {
|
||||
return &statusWatcherExtension{onStatusChanged: onStatusChanged}, nil
|
||||
},
|
||||
component.StabilityLevelStable)
|
||||
}
|
||||
|
||||
// statusWatcherExtension receives status events reported via component status reporting for testing
|
||||
// purposes.
|
||||
type statusWatcherExtension struct {
|
||||
component.StartFunc
|
||||
component.ShutdownFunc
|
||||
onStatusChanged func(source *componentstatus.InstanceID, event *componentstatus.Event)
|
||||
}
|
||||
|
||||
func (e statusWatcherExtension) ComponentStatusChanged(source *componentstatus.InstanceID, event *componentstatus.Event) {
|
||||
e.onStatusChanged(source, event)
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
// Copyright The OpenTelemetry Authors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package extensiontest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"go.opentelemetry.io/collector/component"
|
||||
"go.opentelemetry.io/collector/component/componentstatus"
|
||||
"go.opentelemetry.io/collector/component/componenttest"
|
||||
)
|
||||
|
||||
func TestStatusWatcherExtension(t *testing.T) {
|
||||
statusChanged := false
|
||||
factory := NewStatusWatcherExtensionFactory(
|
||||
func(*componentstatus.InstanceID, *componentstatus.Event) {
|
||||
statusChanged = true
|
||||
},
|
||||
)
|
||||
require.NotNil(t, factory)
|
||||
assert.Equal(t, component.MustNewType("statuswatcher"), factory.Type())
|
||||
cfg := factory.CreateDefaultConfig()
|
||||
assert.Equal(t, &struct{}{}, cfg)
|
||||
|
||||
ext, err := factory.CreateExtension(context.Background(), NewStatusWatcherExtensionCreateSettings(), cfg)
|
||||
require.NoError(t, err)
|
||||
assert.NoError(t, ext.Start(context.Background(), componenttest.NewNopHost()))
|
||||
assert.False(t, statusChanged)
|
||||
|
||||
ext.(componentstatus.Watcher).ComponentStatusChanged(&componentstatus.InstanceID{}, &componentstatus.Event{})
|
||||
|
||||
assert.True(t, statusChanged)
|
||||
assert.NoError(t, ext.Shutdown(context.Background()))
|
||||
}
|
||||
|
|
@ -6,7 +6,6 @@ require (
|
|||
github.com/google/uuid v1.6.0
|
||||
github.com/stretchr/testify v1.9.0
|
||||
go.opentelemetry.io/collector/component v0.108.1
|
||||
go.opentelemetry.io/collector/component/componentstatus v0.108.1
|
||||
go.opentelemetry.io/collector/confmap v1.14.1
|
||||
go.uber.org/goleak v1.3.0
|
||||
)
|
||||
|
|
@ -57,5 +56,3 @@ replace go.opentelemetry.io/collector/confmap => ../confmap
|
|||
replace go.opentelemetry.io/collector/pdata => ../pdata
|
||||
|
||||
replace go.opentelemetry.io/collector/config/configtelemetry => ../config/configtelemetry
|
||||
|
||||
replace go.opentelemetry.io/collector/component/componentstatus => ../component/componentstatus
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ require (
|
|||
github.com/tklauser/go-sysconf v0.3.12 // indirect
|
||||
github.com/tklauser/numcpus v0.6.1 // indirect
|
||||
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
||||
go.opentelemetry.io/collector/component/componentstatus v0.108.1 // indirect
|
||||
go.opentelemetry.io/collector/config/configtelemetry v0.108.1 // indirect
|
||||
go.opentelemetry.io/collector/pdata v1.14.1 // indirect
|
||||
go.opentelemetry.io/otel v1.29.0 // indirect
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ import (
|
|||
"go.opentelemetry.io/collector/component"
|
||||
"go.opentelemetry.io/collector/component/componentstatus"
|
||||
"go.opentelemetry.io/collector/confmap"
|
||||
"go.opentelemetry.io/collector/extension/extensiontest"
|
||||
"go.opentelemetry.io/collector/extension"
|
||||
"go.opentelemetry.io/collector/processor/processortest"
|
||||
)
|
||||
|
||||
|
|
@ -136,6 +136,33 @@ func TestCollectorReportError(t *testing.T) {
|
|||
assert.Equal(t, StateClosed, col.GetState())
|
||||
}
|
||||
|
||||
// NewStatusWatcherExtensionFactory returns a component.ExtensionFactory to construct a status watcher extension.
|
||||
func NewStatusWatcherExtensionFactory(
|
||||
onStatusChanged func(source *componentstatus.InstanceID, event *componentstatus.Event),
|
||||
) extension.Factory {
|
||||
return extension.NewFactory(
|
||||
component.MustNewType("statuswatcher"),
|
||||
func() component.Config {
|
||||
return &struct{}{}
|
||||
},
|
||||
func(context.Context, extension.Settings, component.Config) (component.Component, error) {
|
||||
return &statusWatcherExtension{onStatusChanged: onStatusChanged}, nil
|
||||
},
|
||||
component.StabilityLevelStable)
|
||||
}
|
||||
|
||||
// statusWatcherExtension receives status events reported via component status reporting for testing
|
||||
// purposes.
|
||||
type statusWatcherExtension struct {
|
||||
component.StartFunc
|
||||
component.ShutdownFunc
|
||||
onStatusChanged func(source *componentstatus.InstanceID, event *componentstatus.Event)
|
||||
}
|
||||
|
||||
func (e statusWatcherExtension) ComponentStatusChanged(source *componentstatus.InstanceID, event *componentstatus.Event) {
|
||||
e.onStatusChanged(source, event)
|
||||
}
|
||||
|
||||
func TestComponentStatusWatcher(t *testing.T) {
|
||||
factories, err := nopFactories()
|
||||
assert.NoError(t, err)
|
||||
|
|
@ -159,7 +186,7 @@ func TestComponentStatusWatcher(t *testing.T) {
|
|||
|
||||
// Add a "statuswatcher" extension that will receive notifications when processor
|
||||
// status changes.
|
||||
factory := extensiontest.NewStatusWatcherExtensionFactory(onStatusChanged)
|
||||
factory := NewStatusWatcherExtensionFactory(onStatusChanged)
|
||||
factories.Extensions[factory.Type()] = factory
|
||||
|
||||
// Create a collector
|
||||
|
|
|
|||
Loading…
Reference in New Issue