opentelemetry-collector

module
v0.0.0-...-1543348 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2023 License: Apache-2.0

README


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:

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!

Directories

Path Synopsis
Package client contains generic representations of clients connecting to different receivers.
Package client contains generic representations of clients connecting to different receivers.
config
configauth
Package configauth implements the configuration settings to ensure authentication on incoming requests, and allows exporters to add authentication on outgoing requests.
Package configauth implements the configuration settings to ensure authentication on incoming requests, and allows exporters to add authentication on outgoing requests.
configgrpc
Package configgrpc defines the configuration settings to create a gRPC client and server.
Package configgrpc defines the configuration settings to create a gRPC client and server.
confighttp
Package confighttp defines the configuration settings for creating an HTTP client and server.
Package confighttp defines the configuration settings for creating an HTTP client and server.
confignet
Package confignet implements the configuration settings for protocols to connect and transport data information.
Package confignet implements the configuration settings for protocols to connect and transport data information.
configopaque
Package configopaque implements String type alias to mask sensitive information.
Package configopaque implements String type alias to mask sensitive information.
configtelemetry
Package configtelemetry defines various telemetry level for configuration.
Package configtelemetry defines various telemetry level for configuration.
configtls
Package configtls implements the TLS settings to load and configure TLS clients and servers.
Package configtls implements the TLS settings to load and configure TLS clients and servers.
exporterhelper
Package exporterhelper provides helper functions for exporters.
Package exporterhelper provides helper functions for exporters.
auth
Package auth implements the configuration settings to ensure authentication on incoming requests, and allows exporters to add authentication on outgoing requests.
Package auth implements the configuration settings to ensure authentication on incoming requests, and allows exporters to add authentication on outgoing requests.
experimental/storage
Package stanzareceiver implements a receiver that can be used by the Opentelemetry collector to receive logs using the stanza log agent
Package stanzareceiver implements a receiver that can be used by the Opentelemetry collector to receive logs using the stanza log agent
internal
cgroups
Package cgroups provides utilities to access Linux control group (CGroups) parameters (total memory, for example) for a given process.
Package cgroups provides utilities to access Linux control group (CGroups) parameters (total memory, for example) for a given process.
obsreportconfig/obsmetrics
Package obsmetrics defines the obsreport metrics for each components all the metrics is in OpenCensus format which will be replaced with OTEL Metrics in the future
Package obsmetrics defines the obsreport metrics for each components all the metrics is in OpenCensus format which will be replaced with OTEL Metrics in the future
sharedcomponent
Package sharedcomponent exposes util functionality for receivers and exporters that need to share state between different signal types instances such as net.Listener or os.File.
Package sharedcomponent exposes util functionality for receivers and exporters that need to share state between different signal types instances such as net.Listener or os.File.
Package obsreport provides unified and consistent observability signals ( metrics, tracing, etc) for components of the OpenTelemetry collector.
Package obsreport provides unified and consistent observability signals ( metrics, tracing, etc) for components of the OpenTelemetry collector.
Package service handles the command-line, configuration, and runs the OpenTelemetry Collector.
Package service handles the command-line, configuration, and runs the OpenTelemetry Collector.
internal/sharedgate
Package sharedgate exposes a featuregate that is used by multiple packages.
Package sharedgate exposes a featuregate that is used by multiple packages.
Package receiver defines components that allows the collector to receive metrics, traces and logs.
Package receiver defines components that allows the collector to receive metrics, traces and logs.
scrapererror
Package scrapererror provides custom error types for scrapers.
Package scrapererror provides custom error types for scrapers.
scraperhelper
Package scraperhelper provides utilities for scrapers.
Package scraperhelper provides utilities for scrapers.
internal/fanoutconsumer
Package fanoutconsumer contains implementations of Traces/Metrics/Logs consumers that fan out the data to multiple other consumers.
Package fanoutconsumer contains implementations of Traces/Metrics/Logs consumers that fan out the data to multiple other consumers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL