Skip to content

Commit

Permalink
Merge branch 'release-v0.8.0' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
pmm-sumo committed Aug 25, 2020
2 parents eda8990 + 8c9efcb commit f4644bb
Show file tree
Hide file tree
Showing 175 changed files with 6,053 additions and 9,346 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,20 @@ The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-co
- `stackdriver` trace exporter: Move to new interface and pdata (#486)
- `metricstranform` processor: Keep timeseries and points in order after aggregation (#663)
- `k8scluster` receiver: Change `container.spec.name` label to `k8s.container.name` (#681)
- Migrate receiver creator to internal data model (#701)
- Add ec2 support to `resourcedetection` processor (#587)
- Enable timeout, sending queue and retry for SAPM exporter (#707)

## 🧰 Bug fixes 🧰

- `azuremonitor` exporter: Correct HTTP status code success mapping (#588)
- `k8scluster` receiver: Fix owner reference in metadata updates (#649)
- `awsxray` exporter: Fix handling of db system (#697)

## 🚀 New components 🚀

- Skeleton for AWS ECS container metrics receiver (#463)
- `prometheus_exec` receiver (#655)

## v0.7.0

Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ stability-tests: otelcontribcol

.PHONY: gotidy
gotidy:
$(MAKE) for-all CMD="rm -fr go.sum"
$(MAKE) for-all CMD="go mod tidy"

.PHONY: gofmt
Expand Down
14 changes: 8 additions & 6 deletions cmd/otelcontribcol/components.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import (
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusexecreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver"
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sapmreceiver"
Expand Down Expand Up @@ -79,11 +80,12 @@ func components() (component.Factories, error) {
&signalfxreceiver.Factory{},
&carbonreceiver.Factory{},
&wavefrontreceiver.Factory{},
&redisreceiver.Factory{},
&kubeletstatsreceiver.Factory{},
&simpleprometheusreceiver.Factory{},
redisreceiver.NewFactory(),
kubeletstatsreceiver.NewFactory(),
simpleprometheusreceiver.NewFactory(),
&k8sclusterreceiver.Factory{},
&receivercreator.Factory{},
prometheusexecreceiver.NewFactory(),
receivercreator.NewFactory(),
}
for _, rcv := range factories.Receivers {
receivers = append(receivers, rcv)
Expand All @@ -95,8 +97,8 @@ func components() (component.Factories, error) {

exporters := []component.ExporterFactoryBase{
stackdriverexporter.NewFactory(),
&azuremonitorexporter.Factory{},
&signalfxexporter.Factory{},
azuremonitorexporter.NewFactory(),
signalfxexporter.NewFactory(),
sapmexporter.NewFactory(),
kinesisexporter.NewFactory(),
awsxrayexporter.NewFactory(),
Expand Down
2 changes: 1 addition & 1 deletion exporter/alibabacloudlogserviceexporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ require (
github.com/gogo/protobuf v1.3.1
github.com/golang/protobuf v1.4.2
github.com/stretchr/testify v1.6.1
go.opentelemetry.io/collector v0.8.0
go.opentelemetry.io/collector v0.8.1-0.20200815205113-8e5c6065eb0e
go.uber.org/zap v1.15.0
)
174 changes: 2 additions & 172 deletions exporter/alibabacloudlogserviceexporter/go.sum

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions exporter/awsxrayexporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ module github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxra
go 1.14

require (
github.com/aws/aws-sdk-go v1.34.1
github.com/aws/aws-sdk-go v1.34.5
github.com/open-telemetry/opentelemetry-proto v0.4.0
github.com/stretchr/testify v1.6.1
go.opentelemetry.io/collector v0.8.0
go.opentelemetry.io/collector v0.8.1-0.20200815205113-8e5c6065eb0e
go.uber.org/zap v1.15.0
golang.org/x/net v0.0.0-20200625001655-4c5254603344
google.golang.org/grpc/examples v0.0.0-20200728194956-1c32b02682df // indirect
Expand Down
260 changes: 4 additions & 256 deletions exporter/awsxrayexporter/go.sum

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion exporter/awsxrayexporter/translator/segment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ func TestClientSpanWithDbComponent(t *testing.T) {
parentSpanID := newSegmentID()
enterpriseAppID := "25F2E73B-4769-4C79-9DF3-7EBE85D571EA"
attributes := make(map[string]interface{})
attributes[semconventions.AttributeDBSystem] = "sql"
attributes[semconventions.AttributeDBSystem] = "mysql"
attributes[semconventions.AttributeDBName] = "customers"
attributes[semconventions.AttributeDBStatement] = spanName
attributes[semconventions.AttributeDBUser] = "userprefsvc"
Expand Down
37 changes: 33 additions & 4 deletions exporter/awsxrayexporter/translator/sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func makeSQL(attributes map[string]string) (map[string]string, *SQLData) {
filtered = make(map[string]string)
sqlData SQLData
dbURL string
dbType string
dbSystem string
dbInstance string
dbStatement string
dbUser string
Expand All @@ -46,7 +46,7 @@ func makeSQL(attributes map[string]string) (map[string]string, *SQLData) {
case semconventions.AttributeDBConnectionString:
dbURL = value
case semconventions.AttributeDBSystem:
dbType = value
dbSystem = value
case semconventions.AttributeDBName:
dbInstance = value
case semconventions.AttributeDBStatement:
Expand All @@ -58,7 +58,7 @@ func makeSQL(attributes map[string]string) (map[string]string, *SQLData) {
}
}

if dbType != "sql" {
if !isSQL(dbSystem) {
// Either no DB attributes or this is not an SQL DB.
return attributes, nil
}
Expand All @@ -69,9 +69,38 @@ func makeSQL(attributes map[string]string) (map[string]string, *SQLData) {
url := dbURL + "/" + dbInstance
sqlData = SQLData{
URL: url,
DatabaseType: dbType,
DatabaseType: dbSystem,
User: dbUser,
SanitizedQuery: dbStatement,
}
return filtered, &sqlData
}

func isSQL(system string) bool {
switch system {
case "db2":
fallthrough
case "derby":
fallthrough
case "hive":
fallthrough
case "mariadb":
fallthrough
case "mssql":
fallthrough
case "mysql":
fallthrough
case "oracle":
fallthrough
case "postgresql":
fallthrough
case "sqlite":
fallthrough
case "teradata":
fallthrough
case "other_sql":
return true
default:
}
return false
}
4 changes: 2 additions & 2 deletions exporter/awsxrayexporter/translator/sql_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (
func TestClientSpanWithStatementAttribute(t *testing.T) {
attributes := make(map[string]string)
attributes[semconventions.AttributeComponent] = "db"
attributes[semconventions.AttributeDBSystem] = "sql"
attributes[semconventions.AttributeDBSystem] = "mysql"
attributes[semconventions.AttributeDBName] = "customers"
attributes[semconventions.AttributeDBStatement] = "SELECT * FROM user WHERE user_id = ?"
attributes[semconventions.AttributeDBUser] = "readonly_user"
Expand Down Expand Up @@ -66,7 +66,7 @@ func TestClientSpanWithNonSQLDatabase(t *testing.T) {
func TestClientSpanWithoutDBurlAttribute(t *testing.T) {
attributes := make(map[string]string)
attributes[semconventions.AttributeComponent] = "db"
attributes[semconventions.AttributeDBSystem] = "sql"
attributes[semconventions.AttributeDBSystem] = "postgresql"
attributes[semconventions.AttributeDBName] = "customers"
attributes[semconventions.AttributeDBStatement] = "SELECT * FROM user WHERE user_id = ?"
attributes[semconventions.AttributeDBUser] = "readonly_user"
Expand Down
2 changes: 1 addition & 1 deletion exporter/azuremonitorexporter/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func TestLoadConfig(t *testing.T) {
factories, err := componenttest.ExampleComponents()
assert.Nil(t, err)

factory := &Factory{}
factory := &factory{}
factories.Exporters[configmodels.Type(typeStr)] = factory
cfg, err := configtest.LoadConfigFile(
t, path.Join(".", "testdata", "config.yaml"), factories,
Expand Down
18 changes: 11 additions & 7 deletions exporter/azuremonitorexporter/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,19 +36,23 @@ var (
errUnexpectedConfigurationType = errors.New("failed to cast configuration to Azure Monitor Config")
)

// Factory for Azure Monitor exporter.
// NewFactory returns a factory for Azure Monitor exporter.
func NewFactory() component.ExporterFactory {
return &factory{}
}

// Implements the interface from go.opentelemetry.io/collector/exporter/factory.go
type Factory struct {
type factory struct {
TransportChannel transportChannel
}

// Type gets the type of the Exporter config created by this factory.
func (f *Factory) Type() configmodels.Type {
func (f *factory) Type() configmodels.Type {
return configmodels.Type(typeStr)
}

// CreateDefaultConfig creates the default configuration for exporter.
func (f *Factory) CreateDefaultConfig() configmodels.Exporter {
func (f *factory) CreateDefaultConfig() configmodels.Exporter {

return &Config{
ExporterSettings: configmodels.ExporterSettings{
Expand All @@ -62,7 +66,7 @@ func (f *Factory) CreateDefaultConfig() configmodels.Exporter {
}

// CreateTraceExporter creates a trace exporter based on this config.
func (f *Factory) CreateTraceExporter(
func (f *factory) CreateTraceExporter(
ctx context.Context,
params component.ExporterCreateParams,
cfg configmodels.Exporter,
Expand All @@ -78,7 +82,7 @@ func (f *Factory) CreateTraceExporter(
}

// CreateMetricsExporter creates a metrics exporter based on this config.
func (f *Factory) CreateMetricsExporter(
func (f *factory) CreateMetricsExporter(
ctx context.Context,
params component.ExporterCreateParams,
cfg configmodels.Exporter,
Expand All @@ -88,7 +92,7 @@ func (f *Factory) CreateMetricsExporter(

// Configures the transport channel.
// This method is not thread-safe
func (f *Factory) getTransportChannel(exporterConfig *Config, logger *zap.Logger) transportChannel {
func (f *factory) getTransportChannel(exporterConfig *Config, logger *zap.Logger) transportChannel {

// The default transport channel uses the default send mechanism from the AppInsights telemetry client.
// This default channel handles batching, appropriate retries, and is backed by memory.
Expand Down
29 changes: 14 additions & 15 deletions exporter/azuremonitorexporter/factory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,16 @@ type badConfig struct {
}

func TestExporterTypeKey(t *testing.T) {
factory := Factory{}

assert.Equal(t, configmodels.Type(typeStr), factory.Type())
f := factory{}
assert.Equal(t, configmodels.Type(typeStr), f.Type())
}

func TestCreateMetricsExporter(t *testing.T) {
factory := Factory{}
f := factory{}

ctx := context.Background()
params := component.ExporterCreateParams{Logger: zap.NewNop()}
exporter, err := factory.CreateMetricsExporter(ctx, params, &Config{})
exporter, err := f.CreateMetricsExporter(ctx, params, &Config{})

// unsupported
assert.Nil(t, exporter)
Expand All @@ -50,37 +49,37 @@ func TestCreateMetricsExporter(t *testing.T) {

func TestCreateTraceExporterUsingSpecificTransportChannel(t *testing.T) {
// mock transport channel creation
factory := Factory{TransportChannel: &mockTransportChannel{}}
f := factory{TransportChannel: &mockTransportChannel{}}
ctx := context.Background()
params := component.ExporterCreateParams{Logger: zap.NewNop()}
exporter, err := factory.CreateTraceExporter(ctx, params, factory.CreateDefaultConfig())
exporter, err := f.CreateTraceExporter(ctx, params, f.CreateDefaultConfig())
assert.NotNil(t, exporter)
assert.Nil(t, err)
}

func TestCreateTraceExporterUsingDefaultTransportChannel(t *testing.T) {
// We get the default transport channel creation, if we don't specify one during factory creation
factory := Factory{}
assert.Nil(t, factory.TransportChannel)
// We get the default transport channel creation, if we don't specify one during f creation
f := factory{}
assert.Nil(t, f.TransportChannel)
ctx := context.Background()
logger, _ := zap.NewDevelopment()
params := component.ExporterCreateParams{Logger: logger}
exporter, err := factory.CreateTraceExporter(ctx, params, factory.CreateDefaultConfig())
exporter, err := f.CreateTraceExporter(ctx, params, f.CreateDefaultConfig())
assert.NotNil(t, exporter)
assert.Nil(t, err)
assert.NotNil(t, factory.TransportChannel)
assert.NotNil(t, f.TransportChannel)
}

func TestCreateTraceExporterUsingBadConfig(t *testing.T) {
// We get the default transport channel creation, if we don't specify one during factory creation
factory := Factory{}
assert.Nil(t, factory.TransportChannel)
f := factory{}
assert.Nil(t, f.TransportChannel)
ctx := context.Background()
params := component.ExporterCreateParams{Logger: zap.NewNop()}

badConfig := &badConfig{}

exporter, err := factory.CreateTraceExporter(ctx, params, badConfig)
exporter, err := f.CreateTraceExporter(ctx, params, badConfig)
assert.Nil(t, exporter)
assert.NotNil(t, err)
}
2 changes: 1 addition & 1 deletion exporter/azuremonitorexporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ require (
github.com/microsoft/ApplicationInsights-Go v0.4.3
github.com/stretchr/testify v1.6.1
github.com/tedsuo/ifrit v0.0.0-20191009134036-9a97d0632f00 // indirect
go.opentelemetry.io/collector v0.8.0
go.opentelemetry.io/collector v0.8.1-0.20200815205113-8e5c6065eb0e
go.uber.org/zap v1.15.0
golang.org/x/net v0.0.0-20200625001655-4c5254603344
google.golang.org/grpc v1.31.0
Expand Down
Loading

0 comments on commit f4644bb

Please sign in to comment.