|
1 |
| ---- |
2 |
| -title: Customization |
3 |
| -layout: default |
4 |
| -nav_order: 5 |
5 |
| ---- |
6 |
| - |
7 |
| -# Build a custom collector or configure the OpenTelemetry Collector Contrib distribution |
8 |
| - |
9 |
| -You can build and configure a [custom collector](https://opentelemetry.io/docs/collector/custom-collector/) or extend the [OpenTelemetry Collector Contrib ](https://github.com/open-telemetry/opentelemetry-collector-contrib) distribution to collect logs and metrics and send them to Elastic Observability. |
10 |
| - |
11 |
| -For a more seamless experience, use the Elastic Distribution of the OpenTelemetry Collector. |
12 |
| -Refer to the [guided onboarding](guided-onboarding.md) docs or the [manual configuration](manual-configuration.md) docs for more on configuring the Elastic Distribution of the OpenTelemetry Collector. |
13 |
| - |
14 |
| -## Upstream collector configuration examples |
15 |
| - |
16 |
| -Use the Elastic [example configurations](https://github.com/elastic/elastic-agent/tree/main/internal/pkg/otel/samples) as a reference when configuring your upstream collector. |
17 |
| - |
18 |
| -## Build a custom collector |
19 |
| - |
20 |
| -To build a custom collector to collect your telemetry data and send it to Elastic Observability, you need to: |
21 |
| - |
22 |
| -1. Install the OpenTelemetry Collector builder (ocb). |
23 |
| -1. Create a builder configuration file. |
24 |
| -1. Build the collector. |
25 |
| - |
26 |
| -Refer to the following sections to complete these steps. |
27 |
| - |
28 |
| -### Step 1. Install the OpenTelemetry Collector builder |
29 |
| -Install the ocb using the command that aligns with you system from the [OpenTelemetry building a custom collector documentation](https://opentelemetry.io/docs/collector/custom-collector/#step-1---install-the-builder). |
30 |
| - |
31 |
| -### Step 2. Create a builder configuration file |
32 |
| -Create a builder configuration file,`builder-config.yml`, to define the custom collector. This file specifies the components (extensions, exporters, processors, receivers, and connectors) included in your custom collector. |
33 |
| - |
34 |
| -The following example `builder-config.yml` file contains the components needed to send your telemetry data to Elastic Observability. For more information on these components, refer to the [components](collector-components.md) documentation. Keep or remove components from the example configuration file to fit your needs. |
35 |
| - |
36 |
| -``` yaml |
37 |
| -dist: |
38 |
| - name: otelcol-dev |
39 |
| - description: Basic OTel Collector distribution for Developers |
40 |
| - output_path: ./otelcol-dev |
41 |
| - otelcol_version: 0.107.0 |
42 |
| - |
43 |
| -extensions: |
44 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.106.1 |
45 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.106.1 |
46 |
| - - gomod: go.opentelemetry.io/collector/extension/memorylimiterextension v0.106.1 |
47 |
| - |
48 |
| -exporters: |
49 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.106.1 |
50 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.106.1 |
51 |
| - - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.106.1 |
52 |
| - - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.106.1 |
53 |
| - - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.106.1 |
54 |
| - |
55 |
| -processors: |
56 |
| - - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.106.1 |
57 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.106.1 |
58 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.106.1 |
59 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.106.1 |
60 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.106.1 |
61 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.106.1 |
62 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.106.1 |
63 |
| - - gomod: github.com/elastic/opentelemetry-collector-components/processor/elasticinframetricsprocessor v0.7.1 |
64 |
| - - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.106.1 |
65 |
| - |
66 |
| -receivers: |
67 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.106.1 |
68 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.106.1 |
69 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.106.1 |
70 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.106.1 |
71 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.106.1 |
72 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.106.1 |
73 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.106.1 |
74 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver v0.106.1 |
75 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.106.1 |
76 |
| - - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.106.1 |
77 |
| - |
78 |
| -connectors: |
79 |
| - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.106.1 |
80 |
| -``` |
81 |
| -
|
82 |
| -### Step 3. Build the Collector |
83 |
| -Build your custom collector using the ocb tool and the configuration file by running the following command: |
84 |
| -
|
85 |
| -`builder --config builder-config.yml` |
86 |
| - |
87 |
| -This command generates a new collector in the specified output path, `otelcol-dev`. The generated collector includes the components you specified in the configuration file. |
88 |
| - |
89 |
| -For general information on building a custom collector, refer to the [OpenTelemetry documentation](https://opentelemetry.io/docs/collector/custom-collector/#step-1---install-the-builder). |
| 1 | +--- |
| 2 | +title: Customization |
| 3 | +layout: default |
| 4 | +nav_order: 5 |
| 5 | +--- |
| 6 | + |
| 7 | +# Build a custom collector or configure the OpenTelemetry Collector Contrib distribution |
| 8 | + |
| 9 | +You can build and configure a [custom collector](https://opentelemetry.io/docs/collector/custom-collector/) or extend the [OpenTelemetry Collector Contrib ](https://github.com/open-telemetry/opentelemetry-collector-contrib) distribution to collect logs and metrics and send them to Elastic Observability. |
| 10 | + |
| 11 | +For a more seamless experience, use the Elastic Distribution of the OpenTelemetry Collector. |
| 12 | +Refer to the [guided onboarding](guided-onboarding.md) docs or the [manual configuration](manual-configuration.md) docs for more on configuring the Elastic Distribution of the OpenTelemetry Collector. |
| 13 | + |
| 14 | +## Upstream collector configuration examples |
| 15 | + |
| 16 | +Use the Elastic [example configurations](https://github.com/elastic/elastic-agent/tree/main/internal/pkg/otel/samples) as a reference when configuring your upstream collector. |
| 17 | + |
| 18 | +## Build a custom collector |
| 19 | + |
| 20 | +To build a custom collector to collect your telemetry data and send it to Elastic Observability, you need to: |
| 21 | + |
| 22 | +1. Install the OpenTelemetry Collector builder (ocb). |
| 23 | +1. Create a builder configuration file. |
| 24 | +1. Build the collector. |
| 25 | + |
| 26 | +Refer to the following sections to complete these steps. |
| 27 | + |
| 28 | +### Step 1. Install the OpenTelemetry Collector builder |
| 29 | +Install the ocb using the command that aligns with you system from the [OpenTelemetry building a custom collector documentation](https://opentelemetry.io/docs/collector/custom-collector/#step-1---install-the-builder). |
| 30 | + |
| 31 | +### Step 2. Create a builder configuration file |
| 32 | +Create a builder configuration file,`builder-config.yml`, to define the custom collector. This file specifies the components (extensions, exporters, processors, receivers, and connectors) included in your custom collector. |
| 33 | + |
| 34 | +The following example `builder-config.yml` file contains the components needed to send your telemetry data to Elastic Observability. For more information on these components, refer to the [components](collector-components.md) documentation. Keep or remove components from the example configuration file to fit your needs. |
| 35 | + |
| 36 | +<!-- DO NOT DELETE THIS SECTION, TAGS ARE REQUIRED FOR GENERATION--> |
| 37 | +<!-- start:edot-collector-components-ocb --> |
| 38 | +``` yaml |
| 39 | +dist: |
| 40 | + name: otelcol-dev |
| 41 | + description: Basic OTel Collector distribution for Developers |
| 42 | + output_path: ./otelcol-dev |
| 43 | + otelcol_version: 0.119.0 |
| 44 | + |
| 45 | +extensions: |
| 46 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.119.0 |
| 47 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.119.0 |
| 48 | +- gomod: go.opentelemetry.io/collector/extension/memorylimiterextension v0.119.0 |
| 49 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.119.0 |
| 50 | + |
| 51 | +receivers: |
| 52 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.119.0 |
| 53 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.119.0 |
| 54 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.119.0 |
| 55 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.119.0 |
| 56 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.119.0 |
| 57 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver v0.119.0 |
| 58 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.119.0 |
| 59 | +- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.119.0 |
| 60 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.119.0 |
| 61 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.119.0 |
| 62 | + |
| 63 | +exporters: |
| 64 | +- gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.119.0 |
| 65 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.119.0 |
| 66 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.119.0 |
| 67 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.119.0 |
| 68 | +- gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.119.0 |
| 69 | +- gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.119.0 |
| 70 | + |
| 71 | +processors: |
| 72 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.119.0 |
| 73 | +- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.119.0 |
| 74 | +- gomod: github.com/elastic/opentelemetry-collector-components/processor/elasticinframetricsprocessor v0.13.0 |
| 75 | +- gomod: github.com/elastic/opentelemetry-collector-components/processor/elastictraceprocessor v0.3.0 |
| 76 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.119.0 |
| 77 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.119.0 |
| 78 | +- gomod: github.com/elastic/opentelemetry-collector-components/processor/lsmintervalprocessor v0.3.0 |
| 79 | +- gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.119.0 |
| 80 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.119.0 |
| 81 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.119.0 |
| 82 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.119.0 |
| 83 | + |
| 84 | +connectors: |
| 85 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/routingconnector v0.119.0 |
| 86 | +- gomod: github.com/elastic/opentelemetry-collector-components/connector/signaltometricsconnector v0.3.0 |
| 87 | +- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.119.0 |
| 88 | +``` |
| 89 | +<!-- end:edot-collector-components-ocb --> |
| 90 | +
|
| 91 | +### Step 3. Build the Collector |
| 92 | +Build your custom collector using the ocb tool and the configuration file by running the following command: |
| 93 | +
|
| 94 | +`builder --config builder-config.yml` |
| 95 | + |
| 96 | +This command generates a new collector in the specified output path, `otelcol-dev`. The generated collector includes the components you specified in the configuration file. |
| 97 | + |
| 98 | +For general information on building a custom collector, refer to the [OpenTelemetry documentation](https://opentelemetry.io/docs/collector/custom-collector/#step-1---install-the-builder). |
0 commit comments