OpenTelemetry Collector
Go to file
Bogdan d6ed8246b6 Deprecate all types and funcs in config package
The main reason is to remove the circular dependency between the config (including sub-packages) and component. Here is the current state:
* component depends on config
* config/sub-package[grpc, http, etc.] depends on config & component

Because of this "circular" dependency, we cannot split for example "config" into its own module, only if all the other config sub-packages are also split.

Signed-off-by: Bogdan <bogdandrutu@gmail.com>
2022-11-05 10:04:49 -07:00
.chloggen Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
.github splitting batch/memorylimiter processors into their own modules (#6427) 2022-11-03 08:32:19 -07:00
client add go 1.19 to tests (#5791) 2022-08-03 09:55:10 -07:00
cmd Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
component Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
config Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
confmap When a sub-config implements Unmarshaler, do not reinitialized it unless necessary. (#6392) 2022-10-24 15:24:37 -07:00
consumer Remove unnecessary and unused testdata (#5599) 2022-06-27 09:43:33 -07:00
docs [docs] update roadmap document 2022-10-27 12:54:29 -07:00
examples [chore] prepare v0.63.1 patch (#6436) 2022-10-28 12:57:33 -07:00
exporter Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
extension Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
featuregate Improving test coverage 2022-11-02 11:22:37 +10:30
internal Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
obsreport Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
pdata [pdata] Update values returned by all String methods of enum types 2022-11-01 18:29:22 -07:00
processor Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
receiver Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
semconv dependabot updates Mon Oct 24 03:33:52 UTC 2022 (#6388) 2022-10-23 21:45:34 -07:00
service Deprecate all types and funcs in config package 2022-11-05 10:04:49 -07:00
.codecov.yml Split `model` by signal type and move it to the new `pdata` module (#5168) 2022-04-11 16:00:26 -07:00
.gitignore use archive instead of submodule (#4263) 2021-10-26 09:33:37 -07:00
.gitmodules use archive instead of submodule (#4263) 2021-10-26 09:33:37 -07:00
.golangci.yml Disallow usage of pkg/errors and otlp proto module (#5785) 2022-08-08 10:16:01 -07:00
CHANGELOG.md [chore] prepare v0.63.1 patch (#6436) 2022-10-28 12:57:33 -07:00
CONTRIBUTING.md [chore] add chloggen for changelog (#6062) 2022-10-13 08:38:17 -07:00
LICENSE Initial commit 2018-06-05 08:09:00 +00:00
Makefile splitting batch/memorylimiter processors into their own modules (#6427) 2022-11-03 08:32:19 -07:00
Makefile.Common Enable persistent queue in the build by default (#5828) 2022-08-05 10:46:54 -07:00
README.md [docs] rename security doc (#6302) 2022-10-13 14:58:17 -07:00
VERSIONING.md Define stability guarantees for v1 API (#5397) 2022-05-19 08:54:23 -07:00
go.mod [chore] update go.mod 2022-11-03 09:20:52 -07:00
go.sum dependabot updates Tue Nov 1 21:34:27 UTC 2022 2022-11-01 21:34:27 +00:00
proto_patch.sed [chore] remove outdated proto patches (#6366) 2022-10-20 11:04:45 -07:00
versions.yaml splitting batch/memorylimiter processors into their own modules (#6427) 2022-11-03 08:32:19 -07:00

README.md

<p align="center"> <strong> <a href="https://opentelemetry.io/docs/collector/getting-started/">Getting Started</a>   •   <a href="CONTRIBUTING.md">Getting Involved</a>   •   <a href="https://cloud-native.slack.com/archives/C01N6P7KR6W">Getting In Touch</a> </strong> </p> <p align="center"> <a href="https://github.com/open-telemetry/opentelemetry-collector/actions/workflows/build-and-test.yml?query=branch%3Amain"> <img alt="Build Status" src="https://img.shields.io/github/workflow/status/open-telemetry/opentelemetry-collector/build-and-test/main?style=for-the-badge"> </a> <a href="https://goreportcard.com/report/github.com/open-telemetry/opentelemetry-collector"> <img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/open-telemetry/opentelemetry-collector?style=for-the-badge"> </a> <a href="https://codecov.io/gh/open-telemetry/opentelemetry-collector/branch/main/"> <img alt="Codecov Status" src="https://img.shields.io/codecov/c/github/open-telemetry/opentelemetry-collector?style=for-the-badge"> </a> <a href="https://github.com/open-telemetry/opentelemetry-collector/releases"> <img alt="GitHub release (latest by date including pre-releases)" src="https://img.shields.io/github/v/release/open-telemetry/opentelemetry-collector?include_prereleases&style=for-the-badge"> </a> </p> <p align="center"> <strong> <a href="docs/vision.md">Vision</a>   •   <a href="docs/design.md">Design</a>   •   <a href="https://opentelemetry.io/docs/collector/configuration/">Configuration</a>   •   <a href="docs/monitoring.md">Monitoring</a>   •   <a href="docs/performance.md">Performance</a>   •   <a href="docs/security-best-practices.md">Security</a>   •   <a href="docs/roadmap.md">Roadmap</a>   •   <a href="https://pkg.go.dev/go.opentelemetry.io/collector">Package</a> </strong> </p>

Getting Started   •   Getting Involved   •   Getting In Touch

Build Status Go Report Card Codecov Status GitHub release (latest by date including pre-releases)

Vision   •   Design   •   Configuration   •   Monitoring   •   Performance   •   Security   •   Roadmap   •   Package

OpenTelemetry Icon OpenTelemetry Collector

The OpenTelemetry Collector offers a vendor-agnostic implementation on how to receive, process and export telemetry data. In addition, it removes the need to run, operate and maintain multiple agents/collectors in order to support open-source telemetry data formats (e.g. Jaeger, Prometheus, etc.) to multiple open-source or commercial back-ends.

Objectives:

  • Usable: Reasonable default configuration, supports popular protocols, runs and collects out of the box.
  • Performant: Highly stable and performant under varying loads and configurations.
  • Observable: An exemplar of an observable service.
  • Extensible: Customizable without touching the core code.
  • Unified: Single codebase, deployable as an agent or collector with support for traces, metrics and logs.

Stability levels

The collector components and implementation are in different stages of stability, and usually split between functionality and configuration. The status for each component is available in the README file for the component. While we intend to provide high-quality components as part of this repository, we acknowledge that not all of them are ready for prime time. As such, each component should list its current stability level for each telemetry signal, according to the following definitions:

In development

Not all pieces of the component are in place yet and it might not be available as part of any distributions yet. Bugs and performance issues should be reported, but it is likely that the component owners might not give them much attention. Your feedback is still desired, especially when it comes to the user-experience (configuration options, component observability, technical implementation details, ...). Configuration options might break often depending on how things evolve. The component should not be used in production.

Alpha

The component is ready to be used for limited non-critical workloads and the authors of this component would welcome your feedback. Bugs and performance problems should be reported, but component owners might not work on them right away. The configuration options might change often without backwards compatibility guarantees.

Beta

Same as Alpha, but the configuration options are deemed stable. While there might be breaking changes between releases, component owners should try to minimize them. A component at this stage is expected to have had exposure to non-critical production workloads already during its Alpha phase, making it suitable for broader usage.

Stable

The component is ready for general availability. Bugs and performance problems should be reported and there's an expectation that the component owners will work on them. Breaking changes, including configuration options and the component's output are not expected to happen without prior notice, unless under special circumstances.

Deprecated

The component is planned to be removed in a future version and no further support will be provided. Note that new issues will likely not be worked on. When a component enters "deprecated" mode, it is expected to exist for at least two minor releases. See the component's readme file for more details on when a component will cease to exist.

Unmaintained

A component identified as unmaintained does not have an active code owner. Such component may have never been assigned a code owner or a previously active code owner has not responded to requests for feedback within 6 weeks of being contacted. Issues and pull requests for unmaintained components will be labelled as such. After 6 months of being unmaintained, these components will be removed from official distribution. Components that are unmaintained are actively seeking contributors to become code owners.

Compatibility

When used as a library, the OpenTelemetry Collector attempts to track the currently supported versions of Go, as defined by the Go team. Removing support for an unsupported Go version is not considered a breaking change.

Starting with the release of Go 1.18, support for Go versions on the OpenTelemetry Collector will be updated as follows:

  1. The first release after the release of a new Go minor version N will add build and tests steps for the new Go minor version.
  2. The first release after the release of a new Go minor version N will remove support for Go version N-2.

Official OpenTelemetry Collector distro binaries may be built with any supported Go version.

Contributing

See the Contributing Guide for details.

Here is a list of community roles with current and previous members:

Learn more about roles in Community membership. In addition to what is described at the organization-level, the SIG Collector requires all core approvers to take part in rotating the role of the release manager.

Thanks to all the people who already contributed!