OpenTelemetry Collector is a standalone service provided by OpenTelemetry. It can be used as a telemetry data processing system with many flexible configurations for collecting and managing telemetry data. Let's dive into OpenTelemetry collectors to understand how it works.
The first step in setting up observation capabilities with OpenTelemetry is instrumentation. The application code comes with OpenTelemetry client libraries that help you generate telemetry data such as records, measurements, and traces.
Once telemetry data has been generated, it can be exported directly to the observation backend or to the OpenTelemetry Collector. Collector provides a vendor-independent way to collect, process, and export telemetry (logging, metrics, and traces), so using a collector is preferred. The biggest advantage of using the OpenTelemetry collector is the flexibility to create different data channels.
OpenTelemetry collectors can be configured in various ways. It can be deployed on any host as an agent. When the collector is configured on hosts, you can directly collect host metrics such as CPU usage, RAM, disk I/O metrics, etc.
You can also run OpenTelemetry Collector as a standalone service. The OpenTelemetry client libraries have an exporter that can be configured to send telemetry to the collector. A mixed sample of OpenTelemetry collectors is usually recommended to manage scaling.

Before we delve into the OpenTelemetry collectors, let's take a quick detour to understand what OpenTelemetry is.
What is OpenTelemetry?
Open telemetryis an open-source observation platform that aims to standardize the creation, collection and management of telemetry data (logging, measurement and traces). Incubated by the Cloud Native Computing Foundation (Cloud Native Computing Foundation), the same foundation that gave birth to Kubernetes.
OpenTelemetry follows suitaccording to specificationdevelop and deliver client libraries for instrumental applications in most programming languages. Once OpenTelemetry is set up, you should be able to collect various telemetry signals such as logs, metrics, and traces. This is where OpenTelemetry Collector comes into play.
Why use the OpenTelemetry Collector?
The OpenTelemetry Collector has three main functions - collecting, processing and exporting the collected telemetry data. First, let's understand why this is a critical component of architecture visibility.
OpenTelemetry Collector gives you the flexibility to handle multiple data formats and frees you from the responsibility of managing telemetry data from your application.
List of reasons to use OpenTelemetry Collector:
- Provides a vendor-neutral way to collect telemetry data.
- The collector relieves the application from the responsibility of managing telemetry, reducing overhead and providing separate application issues for any telemetry configuration.
- Using the OpenTelemetry Collector tool, you can export telemetry data in many formats to many selected observation providers.
- Allows you to quickly update the telemetry bar based on your configuration. Updating the configuration file to receive data in a different format is trivial.
- It can also help you collect host metrics such as RAM, CPU, and storage capacity.
OpenTelemetry collector architecture
The OpenTelemetry Collector consists of three main components: a receiver, a processor, and an exporter.

