Skip to content

Commit 098f594

Browse files
authored
Add CONTRIBUTING.md to sdk module (#1217)
1 parent 21f4f30 commit 098f594

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

sdk/CONTRIBUTING.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Contributing to go.opentelemetry.io/auto/sdk
2+
3+
The `go.opentelemetry.io/auto/sdk` module is a purpose built OpenTelemetry SDK.
4+
It is designed to be:
5+
6+
0. An OpenTelemetry compliant SDK
7+
1. Instrumented by auto-instrumentation (serializable into OTLP JSON)
8+
2. Lightweight
9+
3. User-friendly
10+
11+
These design choices are listed in the order of their importance.
12+
13+
The primary design goal of this module is to be an OpenTelemetry SDK.
14+
This means that it needs to implement the Go APIs found in `go.opentelemetry.io/otel`.
15+
16+
Having met the requirement of SDK compliance, this module needs to provide code that the `go.opentelemetry.io/auto` module can instrument.
17+
The chosen approach to meet this goal is to ensure the telemetry from the SDK is serializable into JSON encoded OTLP.
18+
This ensures then that the serialized form is compatible with other OpenTelemetry systems, and the auto-instrumentation can use these systems to deserialize any telemetry it is sent.
19+
20+
Outside of these first two goals, the intended use becomes relevant.
21+
This package is intended to be used in the `go.opentelemetry.io/otel` global API as a default when the auto-instrumentation is running.
22+
Because of this, this package needs to not add unnecessary dependencies to that API.
23+
Ideally, it adds none.
24+
It also needs to operate efficiently.
25+
26+
Finally, this module is designed to be user-friendly to Go development.
27+
It hides complexity in order to provide simpler APIs when the previous goals can all still be met.

0 commit comments

Comments
 (0)