|
| 1 | +# Elastic Distribution for OpenTelemetry Collector components |
| 2 | + |
| 3 | +The OpenTelemetry Collector uses the following components to receive, process, and export telemetry data: |
| 4 | + |
| 5 | +- [Receivers](collector-components.md#receivers): Collect telemetry from your host. |
| 6 | +- [Processors](collector-components.md#processors): Modify or transform telemetry data before sending it to the exporters. |
| 7 | +- [Exporters](collector-components.md#exporters): Send data to the backends or destinations. |
| 8 | +- [Extensions](collector-components.md#extensions): Provide additional functionalities and capabilities. |
| 9 | + |
| 10 | +The default configurations of the Elastic Distribution for the OpenTelemetry Collector follows these flows. |
| 11 | + |
| 12 | +**MacOS and Linux Host metrics:** |
| 13 | + |
| 14 | +```mermaid |
| 15 | +flowchart LR |
| 16 | + one["`Host metrics receiver`"] |
| 17 | + two["`Elastic infra metrics processor`"] |
| 18 | + three["`Attributes processor (dataset)`"] |
| 19 | + four["`Resource processor (process)`"] |
| 20 | + five["`Elasticsearch exporter`"] |
| 21 | + one --> two --> three --> four --> five |
| 22 | +
|
| 23 | + style one fill: #e6f9f7,stroke:#333,stroke-width:1px |
| 24 | + style two fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 25 | + style three fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 26 | + style four fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 27 | + style five fill:#e6f9f7,stroke:#333,stroke-width:1px |
| 28 | +``` |
| 29 | + |
| 30 | +**MacOS and Linux Logs** |
| 31 | + |
| 32 | +```mermaid |
| 33 | +flowchart LR |
| 34 | + one["`File log receiver`"] |
| 35 | + two["`Resource detection processor`"] |
| 36 | + three["`Elasticsearch exporter`"] |
| 37 | + one --> two --> three |
| 38 | +
|
| 39 | + style one fill: #e6f9f7,stroke:#333,stroke-width:1px |
| 40 | + style two fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 41 | + style three fill:#e6f9f7,stroke:#333,stroke-width:1px |
| 42 | +``` |
| 43 | + |
| 44 | +**Kubernetes metrics** |
| 45 | + |
| 46 | +```mermaid |
| 47 | +flowchart LR |
| 48 | + one["`Kubelet stats and host metrics receivers`"] |
| 49 | + two["`Kubernetes attributes processor`"] |
| 50 | + three["`Elastic infra metrics processor`"] |
| 51 | + four["`Resource detection processors (EKS, GCP, K8s)`"] |
| 52 | + five["`Resource processors (K8s, cloud)`"] |
| 53 | + six["`Attributes processor (dataset)`"] |
| 54 | + seven["`Resource processor`"] |
| 55 | + eight["`Elasticsearch exporter`"] |
| 56 | + one --> two --> three --> four --> five --> six --> seven --> eight |
| 57 | +
|
| 58 | + style one fill: #e6f9f7,stroke:#333,stroke-width:1px |
| 59 | + style two fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 60 | + style three fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 61 | + style four fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 62 | + style five fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 63 | + style six fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 64 | + style seven fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 65 | + style eight fill:#e6f9f7,stroke:#333,stroke-width:1px |
| 66 | +``` |
| 67 | + |
| 68 | +**Kubernetes, MacOS, and Linux logs** |
| 69 | +```mermaid |
| 70 | +flowchart LR |
| 71 | + one["`File log receiver`"] |
| 72 | + two["`Kubernetes attributes processor`"] |
| 73 | + three["`Resource detection processors (system, EKS, GCP)`"] |
| 74 | + four["`Resource processors (K8s, cloud)`"] |
| 75 | + five["`Attributes processor (k8s_logs_dataset)`"] |
| 76 | + six["`Elasticsearch and debug exporters`"] |
| 77 | + one --> two --> three --> four --> five --> six |
| 78 | +
|
| 79 | + style one fill: #e6f9f7,stroke:#333,stroke-width:1px |
| 80 | + style two fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 81 | + style three fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 82 | + style four fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 83 | + style five fill: ##f8e9e9,stroke:#333,stroke-width:1px |
| 84 | + style six fill: #e6f9f7,stroke:#333,stroke-width:1px |
| 85 | +``` |
| 86 | + |
| 87 | +Refer to the following tables for more information on the components included in the Elastic OTel Collector. |
| 88 | +Follow the links for OpenTelemetry documentation with more configuration details for each component. |
| 89 | +To set up the Elastic OTel Collector, get started using the [guided onboarding](guided-onboarding.md) docs or the [manual configuration](manual-configuration.md) docs. |
| 90 | + |
| 91 | +## Receivers |
| 92 | + |
| 93 | +| Component | Description | |
| 94 | +|---|---| |
| 95 | +| [`filelogreceiver`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/receiver/filelogreceiver/v0.105.0/receiver/filelogreceiver/README.md) | Collects logs from files on the local filesystem, supporting various formats and log rotation strategies. | |
| 96 | +| [`hostmetricsreceiver`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/receiver/hostmetricsreceiver/v0.105.0/receiver/hostmetricsreceiver/README.md) | Collects metrics from the host machine, such as CPU, memory, disk, and network usage. | |
| 97 | +| [`httpcheckreceiver`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/receiver/httpcheckreceiver/v0.105.0/receiver/httpcheckreceiver/README.md) | Performs HTTP checks to monitor the availability and response time of web services. | |
| 98 | +| [`k8sclusterreceiver`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/receiver/k8sclusterreceiver/v0.105.0/receiver/k8sclusterreceiver/README.md) | Gathers metrics and metadata from a Kubernetes cluster. | |
| 99 | +| [`k8sobjectsreceiver`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/receiver/k8sobjectsreceiver/v0.105.0/receiver/k8sobjectsreceiver/README.md) | Monitors changes to Kubernetes objects, and collects related metrics. | |
| 100 | +| [`kubeletstatsreceiver`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/receiver/kubeletstatsreceiver/v0.105.0/receiver/kubeletstatsreceiver/README.md) | Collects metrics from the Kubelet, including node and pod-level resource usage. | |
| 101 | +| [`otlpreceiver`](https://github.com/open-telemetry/opentelemetry-collector/blob/receiver/otlpreceiver/v0.105.0/receiver/otlpreceiver/README.md) | Receives metrics, traces, and logs in OpenTelemetry Protocol (OTLP) format. | |
| 102 | + |
| 103 | +## Processors |
| 104 | + |
| 105 | +| Component | Description | |
| 106 | +|---|---| |
| 107 | +| [`elasticinframetricsprocessor`](https://github.com/elastic/opentelemetry-collector-components/blob/processor/elasticinframetricsprocessor/v0.7.1/processor/elasticinframetricsprocessor/README.md) | Processes infrastructure metrics to enhance and convert them for Elasticsearch. | |
| 108 | +| [`attributesprocessor`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/processor/attributesprocessor/v0.105.0/processor/attributesprocessor/README.md) | Modifies telemetry data attributes. | |
| 109 | +| [`filterprocessor`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/processor/filterprocessor/v0.105.0/processor/filterprocessor/README.md) | Filters telemetry data to include or exclude specific data points. | |
| 110 | +| [`k8sattributesprocessor`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/processor/k8sattributesprocessor/v0.105.0/processor/k8sattributesprocessor/README.md) | Enhances telemetry data with Kubernetes-specific metadata. | |
| 111 | +| [`resourcedetectionprocessor`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/processor/resourcedetectionprocessor/v0.105.0/processor/resourcedetectionprocessor/README.md) | Detects resource attributes and adds them to telemetry data. | |
| 112 | +| [`resourceprocessor`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/processor/resourceprocessor/v0.105.0/processor/resourceprocessor/README.md) | Allows resource attributes to be modified in telemetry data. | |
| 113 | +| [`transformprocessor`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/processor/transformprocessor/v0.105.0/processor/transformprocessor/README.md) | Transforms telemetry data modifying based on specified rules. | |
| 114 | +| [`batchprocessor`](https://github.com/open-telemetry/opentelemetry-collector/blob/processor/batchprocessor/v0.105.0/processor/batchprocessor/README.md) | Batches telemetry data to improve export performance and manage load on back-end systems. | |
| 115 | + |
| 116 | +## Exporters |
| 117 | + |
| 118 | +| Component | Description | |
| 119 | +|---|---| |
| 120 | +| [`elasticsearchexporter`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/exporter/elasticsearchexporter/v0.105.0/exporter/elasticsearchexporter/README.md) | Sends collected telemetry data to Elasticsearch for storage and analysis. | |
| 121 | +| [`fileexporter`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/exporter/fileexporter/v0.105.0/exporter/fileexporter/README.md) | Writes telemetry data to a file, useful for debugging or offline analysis. | |
| 122 | +| [`debugexporter`](https://github.com/open-telemetry/opentelemetry-collector/blob/exporter/debugexporter/v0.105.0/exporter/debugexporter/README.md) | Outputs telemetry data in a human-readable format for debugging purposes. | |
| 123 | +| [`otlpexporter`](https://github.com/open-telemetry/opentelemetry-collector/blob/exporter/otlpexporter/v0.105.0/exporter/otlpexporter/README.md) | Sends telemetry data in OTLP format to a specified endpoint. | |
| 124 | +| [`otlphttpexporter`](https://github.com/open-telemetry/opentelemetry-collector/blob/exporter/otlphttpexporter/v0.105.0/exporter/otlphttpexporter/README.md) | Sends telemetry data using HTTP with OTLP. | |
| 125 | + |
| 126 | +## Extensions |
| 127 | + |
| 128 | +| Component | Description | |
| 129 | +|---|---| |
| 130 | +| [`filestorage`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/extension/storage/filestorage/v0.105.0/extension/storage/filestorage/README.md)| Provides file-based storage for temporary data, such as checkpoints and intermediate state. | |
| 131 | +| [`memorylimiterextension`](https://github.com/open-telemetry/opentelemetry-collector/blob/extension/memorylimiterextension/v0.105.0/extension/memorylimiterextension/README.md) | Limits the memory usage of the collector to prevent out-of-memory errors. | |
0 commit comments