Receivers
Receivers are used to transmit data to the collector. Currently, the collector supports more than forty different types of receivers. You can use listeners to configure the ports and formats the collector can accept data in. It can be push or pull based.
You can receive data in many formats. It has the default OTLP format, but you can get data in other popular open source formats like Jaeger or Prometheus.
Processors
The processors are used to perform any required processing of the collected data, such as data massaging, data processing, or any changes to the data as it passes through the collector. It can also be used to remove PII from collected telemetry, which can be very useful.
You can also do things like group data before sending, retry if export fails, add metadata, expect based sampling, etc.
exporters
Exporters are used to export data to an observation backend such asSigNoz. You can upload data in multiple data formats. You can send different telemetry signals to different back-end analytics tools. For example, you can send traces to Jaeger and measurements to Prometheus.
By combining these three components, OpenTelemetry Collector can be used to create data pipelines. Pipelines are easily configured via a YAML configuration file. This provides flexibility for telemetry management teams.
How to configure the OpenTelemetry collector?
You need to configure the three components of the OpenTelemetry collector described above. Once installed, these items must be activated via a pipeline in the service department. SigNoz ships with the OpenTelemetry Collector installed. You can find the SigNoz OpenTelemetry collector configuration fileHere.
Receiver configuration
In the code example below, we have two recipients:
OTLP
The default OpenTelemetry protocol for transmitting telemetry data. SigNoz receives telemetry data in OTLP format.Gunman
You can also get tracking data in Jaeger format, which is a popular distributed tracking tool.
receivers:
otlp:
protocols:
grpc:
http:
Gunman:
protocols:
grpc:
saving_http:
Processor configuration
In the following code example, there are three processors:
total production
Batch mode helps to better compress data and reduce the number of outgoing connections needed to transfer data. This processor supports both size and time interval.Memory limiter
The memory limit processor is used to prevent the collector from running out of memory. Since the amount and type of data processed by the collector is context dependent, and the use of collector resources also depends on the configured processors, it is important to implement memory usage controls.Repeat in line
This processor is highly recommended for any collector setup as it minimizes the possibility of data being discarded due to processing delays or data extraction issues.
processors:
production set:
send_batch_size:1000
waiting time: 10 sec
memory_delimiter:
# This is the CLI argument --mem-ballast-size-mib
size_ballast_mib:683
# 80% of maximum memory up to 2G
limit_mib:1500
# 25% limit do 2G
spike_limit_mib:512
interval_control: 5s
queue_retry:
number of employees:4
check_size:100
retry_on_failure:He says
Detailed information on these processors and more can be found atOpenTelemetry Collector repository on GitHub.
Exporter configuration
In this code example, we have created two exporters.
kafka/traces
Here are tips for writing a Kafka topic titledotlp_spans
.kafka/metric
This will pass a collection of metrics to be written to a Kafka topic named asotlp_metrics
.
exporters:
kafka/traces:
intermediaries:
- character-kafka:9092
On:„otlp_spans”
protocol_version:2.0.0
kafka/metric:
intermediaries:
- character-kafka:9092
On:"otlp_metrics"
protocol_version:2.0.0
You can also configure extensions that allow you to monitor the health of the OpenTelemetry collector.
Extensions
Extensions provide capabilities beyond the core functionality of OpenTelemetry Collector.
In this example, we have enabled two extensions.
Health check
Contains a URL that can be used to check the status of the OpenTelemetry collector.from the side
Provides an HTTP endpoint that provides live data for debugging various OpenTelemetry Collector components.
extensions:
Health check:{}
zpages:{}
Configure service partitions and data pipelines
All configured components must be activated by the pipeline contained within itWork
Unity. If an item is not defined in the services section, then it is not enabled. Pipelines make the OpenTelemetry Collector an essential part of your architecture. Provides the flexibility to download and export data in multiple formats.
In the example below, we have enabled two pipelines from the SigNoz Otel Collector configuration file.
traces
In this pipeline we can get directions insideGunman
Iotlp
forms. Then we apply three processors to the collected traces, i.esignozspanmetrics/prometej
Iproduction set
. We export the processed traces for saving in ClickHouse DB.measurement
We are taking measurementsotlp
forms. Process the collected metrics with the batch editor and then export the processed metrics to ClickHouse.
Work:
extensions:[status check, zpages]
senior management:
traces:
receivers:[hunter, otl]
processors:[signozspanmetrics/prometej, serious]
exporters:[Click traces]
dimensions:
receivers:[otlp]
processors:[production set]
exporters:[clickhousemetricswrite]
Sample OpenTelemetry Collector configuration file. (Source:SigNoz)
receivers:
filelog/docker containers:
switch on:[ "/var/lib/docker/containers/*/*.log" ]
start_on: end
contains_file_path:He says
include file name:falsely
operators:
- enter: json_parser
id: parser-docker
output: extract_metadata_from_file_path
timestamp:
parse_from: attributes.time
schedule:'%Y-%m-%dT%H:%M:%S.%LZ'
- hint: regex_parser
id: extract_metadata_from_file_path
regular expression:'^.*containers/(?P[^_]+)/.*log$'
parse_from: properties["path.log.file"]
output: parse_body
- type: movement
identyfikator: parse_body
from: properties.log
to: body
production:year
- type: subtraction
ID card:year
field: properties.time
Open inventory:
end point:0,00.0:55678
otlp/spanmetria:
protocols:
grpc:
endpoint: localhost: 12345
otlp:
protocols:
grpc:
end point:0,00,0:4317
http:
end point:0,00,0:4318
Gunman:
protocols:
grpc:
end point:0,00,0:14250
saving_http:
end point:0,00,0:14268
# economical_compact:
# endpoint: 0.0.0.0:6831
# parsimony_binary:
# endpoint: 0.0.0.0:6832
guest metric:
collection_interval: 60s
Zeskrobany:
EDITOR:{}
load:{}
memory:{}
disk:{}
file system:{}
net:{}
processors:
production set:
send_batch_size:10000
send_batch_max_size:11000
waiting time: 10 sec
signozspanmetrics/prometej:
metrics_exporter: supplier
latency_histogram_buckets:[100 ms, 1 ms, 2 ms, 6 ms, 10 ms, 50 ms, 100 ms, 250 ms, 500 ms, 1000 ms, 1400 ms, 2000 ms, 5 s, 10 s, 20 s, 40 s, 60 s]
memory_dimensions:10000
dimensions:
- name: service.namespace
default: default
- name: deployment.environment
default: default
resource discovery:
# Using OTEL_RESOURCE_ATTRIBUTES envvar, the env probe adds custom tags.
detectors:[environment, system] # include ec2 for AWS, gce for GCP, and Azure for Azure.
waiting time: 2 sec
step on:falsely
extensions:
Health check:
end point:0,00,0:13133
zpages:
end point:0,0.0.0:55679
pprof:
end point:0,00,0:1777
exporters:
click traces:
data source: tcp://clickhouse:9000/?database=signoz_tracks
click metricswrite:
endpoint: tcp://clickhouse:9000/?database=signoz_metrics
resource_to_convert telemetry:
activated:He says
Prometheus:
end point:0,00.0:8889
# login: {}
clickhouselogsexporter:
dsn: tcp://clickhouse:9000/
waiting time: 5 sec
Send the order:
check_size:100
retry_on_failure:
activated:He says
start_interval: 5s
max_interval: 30s
max_lapsed_time: 300s
Work:
telemetry:
dimensions:
Address:0,00.0:8888
extensions:
- Health check
- side
- prof
senior management:
traces:
receivers:[hunter, otl]
processors:[signozspanmetrics/prometej, serious]
exporters:[Click traces]
dimensions:
receivers:[otlp]
processors:[production set]
exporters:[clickhousemetricswrite]
metric/xenometric:
receivers:[host metrics]
processors:[resource discovery, series]
exporters:[clickhousemetricswrite]
metric/range:
receivers:[otlp/spanmetrics]
exporters:[Prometheus]
memoirs:
receivers:[otlp, log files/docker containers]
processors:[production set]
exporters:[clickhouselogsexporter]
Starting with OpenTelemetry
OpenTelemetry provides a vendor-centric way to collect and manage telemetry data. The next step is to choose a background analytics tool that can help you understand the collected data.SigNozis a comprehensive open source performance monitoring application and observation platform built natively for OpenTelemetry.
You can get started with SigNoz with just three commands in your terminal.
gitclone -b root https://github.com/SigNoz/signoz.git
CDsynosis/setting/
./εγκατάσταση.sh
Detailed instructions can be found in our documentation.
SigNoz can be used to visualize metrics and track with charts that can provide quick insights into your teams.

