Skip to content

Commit

Permalink
Moves stanzareceiver into an internal package (open-telemetry#2376)
Browse files Browse the repository at this point in the history
  • Loading branch information
djaglowski committed Feb 18, 2021
1 parent c0ebcd6 commit 28d721d
Show file tree
Hide file tree
Showing 20 changed files with 57 additions and 227 deletions.
3 changes: 2 additions & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ extension/observer/ @open-telemetry/collector-contrib-app
internal/awsxray/ @open-telemetry/collector-contrib-approvers @anuraaga @mxiamxia
internal/k8sconfig/ @open-telemetry/collector-contrib-approvers @pmcollins @asuresh4
internal/splunk/ @open-telemetry/collector-contrib-approvers @pmcollins @asuresh4
internal/stanza/ @open-telemetry/collector-contrib-approvers @djaglowski

pkg/batchpertrace/ @open-telemetry/collector-contrib-approvers @jpkrohling

Expand All @@ -71,7 +72,7 @@ receiver/sapmreceiver/ @open-telemetry/collector-contrib-app
receiver/signalfxreceiver/ @open-telemetry/collector-contrib-approvers @pjanotti @asuresh4
receiver/simpleprometheusreceiver/ @open-telemetry/collector-contrib-approvers @asuresh4
receiver/splunkhecreceiver/ @open-telemetry/collector-contrib-approvers @atoulme @keitwb
receiver/stanzareceiver/ @open-telemetry/collector-contrib-approvers @djaglowski
receiver/filelogreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski
receiver/statsdreceiver/ @open-telemetry/collector-contrib-approvers @keitwb @jmacd
receiver/wavefrontreceiver/ @open-telemetry/collector-contrib-approvers @pjanotti
receiver/windowsperfcountersreceiver/ @open-telemetry/collector-contrib-approvers @dashpole
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sco

replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/awsxray => ./internal/awsxray

replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/stanza => ./internal/stanza

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter => ./exporter/alibabacloudlogserviceexporter

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsprometheusremotewriteexporter => ./exporter/awsprometheusremotewriteexporter
Expand Down Expand Up @@ -167,8 +169,6 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxre

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zookeeperreceiver => ./receiver/zookeeperreceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/stanzareceiver => ./receiver/stanzareceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver => ./receiver/filelogreceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/memcachedreceiver => ./receiver/memcachedreceiver
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package stanzareceiver
package stanza

import (
"github.com/open-telemetry/opentelemetry-log-collection/operator"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package stanzareceiver
package stanza

import (
"fmt"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package stanzareceiver
package stanza

import (
"fmt"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
package stanzareceiver

// Copyright The OpenTelemetry Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -14,6 +12,8 @@ package stanzareceiver
// See the License for the specific language governing permissions and
// limitations under the License.

package stanza

import (
"context"
"sync"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package stanzareceiver
package stanza

import (
"context"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package stanzareceiver
package stanza

import (
"context"
Expand Down Expand Up @@ -71,7 +71,7 @@ func createLogsReceiver(logReceiverType LogReceiverType) receiverhelper.CreateLo
return nil, err
}

return &stanzareceiver{
return &receiver{
agent: logAgent,
emitter: emitter,
consumer: nextConsumer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package stanzareceiver
package stanza

import (
"context"
Expand Down
2 changes: 1 addition & 1 deletion receiver/stanzareceiver/go.mod → internal/stanza/go.mod
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module github.com/open-telemetry/opentelemetry-collector-contrib/receiver/stanzareceiver
module github.com/open-telemetry/opentelemetry-collector-contrib/internal/stanza

go 1.14

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
package stanzareceiver

// Copyright The OpenTelemetry Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -14,6 +12,8 @@ package stanzareceiver
// See the License for the specific language governing permissions and
// limitations under the License.

package stanza

import (
"context"
"fmt"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,38 +12,38 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package stanzareceiver
package stanza

import (
"context"
"fmt"
"sync"

stanza "github.com/open-telemetry/opentelemetry-log-collection/agent"
"github.com/open-telemetry/opentelemetry-log-collection/agent"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/component/componenterror"
"go.opentelemetry.io/collector/consumer"
"go.uber.org/zap"
)

type stanzareceiver struct {
type receiver struct {
sync.Mutex
startOnce sync.Once
stopOnce sync.Once
wg sync.WaitGroup
cancel context.CancelFunc

agent *stanza.LogAgent
agent *agent.LogAgent
emitter *LogEmitter
consumer consumer.LogsConsumer
logger *zap.Logger
}

// Ensure this receiver adheres to required interface
var _ component.LogsReceiver = (*stanzareceiver)(nil)
var _ component.LogsReceiver = (*receiver)(nil)

// Start tells the receiver to start
func (r *stanzareceiver) Start(ctx context.Context, host component.Host) error {
func (r *receiver) Start(ctx context.Context, host component.Host) error {
r.Lock()
defer r.Unlock()
err := componenterror.ErrAlreadyStarted
Expand Down Expand Up @@ -81,7 +81,7 @@ func (r *stanzareceiver) Start(ctx context.Context, host component.Host) error {
}

// Shutdown is invoked during service shutdown
func (r *stanzareceiver) Shutdown(context.Context) error {
func (r *receiver) Shutdown(context.Context) error {
r.Lock()
defer r.Unlock()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package stanzareceiver
package stanza

import (
"context"
Expand Down Expand Up @@ -41,15 +41,15 @@ func TestStart(t *testing.T) {

factory := NewFactory(TestReceiverType{})

receiver, err := factory.CreateLogsReceiver(context.Background(), params, factory.CreateDefaultConfig(), &mockConsumer)
logsReceiver, err := factory.CreateLogsReceiver(context.Background(), params, factory.CreateDefaultConfig(), &mockConsumer)
require.NoError(t, err, "receiver should successfully build")

err = receiver.Start(context.Background(), componenttest.NewNopHost())
err = logsReceiver.Start(context.Background(), componenttest.NewNopHost())
require.NoError(t, err, "receiver start failed")

obsReceiver := receiver.(*stanzareceiver)
obsReceiver.emitter.logChan <- entry.New()
receiver.Shutdown(context.Background())
stanzaReceiver := logsReceiver.(*receiver)
stanzaReceiver.emitter.logChan <- entry.New()
logsReceiver.Shutdown(context.Background())
require.Equal(t, 1, mockConsumer.received, "one log entry expected")
}

Expand Down Expand Up @@ -78,15 +78,15 @@ func TestHandleConsumeError(t *testing.T) {
mockConsumer := mockLogsRejecter{}
factory := NewFactory(TestReceiverType{})

receiver, err := factory.CreateLogsReceiver(context.Background(), params, factory.CreateDefaultConfig(), &mockConsumer)
logsReceiver, err := factory.CreateLogsReceiver(context.Background(), params, factory.CreateDefaultConfig(), &mockConsumer)
require.NoError(t, err, "receiver should successfully build")

err = receiver.Start(context.Background(), componenttest.NewNopHost())
err = logsReceiver.Start(context.Background(), componenttest.NewNopHost())
require.NoError(t, err, "receiver start failed")

obsReceiver := receiver.(*stanzareceiver)
obsReceiver.emitter.logChan <- entry.New()
receiver.Shutdown(context.Background())
stanzaReceiver := logsReceiver.(*receiver)
stanzaReceiver.emitter.logChan <- entry.New()
logsReceiver.Shutdown(context.Background())
require.Equal(t, 1, mockConsumer.rejected, "one log entry expected")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package stanzareceiver
package stanza

import (
// Register parsers for stanza-based log receivers
Expand Down
18 changes: 9 additions & 9 deletions receiver/filelogreceiver/filelog.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,17 @@ import (
"go.opentelemetry.io/collector/config/configmodels"
"gopkg.in/yaml.v2"

"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/stanzareceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/stanza"
)

const typeStr = "filelog"

// NewFactory creates a factory for filelog receiver
func NewFactory() component.ReceiverFactory {
return stanzareceiver.NewFactory(ReceiverType{})
return stanza.NewFactory(ReceiverType{})
}

// ReceiverType implements stanzareceiver.LogReceiverType
// ReceiverType implements stanza.LogReceiverType
// to create a file tailing receiver
type ReceiverType struct{}

Expand All @@ -46,26 +46,26 @@ func (f ReceiverType) CreateDefaultConfig() configmodels.Receiver {
}
func createDefaultConfig() *FileLogConfig {
return &FileLogConfig{
BaseConfig: stanzareceiver.BaseConfig{
BaseConfig: stanza.BaseConfig{
ReceiverSettings: configmodels.ReceiverSettings{
TypeVal: configmodels.Type(typeStr),
NameVal: typeStr,
},
Operators: stanzareceiver.OperatorConfigs{},
Operators: stanza.OperatorConfigs{},
},
Input: stanzareceiver.InputConfig{},
Input: stanza.InputConfig{},
}
}

// BaseConfig gets the base config from config, for now
func (f ReceiverType) BaseConfig(cfg configmodels.Receiver) stanzareceiver.BaseConfig {
func (f ReceiverType) BaseConfig(cfg configmodels.Receiver) stanza.BaseConfig {
return cfg.(*FileLogConfig).BaseConfig
}

// FileLogConfig defines configuration for the filelog receiver
type FileLogConfig struct {
stanzareceiver.BaseConfig `mapstructure:",squash"`
Input stanzareceiver.InputConfig `mapstructure:",remain"`
stanza.BaseConfig `mapstructure:",squash"`
Input stanza.InputConfig `mapstructure:",remain"`
}

// DecodeInputConfig unmarshals the input operator
Expand Down
22 changes: 11 additions & 11 deletions receiver/filelogreceiver/filelog_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import (
"go.opentelemetry.io/collector/consumer/pdata"
"go.uber.org/zap/zaptest"

"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/stanzareceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/stanza"
)

func TestDefaultConfig(t *testing.T) {
Expand Down Expand Up @@ -106,9 +106,9 @@ func TestReadStaticFile(t *testing.T) {
e3.AddLabel("file_name", "simple.log")

expectedLogs := []pdata.Logs{
stanzareceiver.Convert(e1),
stanzareceiver.Convert(e2),
stanzareceiver.Convert(e3),
stanza.Convert(e1),
stanza.Convert(e2),
stanza.Convert(e3),
}

f := NewFactory()
Expand Down Expand Up @@ -190,7 +190,7 @@ func (rt *rotationTest) Run(t *testing.T) {
e := entry.New()
e.Timestamp = expectedTimestamp
e.Set(entry.NewRecordField("msg"), msg)
expectedLogs[i] = stanzareceiver.Convert(e)
expectedLogs[i] = stanza.Convert(e)
}

rcvr, err := f.CreateLogsReceiver(context.Background(), params, testdataRotateTestYamlAsMap(tempDir), sink)
Expand Down Expand Up @@ -253,12 +253,12 @@ func (h *testHost) ReportFatalError(err error) {

func testdataConfigYamlAsMap() *FileLogConfig {
return &FileLogConfig{
BaseConfig: stanzareceiver.BaseConfig{
BaseConfig: stanza.BaseConfig{
ReceiverSettings: configmodels.ReceiverSettings{
TypeVal: "filelog",
NameVal: "filelog",
},
Operators: stanzareceiver.OperatorConfigs{
Operators: stanza.OperatorConfigs{
map[string]interface{}{
"type": "regex_parser",
"regex": "^(?P<time>\\d{4}-\\d{2}-\\d{2}) (?P<sev>[A-Z]*) (?P<msg>.*)$",
Expand All @@ -272,7 +272,7 @@ func testdataConfigYamlAsMap() *FileLogConfig {
},
},
},
Input: stanzareceiver.InputConfig{
Input: stanza.InputConfig{
"include": []interface{}{
"testdata/simple.log",
},
Expand All @@ -283,12 +283,12 @@ func testdataConfigYamlAsMap() *FileLogConfig {

func testdataRotateTestYamlAsMap(tempDir string) *FileLogConfig {
return &FileLogConfig{
BaseConfig: stanzareceiver.BaseConfig{
BaseConfig: stanza.BaseConfig{
ReceiverSettings: configmodels.ReceiverSettings{
TypeVal: "filelog",
NameVal: "filelog",
},
Operators: stanzareceiver.OperatorConfigs{
Operators: stanza.OperatorConfigs{
map[string]interface{}{
"type": "regex_parser",
"regex": "^(?P<ts>\\d{4}-\\d{2}-\\d{2}) (?P<msg>[^\n]+)",
Expand All @@ -299,7 +299,7 @@ func testdataRotateTestYamlAsMap(tempDir string) *FileLogConfig {
},
},
},
Input: stanzareceiver.InputConfig{
Input: stanza.InputConfig{
"type": "file_input",
"include": []interface{}{
fmt.Sprintf("%s/*", tempDir),
Expand Down
4 changes: 2 additions & 2 deletions receiver/filelogreceiver/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ go 1.14

require (
github.com/observiq/nanojack v0.0.0-20201106172433-343928847ebc
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/stanzareceiver v0.0.0-00010101000000-000000000000
github.com/open-telemetry/opentelemetry-collector-contrib/internal/stanza v0.0.0-00010101000000-000000000000
github.com/open-telemetry/opentelemetry-log-collection v0.14.0
github.com/stretchr/testify v1.7.0
go.opentelemetry.io/collector v0.20.1-0.20210218001603-48151d869607
go.uber.org/zap v1.16.0
gopkg.in/yaml.v2 v2.4.0
)

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/stanzareceiver => ../stanzareceiver
replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/stanza => ../../internal/stanza
Loading

0 comments on commit 28d721d

Please sign in to comment.