ceph-csi/vendor/go.opentelemetry.io/auto/sdk/CONTRIBUTING.md
dependabot[bot] d62d688982
rebase: bump the github-dependencies group with 3 updates
Bumps the github-dependencies group with 3 updates: [github.com/aws/aws-sdk-go-v2/service/sts](https://github.com/aws/aws-sdk-go-v2), [github.com/kubernetes-csi/csi-lib-utils](https://github.com/kubernetes-csi/csi-lib-utils) and [github.com/onsi/ginkgo/v2](https://github.com/onsi/ginkgo).


Updates `github.com/aws/aws-sdk-go-v2/service/sts` from 1.33.2 to 1.33.3
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ivs/v1.33.2...service/ivs/v1.33.3)

Updates `github.com/kubernetes-csi/csi-lib-utils` from 0.19.0 to 0.20.0
- [Release notes](https://github.com/kubernetes-csi/csi-lib-utils/releases)
- [Commits](https://github.com/kubernetes-csi/csi-lib-utils/compare/v0.19.0...v0.20.0)

Updates `github.com/onsi/ginkgo/v2` from 2.22.0 to 2.22.1
- [Release notes](https://github.com/onsi/ginkgo/releases)
- [Changelog](https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/ginkgo/compare/v2.22.0...v2.22.1)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sts
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/kubernetes-csi/csi-lib-utils
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-dependencies
- dependency-name: github.com/onsi/ginkgo/v2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 20:41:42 +00:00

1.4 KiB

Contributing to go.opentelemetry.io/auto/sdk

The go.opentelemetry.io/auto/sdk module is a purpose built OpenTelemetry SDK. It is designed to be:

  1. An OpenTelemetry compliant SDK
  2. Instrumented by auto-instrumentation (serializable into OTLP JSON)
  3. Lightweight
  4. User-friendly

These design choices are listed in the order of their importance.

The primary design goal of this module is to be an OpenTelemetry SDK. This means that it needs to implement the Go APIs found in go.opentelemetry.io/otel.

Having met the requirement of SDK compliance, this module needs to provide code that the go.opentelemetry.io/auto module can instrument. The chosen approach to meet this goal is to ensure the telemetry from the SDK is serializable into JSON encoded OTLP. 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.

Outside of these first two goals, the intended use becomes relevant. This package is intended to be used in the go.opentelemetry.io/otel global API as a default when the auto-instrumentation is running. Because of this, this package needs to not add unnecessary dependencies to that API. Ideally, it adds none. It also needs to operate efficiently.

Finally, this module is designed to be user-friendly to Go development. It hides complexity in order to provide simpler APIs when the previous goals can all still be met.