Skip to content

Commit 398c974

Browse files
[Encoding Extension] Added module outline (#23000)
**Description:** Adding the required steps to help manage a new component and reduce the amount of noise generated in one PR. **Link to tracking Issue:** https://github.com/open-telemetry/opentelemetry-collector/issues/6272 **Testing:** NA **Documentation:** Added the rough outline of the component development to provide more of a public idea of the project outline. Not strictly tied to it since it is more a user facing version of the linked issue.
1 parent cd5c49b commit 398c974

File tree

13 files changed

+561
-5
lines changed

13 files changed

+561
-5
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ extension/asapauthextension/ @open-telemetry/collect
8787
extension/awsproxy/ @open-telemetry/collector-contrib-approvers @Aneurysm9 @mxiamxia
8888
extension/basicauthextension/ @open-telemetry/collector-contrib-approvers @jpkrohling @svrakitin
8989
extension/bearertokenauthextension/ @open-telemetry/collector-contrib-approvers @jpkrohling @pavankrish123 @frzifus
90+
extension/encodingextension/ @open-telemetry/collector-contrib-approvers @MovieStoreGuy
9091
extension/headerssetterextension/ @open-telemetry/collector-contrib-approvers @jpkrohling @kovrus
9192
extension/healthcheckextension/ @open-telemetry/collector-contrib-approvers @jpkrohling
9293
extension/httpforwarder/ @open-telemetry/collector-contrib-approvers @atoulme @rmfitzpatrick

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ body:
8080
- extension/awsproxy
8181
- extension/basicauth
8282
- extension/bearertokenauth
83+
- extension/encoding
8384
- extension/headerssetter
8485
- extension/healthcheck
8586
- extension/httpforwarder

.github/ISSUE_TEMPLATE/feature_request.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ body:
7474
- extension/awsproxy
7575
- extension/basicauth
7676
- extension/bearertokenauth
77+
- extension/encoding
7778
- extension/headerssetter
7879
- extension/healthcheck
7980
- extension/httpforwarder

.github/ISSUE_TEMPLATE/other.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ body:
7474
- extension/awsproxy
7575
- extension/basicauth
7676
- extension/bearertokenauth
77+
- extension/encoding
7778
- extension/headerssetter
7879
- extension/healthcheck
7980
- extension/httpforwarder

.github/dependabot.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,11 @@ updates:
322322
schedule:
323323
interval: "weekly"
324324
day: "wednesday"
325+
- package-ecosystem: "gomod"
326+
directory: "/extension/encodingextension"
327+
schedule:
328+
interval: "weekly"
329+
day: "wednesday"
325330
- package-ecosystem: "gomod"
326331
directory: "/extension/headerssetterextension"
327332
schedule:
@@ -1097,8 +1102,3 @@ updates:
10971102
schedule:
10981103
interval: "weekly"
10991104
day: "wednesday"
1100-
- package-ecosystem: "gomod"
1101-
directory: "/receiver/statsdreceiver"
1102-
schedule:
1103-
interval: "weekly"
1104-
day: "wednesday"

extension/encodingextension/Makefile

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

extension/encodingextension/README.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Encoding extension
2+
3+
<!-- status autogenerated section -->
4+
| Status | |
5+
| ------------- |-----------|
6+
| Stability | [development] |
7+
| Distributions | [] |
8+
9+
[development]: https://github.com/open-telemetry/opentelemetry-collector#development
10+
<!-- end autogenerated section -->
11+
12+
The encoding extension allows for other components to reference ingress/egress data formats
13+
to allow for simplified operability.
14+
15+
_🚧 Under active development 🚧_
16+
17+
## Component Milestones
18+
19+
To help track what work needs to be done with this component, these are the currently active goals being
20+
worked towards.
21+
22+
### Development
23+
24+
- CodecFactory: Allows other components to reference code by name and version
25+
- Codec: Defining the expected interface for a codec
26+
- Length Delimited Codec: Used fixed length payloads to represent a collection of data that can be merged together
27+
- Add existing formats to the codec's libraries.
28+
- Add support to the following components
29+
- `file receiver`
30+
- `file exporter`
31+
- `kafka receiver`
32+
- `kafka exporter`
33+
- `kinesis exporter`
34+
- Add codecs for open source formats, ie: `otlp`, `zipkin`, `jaeger`
35+
36+
Component support will be behind a feature gate to avoid change in behavior
37+
38+
### Alpha
39+
40+
- Adopt vendor formats as codecs
41+
- Transition feature gate to default to using encoding extension
42+
- Add dynamic mapping support for `avro`, `parquet`, and `gotemplate`
43+
- Not fixed on these but I am aware that users are interested in these
44+
45+
### Beta
46+
47+
- Add support for remote schema management
48+
- Using `AWS Glue`, `kafka schema registry`
49+
- Performance break down of difference codecs (static, dynamic, remote)
50+
- This is more to help provide information to users to expected performance impact.
51+
52+
### Stable
53+
54+
- All features complete
55+
- Absent of bugs that impact core behaviours
56+
- Dependencies can also be marked as stable
57+
58+
## Example configuration
59+
60+
```yaml
61+
extensions:
62+
encoding:
63+
64+
receivers:
65+
kafka:
66+
encoding:
67+
name: zipkin/v1
68+
format: proto
69+
# ... other configuration values
70+
```
71+
72+
[translators]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/pkg/translator

extension/encodingextension/doc.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
//go:generate mdatagen metadata.yml
5+
package encodingextension // import "github.com/open-telemetry/opentelemetry-collector-contrib/extension/encodingextension"

extension/encodingextension/go.mod

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
module github.com/open-telemetry/opentelemetry-collector-contrib/extension/encodingextension
2+
3+
go 1.19
4+
5+
require go.opentelemetry.io/collector/component v0.81.0
6+
7+
require (
8+
github.com/gogo/protobuf v1.3.2 // indirect
9+
github.com/golang/protobuf v1.5.3 // indirect
10+
github.com/knadh/koanf v1.5.0 // indirect
11+
github.com/knadh/koanf/v2 v2.0.1 // indirect
12+
github.com/mitchellh/copystructure v1.2.0 // indirect
13+
github.com/mitchellh/mapstructure v1.5.1-0.20220423185008-bf980b35cac4 // indirect
14+
github.com/mitchellh/reflectwalk v1.0.2 // indirect
15+
go.opentelemetry.io/collector/config/configtelemetry v0.81.0 // indirect
16+
go.opentelemetry.io/collector/confmap v0.81.0 // indirect
17+
go.opentelemetry.io/collector/featuregate v1.0.0-rcv0013 // indirect
18+
go.opentelemetry.io/collector/pdata v1.0.0-rcv0013 // indirect
19+
go.opentelemetry.io/otel v1.16.0 // indirect
20+
go.opentelemetry.io/otel/metric v1.16.0 // indirect
21+
go.opentelemetry.io/otel/trace v1.16.0 // indirect
22+
go.uber.org/atomic v1.10.0 // indirect
23+
go.uber.org/multierr v1.11.0 // indirect
24+
go.uber.org/zap v1.24.0 // indirect
25+
golang.org/x/net v0.11.0 // indirect
26+
golang.org/x/sys v0.9.0 // indirect
27+
golang.org/x/text v0.10.0 // indirect
28+
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
29+
google.golang.org/grpc v1.56.1 // indirect
30+
google.golang.org/protobuf v1.31.0 // indirect
31+
)

0 commit comments

Comments
 (0)