Skip to content

Commit

Permalink
Add
Browse files Browse the repository at this point in the history
  • Loading branch information
ZenoCC-Peng committed Jan 14, 2025
1 parent 33e2109 commit d5baea9
Show file tree
Hide file tree
Showing 11 changed files with 356 additions and 455 deletions.
8 changes: 3 additions & 5 deletions receiver/tcpcheckreceiver/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ var (
type Config struct {
scraperhelper.ControllerConfig `mapstructure:",squash"`
metadata.MetricsBuilderConfig `mapstructure:",squash"`
tcpConfigs []*confignet.TCPAddrConfig `mapstructure:",squash"`
Targets []*confignet.TCPAddrConfig `mapstructure:",squash"`
}

func validatePort(port string) error {
Expand Down Expand Up @@ -68,15 +68,13 @@ func validateTarget(cfg *confignet.TCPAddrConfig) error {
func (cfg *Config) Validate() error {
var err error

if len(cfg.tcpConfigs) == 0 {
if len(cfg.Targets) == 0 {
err = multierr.Append(err, errMissingTargets)
}

for _, tcpConfig := range cfg.tcpConfigs {
for _, tcpConfig := range cfg.Targets {
err = multierr.Append(err, validateTarget(tcpConfig))
}

return err
}

// createcient
30 changes: 30 additions & 0 deletions receiver/tcpcheckreceiver/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,33 @@ func TestValidate(t *testing.T) {
})
}
}

//''' others: configtcp test??
//func TestLoadConfig(t *testing.T) {
// // load test config
// cm, err := confmaptest.LoadConf(filepath.Join("testdata", "config.yaml"))
// require.NoError(t, err)
// rcvrs, err := cm.Sub("receivers")
// require.NoError(t, err)
// tcpconf, err := rcvrs.Sub("tcpcheck")
// require.NoError(t, err)
// // unmarshal to receiver config
// actualConfig, ok := NewFactory().CreateDefaultConfig().(*Config)
// require.True(t, ok)
// require.NoError(t, tcpconf.Unmarshal(actualConfig))
//
// // set expected config
// expectedConfig, ok := NewFactory().CreateDefaultConfig().(*Config)
// require.True(t, ok)
//
// expectedConfig.ControllerConfig = scraperhelper.ControllerConfig{
// InitialDelay: time.Second,
// CollectionInterval: 60 * time.Second,
// }
// expectedConfig.TCPClientSettings = configtcp.TCPClientSettings{
// Endpoint: "localhost:80",
// Timeout: 10 * time.Second,
// }
// require.Equal(t, expectedConfig, actualConfig)
//}
//''''
15 changes: 7 additions & 8 deletions receiver/tcpcheckreceiver/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"go.opentelemetry.io/collector/consumer"
"go.opentelemetry.io/collector/receiver"
"go.opentelemetry.io/collector/receiver/scraperhelper"
collectorscraper "go.opentelemetry.io/collector/scraper"
)

// NewFactory creates a factory for tcpcheckreceiver receiver.
Expand All @@ -28,32 +29,30 @@ func newDefaultConfig() component.Config {
return &Config{
ControllerConfig: cfg,
MetricsBuilderConfig: metadata.DefaultMetricsBuilderConfig(),
tcpConfigs: []*confignet.TCPAddrConfig{},
Targets: []*confignet.TCPAddrConfig{},
}
}

// todo: match new version
func newReceiver(
_ context.Context,
settings receiver.Settings,
cfg component.Config,
consumer consumer.Metrics,
) (receiver.Metrics, error) {
tlsCheckConfig, ok := cfg.(*Config)
tcpCheckConfig, ok := cfg.(*Config)
if !ok {
return nil, errConfigTCPCheck
}

//mp := newScraper(tlsCheckConfig, settings, getConnectionState)
mp := newScraper(tlsCheckConfig, settings)
s, err := scraperhelper.NewScraperWithoutType(mp.scrape)
mp := newScraper(tcpCheckConfig, settings)
s, err := collectorscraper.NewMetrics(mp.scrape)
if err != nil {
return nil, err
}
opt := scraperhelper.AddScraperWithType(metadata.Type, s)
opt := scraperhelper.AddScraper(metadata.Type, s)

return scraperhelper.NewScraperControllerReceiver(
&tlsCheckConfig.ControllerConfig,
&tcpCheckConfig.ControllerConfig,
settings,
consumer,
opt,
Expand Down
4 changes: 3 additions & 1 deletion receiver/tcpcheckreceiver/factory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package tcpcheckreceiver // import "github.com/open-telemetry/opentelemetry-coll

import (
"context"
"go.opentelemetry.io/collector/config/confignet"
"testing"
"time"

Expand Down Expand Up @@ -36,13 +37,14 @@ func TestNewFactory(t *testing.T) {
factory := NewFactory()
var expectedCfg component.Config = &Config{
ControllerConfig: scraperhelper.ControllerConfig{
CollectionInterval: 10 * time.Second,
CollectionInterval: 60 * time.Second,
InitialDelay: time.Second,
},
//TCPClientSettings: configtcp.TCPClientSettings{
// Timeout: 10 * time.Second,
//},
MetricsBuilderConfig: metadata.DefaultMetricsBuilderConfig(),
Targets: []*confignet.TCPAddrConfig{},
}

require.Equal(t, expectedCfg, factory.CreateDefaultConfig())
Expand Down
22 changes: 13 additions & 9 deletions receiver/tcpcheckreceiver/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ require (
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/collector/component v0.115.0
go.opentelemetry.io/collector/component/componenttest v0.115.0
go.opentelemetry.io/collector/config/confignet v1.17.1-0.20241008154146-ea48c09c31ae
go.opentelemetry.io/collector/config/confignet v1.23.0
go.opentelemetry.io/collector/confmap v1.17.1-0.20241008154146-ea48c09c31ae
go.opentelemetry.io/collector/consumer v1.21.0
go.opentelemetry.io/collector/consumer/consumertest v0.115.0
go.opentelemetry.io/collector/extension v0.111.1-0.20241008154146-ea48c09c31ae
go.opentelemetry.io/collector/extension/auth v0.111.1-0.20241008154146-ea48c09c31ae
go.opentelemetry.io/collector/pdata v1.21.0
go.opentelemetry.io/collector/pdata v1.23.0
go.opentelemetry.io/collector/receiver v0.115.0
go.opentelemetry.io/collector/receiver/receivertest v0.115.0
go.uber.org/goleak v1.3.0
Expand All @@ -22,6 +22,7 @@ require (
)

require (
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
Expand All @@ -36,11 +37,14 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.117.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.117.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/collector v0.117.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/consumererror v0.115.0 // indirect
go.opentelemetry.io/collector/consumer/consumerprofiles v0.115.0 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.115.0 // indirect
go.opentelemetry.io/collector/pdata/pprofile v0.117.0 // indirect
go.opentelemetry.io/collector/pipeline v0.115.0 // indirect
go.opentelemetry.io/collector/receiver/receiverprofiles v0.115.0 // indirect
go.opentelemetry.io/collector/scraper v0.115.0 // indirect
Expand All @@ -49,12 +53,12 @@ require (
go.opentelemetry.io/otel/sdk v1.32.0 // indirect
go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect
go.opentelemetry.io/otel/trace v1.32.0 // indirect
golang.org/x/net v0.28.0 // indirect
golang.org/x/sys v0.27.0 // indirect
golang.org/x/text v0.17.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd // indirect
google.golang.org/grpc v1.67.1 // indirect
google.golang.org/protobuf v1.35.2 // indirect
golang.org/x/net v0.33.0 // indirect
golang.org/x/sys v0.28.0 // indirect
golang.org/x/text v0.21.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 // indirect
google.golang.org/grpc v1.69.2 // indirect
google.golang.org/protobuf v1.36.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

Expand Down
Loading

0 comments on commit d5baea9

Please sign in to comment.