Collector
Introduction
The OpenCensus Collector is a component that runs “nearby” (e.g. in the same VPC, AZ, etc.) a user’s application components and receives trace spans and metrics emitted by supported Receivers. The received spans and metrics could be emitted directly by clients in instrumented tasks, or potentially routed via intermediate proxy sidecar/daemon agents such as the OpenCensus Agent. The collector provides a central egress point for exporting traces and metrics to one or more tracing and/or metrics backends while offering buffering and retries as well as advanced aggregation, filtering, annotation and intelligent sampling capabilities.
By default, the OpenCensus Collector listens on TCP port 55678
and receives
traffic from the opencensus
protocol.
It can be configured to listen for a variety of different protocols as defined
in the Receivers section.
The Collector is written in the Go programming language, it is cross platform, self-monitored and receives traffic from any application that supports any of the available Receivers regardless of the programming language and deployment.
Benefits
For Tracing/Metrics Providers …
Implement one Exporter and get data from applications in many languages. Developing exporters only for one language (“Go”) dramatically scales infrastructure development and deployment, as observability backends no longer have to develop exporters in every 1 of the 9+ languages that OpenCensus supports.
Democratizes deployments Cloud providers can define the backends/exporters that the Collector sends data to.
For Application Developers …
Manage a single Exporter. Your applications no longer have to locally enable each exporter per language. All applications sends data using OpenCensus Exporter.
Democratizes deployments Developers can send the data to the backends of their choice.
Instrument once, choose and replace the backends at any anytime. Projects can be instrumented without having to upfront decide what backend their signals will be exported to. Drivers, servers, frameworks etc can all be instrumented and still be portable across various deployments and clouds. The customer can at anytime decide which backend they’d like to export to.
Limit your egress points better controlling what data leaves your environment. Instead of granting every application or agent external access from your environment as well as managing TLS certificates and API keys for all of these endpoints, centrally manage it from the Collectors.
Ensure your data reaches the backend. Sending large amount of data over the network requires the ability to handle sending failures. The Collector features built-in buffering and retry capabilities per Exporter configured ensuring your data reaches its intended destination.
Handle scale and only collect what you care about with Intelligent Sampling. The Collector features Intelligent (tail-based) Sampling of traces allowing you to calculate aggregates over all of your data, while only retaining what is relevant to you.
Annotation your spans. Add metadata to your spans at collection time. This makes it easy to enhance spans with information such as the environment and region.
Redact tags. Remove or override tags contained with spans.
Getting started
To get started with the OpenCensus Collector, please review the following topics:
References
Resource | URL |
---|---|
OpenCensus Protocol | opencensus-protocol |
OpenCensus Collector Design | oc-collector design document |
OpenCensus Collector Performance | oc-collector performance |
OpenCensus Agent Design | ocagent design doc |