|
1 | 1 | //// |
2 | 2 | This module included in the following assemblies: |
3 | | --distr_tracing_install/distributed-tracing-deploying.adoc |
4 | | - |
5 | | -STUB TOPIC for documenting OTEL collector options (Duplicated from Jaeger Collector) |
| 3 | +-distr_tracing_install/distributed-tracing-deploying-otel.adoc |
6 | 4 | //// |
7 | | - |
| 5 | +:_content-type: REFERENCE |
8 | 6 | [id="distributed-tracing-config-otel-collector_{context}"] |
9 | 7 | = OpenTelemetry Collector configuration options |
10 | 8 |
|
11 | | -#TECH PREVIEW BOILERPLATE HERE# |
12 | | -#What is the actual Operator name?# |
| 9 | +[IMPORTANT] |
| 10 | +==== |
| 11 | +The {OTELName} Operator is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. |
| 12 | +These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. |
| 13 | +For more information about the support scope of Red Hat Technology Preview features, see https://access.redhat.com/support/offerings/techpreview/. |
| 14 | +==== |
| 15 | + |
| 16 | +The OpenTelemetry Collector consists of three components that access telemetry data: |
| 17 | + |
| 18 | +* *Receivers* - A receiver, which can be push or pull based, is how data gets into the Collector. Generally, a receiver accepts data in a specified format, translates it into the internal format and passes it to processors and exporters defined in the applicable pipelines. By default, no receivers are configured. One or more receivers must be configured. Receivers may support one or more data sources. |
| 19 | +
|
| 20 | +* *Processors* - (Optional) Processors are run on data between being received and being exported. By default, no processors are enabled. Processors must be enabled for every data source. Not all processors support all data sources. Depending on the data source, it may be recommended that multiple processors be enabled. In addition, it is important to note that the order of processors matters. |
| 21 | +
|
| 22 | +* *Exporters* - An exporter, which can be push or pull based, is how you send data to one or more backends/destinations. By default, no exporters are configured. One or more exporters must be configured. Exporters may support one or more data sources. Exporters may come with default settings, but many require configuration to specify at least the destination and security settings. |
| 23 | +
|
| 24 | +You can define multiple instances of components in a custom resource YAML file. Once configured, these components must be enabled through pipelines defined in the `spec.config.service` section of the YAML file. As a best practice you should only enable the components that you need. |
13 | 25 |
|
14 | | -The OpenTelemetry Collector is the component responsible for receiving the spans that were captured by the tracer and writing them to an Elasticsearch persistent storage when using the `production` strategy, or to AMQ Streams when using the `streaming` strategy. |
| 26 | +.sample OpenTelemetry collector custom resource file |
| 27 | +[source,yaml] |
| 28 | +---- |
| 29 | +apiVersion: opentelemetry.io/v1alpha1 |
| 30 | +kind: OpenTelemetryCollector |
| 31 | +metadata: |
| 32 | + name: cluster-collector |
| 33 | + namespace: tracing-system |
| 34 | +spec: |
| 35 | + mode: deployment |
| 36 | + config: | |
| 37 | + receivers: |
| 38 | + otlp: |
| 39 | + protocols: |
| 40 | + grpc: |
| 41 | + http: |
| 42 | + processors: |
| 43 | + exporters: |
| 44 | + jaeger: |
| 45 | + endpoint: jaeger-production-collector-headless.tracing-system.svc:14250 |
| 46 | + tls: |
| 47 | + ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" |
| 48 | + service: |
| 49 | + pipelines: |
| 50 | + traces: |
| 51 | + receivers: [otlp] |
| 52 | + processors: [] |
| 53 | + exporters: [jaeger] |
| 54 | +---- |
15 | 55 |
|
16 | | -The Collectors are stateless and thus many instances of OpenTelemetry Collector can be run in parallel. Collectors require almost no configuration, except for the location of the Elasticsearch cluster. |
| 56 | +[NOTE] |
| 57 | +==== |
| 58 | +If a component is configured, but not defined within the `service` section then it is not enabled. |
| 59 | +==== |
17 | 60 |
|
18 | 61 | .Parameters used by the Operator to define the OpenTelemetry Collector |
19 | 62 | [options="header"] |
20 | | -[cols="l, a, a"] |
| 63 | +[cols="l, a, a, a"] |
21 | 64 | |=== |
22 | | -|Parameter |Description |Values |
| 65 | +|Parameter |Description |Values |Default |
| 66 | +|receivers: |
| 67 | +|A receiver is how data gets into the Collector. By default, no receivers are configured. There must be at least one enabled receiver for a configuration to be considered valid. Receivers are enabled by being added to a pipeline. |
| 68 | +|`otlp`, `jaeger` |
| 69 | +|None |
| 70 | + |
| 71 | +|receivers: |
| 72 | + otlp: |
| 73 | +|The `oltp` and `jaeger` receivers come with default settings, specifying the name of the receiver is enough to configure it. |
23 | 74 | | |
24 | 75 | | |
| 76 | + |
| 77 | +|processors: |
| 78 | +|Processors run on data between being received and being exported. By default, no processors are enabled. |
25 | 79 | | |
26 | | -|=== |
| 80 | +|None |
27 | 81 |
|
| 82 | +|exporters: |
| 83 | +|An exporter sends data to one or more backends/destinations. By default, no exporters are configured. There must be at least one enabled exporter for a configuration to be considered valid. Exporters are enabled by being added to a pipeline. Exporters may come with default settings, but many require configuration to specify at least the destination and security settings. |
| 84 | +|`logging`, `jaeger` |
| 85 | +|None |
28 | 86 |
|
29 | | -.Parameters passed to the Collector |
30 | | -[options="header"] |
31 | | -[cols="l, a, a"] |
32 | | -|=== |
33 | | -|Parameter |Description |Values |
34 | | -|spec: |
35 | | - collector: |
36 | | - options: {} |
| 87 | +|exporters: |
| 88 | + jaeger: |
| 89 | + endpoint: |
| 90 | + |
| 91 | +|The `jaeger` exporter’s endpoint must be of the form `<name>-collector-headless.<namespace>.svc`, with the name and namespace of the Jaeger deployment, for a secure connection to be established. |
37 | 92 | | |
38 | 93 | | |
| 94 | + |
| 95 | +|exporters: |
| 96 | + jaeger: |
| 97 | + tls: |
| 98 | + ca_file: |
| 99 | +|Path to the CA certificate. For a client this verifies the server certificate. For a server this verifies client certificates. If empty uses system root CA. |
| 100 | +| |
| 101 | +| |
| 102 | + |
| 103 | +|service: |
| 104 | + pipelines: |
| 105 | +|Components are enabled by adding them to a pipeline under `services.pipeline`. |
| 106 | +| |
| 107 | +| |
| 108 | + |
| 109 | +|service: |
| 110 | + pipelines: |
| 111 | + traces: |
| 112 | + receivers: |
| 113 | +|You enable receivers for tracing by adding them under `service.pipelines.traces`. |
| 114 | +| |
| 115 | +|None |
| 116 | + |
| 117 | +|service: |
| 118 | + pipelines: |
| 119 | + traces: |
| 120 | + processors: |
| 121 | +|You enable processors for tracing by adding them under `service.pipelines.traces`. |
| 122 | +| |
| 123 | +|None |
| 124 | + |
| 125 | +|service: |
| 126 | + pipelines: |
| 127 | + traces: |
| 128 | + exporters: |
| 129 | +|You enable exporters for tracing by adding them under `service.pipelines.traces`. |
| 130 | +| |
| 131 | +|None |
39 | 132 | |=== |
0 commit comments