Skip to content

Commit 1128ecd

Browse files
initial commit
1 parent 8ac86f8 commit 1128ecd

File tree

10 files changed

+462
-0
lines changed

10 files changed

+462
-0
lines changed

connector/sumconnector/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include ../../Makefile.Common

connector/sumconnector/README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Sum Connector
2+
<!-- status autogenerated section -->
3+
| Status | |
4+
| ------------- |-----------|
5+
| Distributions | [contrib] |
6+
| Issues | [![Open issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aopen%20label%3Aconnector%2Fsum%20&label=open&color=orange&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aopen+is%3Aissue+label%3Aconnector%2Fsum) [![Closed issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aclosed%20label%3Aconnector%2Fsum%20&label=closed&color=blue&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aclosed+is%3Aissue+label%3Aconnector%2Fsum) |
7+
| [Code Owners](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CONTRIBUTING.md#becoming-a-code-owner) | [@greatestusername](https://www.github.com/greatestusername), [@shalper2](https://www.github.com/shalper2) |
8+
9+
[development]: https://github.com/open-telemetry/opentelemetry-collector#development
10+
[contrib]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-contrib
11+
12+
## Supported Pipeline Types
13+
14+
| [Exporter Pipeline Type] | [Receiver Pipeline Type] | [Stability Level] |
15+
| ------------------------ | ------------------------ | ----------------- |
16+
| traces | metrics | [development] |
17+
| metrics | metrics | [development] |
18+
| logs | metrics | [development] |
19+
20+
[Exporter Pipeline Type]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/README.md#exporter-pipeline-type
21+
[Receiver Pipeline Type]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/README.md#receiver-pipeline-type
22+
[Stability Level]: https://github.com/open-telemetry/opentelemetry-collector#stability-levels
23+
<!-- end autogenerated section -->
24+
25+
The `sum` connector can be used to sum attribute values from spans, span events, metrics, data points, and log records.
26+
## Configuration
27+
28+
If you are not already familiar with connectors, you may find it helpful to first visit the [Connectors README].
29+
30+
### Example Configuration
31+
32+
```yaml
33+
receivers:
34+
foo:
35+
connectors:
36+
sum:
37+
logs:
38+
checkout.total:
39+
source_attribute:
40+
- attributes["total.payment"]
41+
conditions:
42+
- attributes["total.payment"] != "NULL"
43+
attributes:
44+
- key: payment.processor
45+
default_value: unspecified_processor
46+
exporters:
47+
bar:
48+
49+
service:
50+
pipelines:
51+
metrics/sum:
52+
receivers: [sum]
53+
exporters: [bar]
54+
logs:
55+
receivers: [foo]
56+
exporters: [sum]
57+
```
58+
59+
[Connectors README]: https://github.com/open-telemetry/opentelemetry-collector/blob/main/connector/README.md

connector/sumconnector/config.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package sumconnector // import "github.com/open-telemetry/opentelemetry-collector-contrib/connector/sumconnector"
5+
6+
import (
7+
)
8+
9+
// Config for the connector
10+
type Config struct {
11+
Spans map[string]MetricInfo `mapstructure:"spans"`
12+
SpanEvents map[string]MetricInfo `mapstructure:"spanevents"`
13+
Metrics map[string]MetricInfo `mapstructure:"metrics"`
14+
DataPoints map[string]MetricInfo `mapstructure:"datapoints"`
15+
Logs map[string]MetricInfo `mapstructure:"logs"`
16+
}
17+
18+
// MetricInfo for a data type
19+
type MetricInfo struct {
20+
Description string `mapstructure:"description"`
21+
Conditions []string `mapstructure:"conditions"`
22+
Attributes []AttributeConfig `mapstructure:"attributes"`
23+
}
24+
25+
type AttributeConfig struct {
26+
Key string `mapstructure:"key"`
27+
DefaultValue any `mapstructure:"default_value"`
28+
}

connector/sumconnector/factory.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
//go:generate mdatagen metadata.yaml
5+
6+
package sumconnector // import "github.com/open-telemetry/opentelemetry-collector-contrib/connector/sumconnector"
7+
8+
import (
9+
"go.opentelemetry.io/collector/component"
10+
"go.opentelemetry.io/collector/connector"
11+
12+
"github.com/open-telemetry/opentelemetry-collector-contrib/connector/sumconnector/internal/metadata"
13+
)
14+
15+
// NewFactory returns a ConnectorFactory.
16+
func NewFactory() connector.Factory {
17+
return connector.NewFactory(
18+
metadata.Type,
19+
createDefaultConfig,
20+
connector.WithTracesToMetrics(nil, metadata.TracesToMetricsStability),
21+
connector.WithMetricsToMetrics(nil, metadata.MetricsToMetricsStability),
22+
connector.WithLogsToMetrics(nil, metadata.LogsToMetricsStability),
23+
)
24+
}
25+
26+
// createDefaultConfig creates the default configuration.
27+
func createDefaultConfig() component.Config {
28+
return &Config{}
29+
}
30+

connector/sumconnector/generated_component_test.go

Lines changed: 87 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

connector/sumconnector/generated_package_test.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

connector/sumconnector/go.mod

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
module github.com/open-telemetry/opentelemetry-collector-contrib/connector/sumconnector
2+
3+
go 1.21.0
4+
5+
require (
6+
github.com/stretchr/testify v1.9.0
7+
go.opentelemetry.io/collector/component v0.103.0
8+
go.opentelemetry.io/collector/confmap v0.103.0
9+
go.opentelemetry.io/collector/connector v0.103.0
10+
go.opentelemetry.io/collector/consumer v0.103.0
11+
go.uber.org/goleak v1.3.0
12+
)
13+
14+
require (
15+
github.com/beorn7/perks v1.0.1 // indirect
16+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
17+
github.com/davecgh/go-spew v1.1.1 // indirect
18+
github.com/go-logr/logr v1.4.1 // indirect
19+
github.com/go-logr/stdr v1.2.2 // indirect
20+
github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect
21+
github.com/gogo/protobuf v1.3.2 // indirect
22+
github.com/google/uuid v1.6.0 // indirect
23+
github.com/hashicorp/go-version v1.7.0 // indirect
24+
github.com/json-iterator/go v1.1.12 // indirect
25+
github.com/knadh/koanf/maps v0.1.1 // indirect
26+
github.com/knadh/koanf/providers/confmap v0.1.0 // indirect
27+
github.com/knadh/koanf/v2 v2.1.1 // indirect
28+
github.com/mitchellh/copystructure v1.2.0 // indirect
29+
github.com/mitchellh/reflectwalk v1.0.2 // indirect
30+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
31+
github.com/modern-go/reflect2 v1.0.2 // indirect
32+
github.com/pmezard/go-difflib v1.0.0 // indirect
33+
github.com/prometheus/client_golang v1.19.1 // indirect
34+
github.com/prometheus/client_model v0.6.1 // indirect
35+
github.com/prometheus/common v0.54.0 // indirect
36+
github.com/prometheus/procfs v0.15.0 // indirect
37+
go.opentelemetry.io/collector v0.103.0 // indirect
38+
go.opentelemetry.io/collector/config/configtelemetry v0.103.0 // indirect
39+
go.opentelemetry.io/collector/featuregate v1.10.0 // indirect
40+
go.opentelemetry.io/collector/pdata v1.10.0 // indirect
41+
go.opentelemetry.io/otel v1.27.0 // indirect
42+
go.opentelemetry.io/otel/exporters/prometheus v0.49.0 // indirect
43+
go.opentelemetry.io/otel/metric v1.27.0 // indirect
44+
go.opentelemetry.io/otel/sdk v1.27.0 // indirect
45+
go.opentelemetry.io/otel/sdk/metric v1.27.0 // indirect
46+
go.opentelemetry.io/otel/trace v1.27.0 // indirect
47+
go.uber.org/multierr v1.11.0 // indirect
48+
go.uber.org/zap v1.27.0 // indirect
49+
golang.org/x/net v0.26.0 // indirect
50+
golang.org/x/sys v0.21.0 // indirect
51+
golang.org/x/text v0.16.0 // indirect
52+
google.golang.org/genproto/googleapis/rpc v0.0.0-20240520151616-dc85e6b867a5 // indirect
53+
google.golang.org/grpc v1.64.0 // indirect
54+
google.golang.org/protobuf v1.34.2 // indirect
55+
gopkg.in/yaml.v3 v3.0.1 // indirect
56+
)
57+
58+
replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil => ../../pkg/pdatautil
59+
60+
replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest => ../../pkg/pdatatest
61+
62+
replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal => ../../internal/coreinternal
63+
64+
replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter => ../../internal/filter
65+
66+
replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl => ../../pkg/ottl
67+
68+
retract (
69+
v0.76.2
70+
v0.76.1
71+
)
72+
73+
replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden => ../../pkg/golden

0 commit comments

Comments
 (0)