collector

module
v0.63.0 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2022 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:

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!

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.
cmd
builder Module
checkdoc Module
mdatagen Module
otelcorecol Module
schemagen Module
Package component outlines the components used in the collector and provides a foundation for the component’s creation and termination process.
Package component outlines the components used in the collector and provides a foundation for the component’s creation and termination process.
componenttest
Package componenttest define types and functions used to help test packages implementing the component package interfaces.
Package componenttest define types and functions used to help test packages implementing the component package interfaces.
experimental/component
Package component under config/experimental contains types and interfaces that typically live under the "go.opentelemetry.io/collector/component" package but aren't stable yet to be published there.
Package component under config/experimental contains types and interfaces that typically live under the "go.opentelemetry.io/collector/component" package but aren't stable yet to be published there.
Package config defines the data models for entities.
Package config defines the data models for entities.
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.
configtelemetry
Package configtelemetry defines various telemetry level for configuration.
Package configtelemetry defines various telemetry level for configuration.
configtest
Package configtest provides testing functionality for config package interfaces.
Package configtest provides testing functionality for config package interfaces.
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.
experimental/config
Package config under config/experimental contains configuration related types and interfaces that typically live under the "go.opentelemetry.io/collector/config" package but aren't stable yet to be published there.
Package config under config/experimental contains configuration related types and interfaces that typically live under the "go.opentelemetry.io/collector/config" package but aren't stable yet to be published there.
experimental/configsource
Package configsource is an experimental package that defines the interface of "configuration sources," e.g., Vault, ZooKeeper, etcd2, and others.
Package configsource is an experimental package that defines the interface of "configuration sources," e.g., Vault, ZooKeeper, etcd2, and others.
configopaque Module
configretry Module
internal Module
confmaptest
Package confmaptest helps loading confmap.Conf to test packages implementing using the configuration.
Package confmaptest helps loading confmap.Conf to test packages implementing using the configuration.
connector module
Package consumer contains interfaces that receive and process consumerdata.
Package consumer contains interfaces that receive and process consumerdata.
consumererror
Package consumererror provides wrappers to easily classify errors.
Package consumererror provides wrappers to easily classify errors.
consumertest
Package consumertest defines types and functions used to help test packages implementing the consumer package interfaces.
Package consumertest defines types and functions used to help test packages implementing the consumer package interfaces.
examples
demo/app Module
demo/client Module
demo/server Module
exporter module
exporterhelper
Package exporterhelper provides helper functions for exporters.
Package exporterhelper provides helper functions for exporters.
debugexporter Module
nopexporter Module
otlpexporter Module
extension module
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
zpagesextension
Package zpagesextension implements an extension that exposes zPages of properly instrumented components.
Package zpagesextension implements an extension that exposes zPages of properly instrumented components.
auth Module
filter module
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.
tools Module
model module
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.
otelcol module
pdata module
processor module
memorylimiterprocessor
Package memorylimiterprocessor provides a processor for OpenTelemetry Service pipeline that drops data on the pipeline according to the current state of memory usage.
Package memorylimiterprocessor provides a processor for OpenTelemetry Service pipeline that drops data on the pipeline according to the current state of memory usage.
Package receiver contains implementations of Receiver components.
Package receiver contains implementations of Receiver components.
otlpreceiver
Package otlpreceiver receives data in OTLP format.
Package otlpreceiver receives data in OTLP format.
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.
nopreceiver Module
semconv module
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/builder
Package builder handles the options to build the OpenTelemetry collector pipeline.
Package builder handles the options to build the OpenTelemetry collector pipeline.
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