You can try out SigNoz by visiting the GitHub repository 👇
related content
OpenTelemetry tracking - things you need to know
Monitor your Nodejs application with OpenTelemetry and SigNoz**
FAQs
How does OpenTelemetry collector work? ›
OpenTelemetry Collector works by receiving telemetry data from various sources, processing and normalizing the data, and then exporting it to various backends for storage and analysis.
What is the difference between OpenTelemetry agent and collector? ›OpenTelemetry: agent vs collector vs gateway
Basically, an agent collects the data from the host and sends it to the collector to process and export. The agent is an OpenTelemetry Collector instance running on the same host as the application you're collecting the telemetry data from.
OpenTelemetry (abbreviated "OTel") is a shared effort between the community and observability vendors to establish a common specification for telemetry in software systems: traces, metrics, and logs. The OTel Collector is an application that allows you to process that telemetry and send it out to various destinations.
How do I set up OpenTelemetry? ›- Prerequisites.
- Example Application.
- Installation. Create and launch an HTTP Server.
- Instrumentation.
- Run the instrumented app.
- Add manual instrumentation to automatic instrumentation. Traces. Metrics.
- Send telemetry to an OpenTelemetry Collector. Configure and run a local collector. ...
- Next steps.
The collector provides a vendor-neutral way to collect, process, and export your telemetry data(logs, metrics, and traces), and that's why it is preferable to use a collector. The biggest advantage of using OpenTelemetry collectors is the flexibility to create different data pipelines.
What is the alternative to OpenTelemetry collector? ›- Kibana. Kibana is an open source (Apache Licensed), browser based analytics and search. ...
- Grafana. Grafana is a general purpose dashboard and graph composer. ...
- Prometheus. Prometheus is a systems and service monitoring system. ...
- Nagios. ...
- Zabbix. ...
- Graphite. ...
- Jaeger. ...
- StatsD.
The key differences between OpenTelemetry and Jaeger can be summarized in the following points: OpenTelemetry provides an instrumentation layer for your application code, while Jaeger is a backend analysis tool used for storage and visualization of trace data.
What is distributed tracing vs OpenTelemetry? ›Differences Between OpenTelemetry and Distributed Tracing
One of the differences between the two approaches is that OpenTelemetry focuses on collecting data at the application level, while distributed tracing also includes data from infrastructure components like databases and message queues.
API allows to construct the Metric of a chosen type. SDK defines the way to query the current value of a Metric to be exported. Every type of a Metric has it's API to record values to be aggregated. API supports both - push and pull model of setting the Metric value.
What are the three types of telemetry? ›Types of telemetry system are: Aerospace telemetry. Medical telemetry. Meteorological telemetry.
What are the three pillars of telemetry? ›
Peak visibility is achieved by analyzing the three pillars of observability: Logs, metrics and traces. Depending on who you ask, some use MELT as the four pillars of essential telemetry data (or metrics, events, logs and traces) but we'll stick with the three core pillars for this piece.
What are the three typical telemetry data is? ›We use metrics, structured logs, and traces as the outputs to make our systems observable.
What are the disadvantages of OpenTelemetry? ›Disadvantages of OpenTelemetry
Some of the key disadvantages of using OpenTelemetry are: Project has a lot of scope in improving documentation and support. It does not provide backend storage and a visualization layer.
Telemetry data includes logs, metrics, and traces. It was formed after the merger of OpenTracing and OpenCensus, two projects with similar goals but different approaches. OpenTelemetry is a collection of APIs, SDKs, and client libraries used to generate telemetry data from your application code.
How do you collect logs in OpenTelemetry? ›OpenTelemetry recommends to collect application logs using Collector's filelog receiver. Alternatively, another log collection agent, such as FluentBit, can collect logs, then send to OpenTelemetry Collector where the logs can be further processed and enriched.
What problem does OpenTelemetry solve? ›OpenTelemetry (also referred to as OTel) is an open source observability framework made up of a collection of tools, APIs, and SDKs. Otel enables IT teams to instrument, generate, collect, and export telemetry data for analysis and to understand software performance and behavior.
What does OTLP mean in OpenTelemetry? ›The OpenTelemetry Protocol (OTLP) specification describes the encoding, transport, and delivery mechanism of telemetry data between telemetry sources, intermediate nodes such as collectors, and telemetry backends.
What is instrumentation in OpenTelemetry? ›Instrumentation is the act of adding observability code to your application. This can be done with direct calls to the OpenTelemetry API within your code or including a dependency which calls the API and hooks into your project, like a middleware for an HTTP server.
What is Prometheus client vs OpenTelemetry? ›OpenTelemetry helps companies generate telemetry data by instrumenting their code. Prometheus, on the other hand, monitors metrics. There are client libraries for both Prometheus and OpenTelemetry, but OTEL provides an all-in-one solution for logging, metrics, and tracing your code. Prometheus only generates metrics.
Why should I use OpenTelemetry? ›Benefits of OpenTelemetry
By giving you a single, universal standard for collecting and sending telemetry data, OpenTelemetry helps you streamline your observability efforts, making it easier for teams to optimize performance and troubleshoot issues.
How many types of telemetry systems are there? ›
The three telemetry systems, using wire link, radio link and optical fibre link, are described in detail in Sections 3, 4 and 5, respectively.
Does OpenTelemetry have a UI? ›If you send span events as described by the OpenTelemetry specification , you can view them in the New Relic UI. Span events have two general types: Exceptions. Non-exceptions (for example, logs)
What is the difference between Prometheus and Jaeger? ›Prometheus and Jaeger: differences
Both Jaeger and Prometheus are extensively used in the monitoring space, but they're very different by design. Jaeger is used for distributed tracing to track user requests, whereas Prometheus's expertise lies in time series metrics.
Jaeger can be deployed as a single binary where all Jaeger backend components run as a single process or as a scalable distributed system. Zipkin, on the other hand, can only be run as a single binary that includes the collector, storage, query service, and web UI.
What are the four distinct types of telemetry data? ›- 3.1.1. Management Plane Telemetry. ...
- 3.1.2. Control Plane Telemetry. ...
- 3.1.3. Forwarding Plane Telemetry. ...
- 3.1.4. External Data Telemetry.
You require both logging and tracing to understand the root cause of the issue. Logs help you identify the issue, while a trace helps you attribute it to specific applications.
What is the difference between telemetry and observability? ›Both APM and observability use telemetry to collect data across disparate systems. But, while APM offers a more high-level method of tracking system health and end-to-end monitoring of an application's transactions, observability dives deep into the technical details that developers need for root cause analysis.
What are the 2 types of API accessibility? ›A public API and an internal API, for example, are two distinct types, based on who has access.
What are the different architectures of API? ›API protocols and architectures
Today, there are three categories of API protocols or architectures: REST, RPC and SOAP. These might be dubbed "formats," each with unique characteristics and tradeoffs and employed for different purposes.
APIs are used to communicate between different applications, whilst an SDK is a tool kit to build applications and features. In most cases, an SDK application will contain an API — or even multiple APIs depending on the purpose of the software.
What is one of the most common information collected using telemetry? ›
Companies use telemetry to collect information about devices and their configuration. Such information includes storage, installed memory, and hardware components, such as the CPU.
What is the difference between telemetry and IoT? ›Applications using the technology include measuring and transmitting data from internet of things (IoT) sensors located in automobiles, smart meters, power sources, robots and even wildlife. Telemetry sends data using computer networks, satellites, cable, and infrared and ultrasonic technologies.
What are the two types of telemetry monitoring? ›Overview of Holter and Ambulatory Telemetry Monitors
There are two common types of ambulatory monitors — Holter monitors and ambulatory telemetry monitors (ATMs).
Black directional lines indicate telemetry flow. Each pipeline is broken into three stages, Emitting, Shipping, and Presentation. Three very different technologies, but with the same flow of data-handling show the similarities between these telemetry styles.)
How many leads are used for telemetry? ›Prior to commencing telemetry monitoring a baseline 12 or 15 lead ECG should be taken as per cardiac team. Additional ECG's should be performed if ECG changes from patient baseline.
How should telemetry leads be placed? ›Place the right arm (RA) electrode near the right shoulder, close to the junction of the right arm and torso. Place the left arm (LA) electrode near the left shoulder, close to the junction of the left arm and torso. Place the right leg (RL) electrode below the level of the lowest rib on the right abdominal area.
What is the difference between telemetry and data acquisition? ›SCADA (Supervisory Control And Data Acquisition) is a software package that is positioned on top of a real-time control system to control a process that is external to the SCADA system. Telemetry is a technology which allows the remote measurement and also reporting of information of interest to the system designer.
What instruments are used in telemetry? ›Telemeters are the physical devices used in telemetry. It consists of a sensor, a transmission path, and a display, recording, or control device. Electronic devices are widely used in telemetry and can be wireless or hard-wired, analog or digital.
What is a telemetry model? ›Model-driven telemetry is a new approach for network monitoring in which data is streamed from network devices continuously using a push model and provides near real-time access to operational statistics.
Where is OpenTelemetry used? ›OpenTelemetry is used to collect telemetry data from distributed systems in order to troubleshoot, debug and manage applications and their host environment. It offers an easy way for IT and developer teams to instrument their code base for data collection and make adjustments as the organization grows.
What are the benefits of network telemetry? ›
Having visibility into what a network is doing and how it is being utilized is the basis for effective network automation and analytics. Telemetry, or streaming telemetry to be accurate, has the potential to help accelerate network troubleshooting, anticipate network capacity growth and baseline network performance.
What is an advantage of network telemetry? ›accuracy can also be an advantage of network telemetry over SNMP pulls. Network telemetry provides continuous and real-time monitoring of network data, whereas SNMP pulls are periodic and may miss some data. This can lead to more accurate data collection and analysis with network telemetry.
Is Splunk used for telemetry? ›OpenTelemetry and Splunk. Capture, generate and export telemetry data into observability tools for comprehensive software performance and behavior analysis. See Splunk at AWS re:Invent 2022!
Does Prometheus use open telemetry? ›Prometheus exporter
Once the exporter is configured and enabled, it will collect metrics from the OpenTelemetry Collector and forward them to the specified Prometheus server. Users can then use Prometheus tools to query, visualize, and alert on the collected metrics.
SNMP uses the polling method, which requests information each time information is acquired, but Telemetry uses the subscription method. Regarding transport, SNMP is a UDP-only implementation, but Telemetry uses gRPC in addition to UDP/TCP and uses a flow-controlled transport layer.
What format is OpenTelemetry tracing? ›The default format used in OpenTelemetry tracing is W3C TraceContext . Each Context object is associated with a span and can be accessed specification on spans.
What format is open telemetry message? ›OTLP/HTTP. OTLP/HTTP uses Protobuf payloads encoded either in binary format or in JSON format.
How is telemetry data collected? ›Telemetry automatically collects, transmits and measures data from remote sources, using sensors and other devices to collect data. It uses communication systems to transmit the data back to a central location. Subsequently, the data is analyzed to monitor and control the remote system.
How does OpenTelemetry auto instrumentation work? ›An application can be instrumented with OpenTelemetry either automatically or manually. With automatic instrumentation, the API and SDK takes the configuration provided (through code or environment variables) and does most of the work automatically (for example, starting and ending spans).
What is Otel used for? ›OpenTelemetry (also referred to as OTel) is an open source observability framework made up of a collection of tools, APIs, and SDKs. Otel enables IT teams to instrument, generate, collect, and export telemetry data for analysis and to understand software performance and behavior.
What is the difference between telemetry and logs? ›
Logging versus telemetry
In short, logging is how you collect data about your app in the lab; instrumenting your app for telemetry, on the other hand, is how you collect data once the app is released into the wild. Telemetry, or tele-metering, is automated remote measurement and data collection.
Logging is the local collection of data while telemetry is the remote transmission of data. While there is an overlap between the two topics, they serve different purposes, they have wildly different technical challenges and they must adhere to distinctly different regulatory requirements too.
What is the difference between API and SDK in OpenTelemetry? ›API allows to construct the Metric of a chosen type. SDK defines the way to query the current value of a Metric to be exported. Every type of a Metric has it's API to record values to be aggregated. API supports both - push and pull model of setting the Metric value.
What is difference between Jaeger and OpenTelemetry? ›The key differences between OpenTelemetry and Jaeger can be summarized in the following points: OpenTelemetry provides an instrumentation layer for your application code, while Jaeger is a backend analysis tool used for storage and visualization of trace data.
What is the difference between OpenTelemetry and DataDog? ›OpenTelemetry and DataDog are both used for monitoring applications. While OpenTelemetry is an open source observability framework, DataDog is a cloud-monitoring SaaS service. OpenTelemetry is a collection of tools, APIs, and SDKs that help generate and collect telemetry data (logs, metrics, and traces).
What is the difference between OpenTelemetry and app metrics? ›Key differences between OpenMetrics and OpenTelemetry
OpenMetrics just standardizes the exposition format through which metrics data must be communicated over a network, whereas OpenTelemetry aims to provide compatibility with OpenMetrics by using this standardized format to export metrics data.