Skip to content
This repository was archived by the owner on Sep 2, 2025. It is now read-only.

Commit b2fe98b

Browse files
WIP
1 parent 591604c commit b2fe98b

File tree

6 files changed

+146
-26
lines changed

6 files changed

+146
-26
lines changed

_includes/gdi/collector-common-options.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ The Splunk Distribution of the OpenTelemetry Collector has the following configu
22

33
* :ref:`collector-common-config-auth`
44
* :ref:`collector-common-config-grcp`
5-
* :ref:`collector-common-config-net`
5+
* :ref:`collector-common-config-net`
6+
* :ref:`collector-common-config-tls`

gdi/opentelemetry/collector-common-config.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ Common configuration options
1212
:titlesonly:
1313
:hidden:
1414

15-
Authentication <common-config/collector-common-config-auth.rst>
15+
Authentication settings <common-config/collector-common-config-auth.rst>
1616
gRCP settings <common-config/collector-common-config-grcp.rst>
1717
Network settings <common-config/collector-common-config-net.rst>
18+
TLS settings <common-config/collector-common-config-net.rst>
1819

1920
.. note:: The following list might not contain all the latest additions and updates. For a complete list of Collector common settings see the ``opentelemetry`` repository in GitHub.
2021

gdi/opentelemetry/common-config/collector-common-config-auth.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@
44
Configure authentication
55
*********************************************************************************
66

7-
You can configure two types of authentication within the Collector:
7+
You can configure two types of authentication for the Collector:
88

99
* Server type authentication takes place in incoming HTTP/gRPC requests and is typically used by :ref:`receivers <otel-components-receivers>`. Server type authenticators include:
1010

11-
* :ref:`Basic Auth Extension <basic-auth-extension>`
12-
* Bearer Token Extension
13-
* OIDC Extension
11+
* :ref:`Basic Auth extension <basic-auth-extension>`
12+
* Bearer Token extension
13+
* OIDC extension
1414

1515
* Client type authentication takes place in outgoing HTTP/gRPC requests and is typically used by :ref:`exporters <otel-components-exporters>`. Client type authenticators include:
1616

17-
* ASAP Client Authentication Extension
17+
* ASAP Client Authentication extension
1818
* :ref:`Basic Auth Extension <basic-auth-extension>`
19-
* Bearer Token Extension
19+
* Bearer Token extension
2020
* :ref:`oauth2client-extension`
21-
* Sigv4 Extension
21+
* Sigv4 extension
2222

2323
.. note:: You can add new authenticators by creating a new extension with the appropriate interface, ``configauth.ServerAuthenticator`` or ``configauth.ClientAuthenticator``.
2424

gdi/opentelemetry/common-config/collector-common-config-grcp.rst

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
.. _collector-common-config-grcp:
22

33
*********************************************************************************
4-
Configure gRCP settings
4+
Configure gRCP
55
*********************************************************************************
66

77
gRPC exposes a variety of settings you can adjust within individual receivers or exporters of the Collector. For more information, refer to :ref:`Golang's gRCP documentation <https://pkg.go.dev/google.golang.org/grpc>`.
88

9+
.. note:: To configure TLS, see :ref:`collector-collector-common-config-tls`.
10+
911
Client configuration
1012
=============================================================================================
1113

12-
Exporters leverage client configuration.
13-
14-
Note that client configuration supports TLS configuration, the configuration parameters are also defined under tls like server configuration. For more information, see configtls README.
14+
:ref:`Exporters <otel-components-exporters>` leverage client configuration.
1515

1616
balancer_name: Default before v0.103.0 is pick_first, default for v0.103.0 is round_robin. See issue. To restore the previous behavior, set balancer_name to pick_first.
1717
compression: Compression type to use among gzip, snappy, zstd, and none.
@@ -29,18 +29,20 @@ Please note that per_rpc_auth which allows the credentials to send for every RPC
2929

3030
Example:
3131

32-
exporters:
33-
otlp:
34-
endpoint: otelcol2:55690
35-
auth:
36-
authenticator: some-authenticator-extension
37-
tls:
38-
ca_file: ca.pem
39-
cert_file: cert.pem
40-
key_file: key.pem
41-
headers:
42-
test1: "value1"
43-
"test 2": "value 2"
32+
.. code-block:: yaml
33+
34+
exporters:
35+
otlp:
36+
endpoint: otelcol2:55690
37+
auth:
38+
authenticator: some-authenticator-extension
39+
tls:
40+
ca_file: ca.pem
41+
cert_file: cert.pem
42+
key_file: key.pem
43+
headers:
44+
test1: "value1"
45+
"test 2": "value 2"
4446
4547
Compression Comparison
4648
configgrpc_benchmark_test.go contains benchmarks comparing the supported compression algorithms. It performs compression using gzip, zstd, and snappy compression on small, medium, and large sized log, trace, and metric payloads. Each test case outputs the uncompressed payload size, the compressed payload size, and the average nanoseconds spent on compression.

gdi/opentelemetry/common-config/collector-common-config-net.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ You can configure the following network settings:
3131

3232
* ``dialer_timeout``. No timeout by default. The maximum amount of time a dial waits for a connect to complete.
3333

34-
3534
.. note:: TCP receivers only require the ``endpoint`` configuration setting.
3635

3736

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
.. _collector-common-config-tls:
2+
3+
*********************************************************************************
4+
Configure TLS
5+
*********************************************************************************
6+
7+
:ref:`Collector receivers <otel-components-receivers>` leverage network configuration to set connection and transport information.
8+
9+
Crypto TLS exposes a variety of settings. Several of these settings are available for configuration within individual receivers or exporters.
10+
11+
Note that mutual TLS (mTLS) is also supported.
12+
13+
TLS / mTLS Configuration
14+
By default, TLS is enabled:
15+
16+
insecure (default = false): whether to enable client transport security for the exporter's HTTPs or gRPC connection. See grpc.WithInsecure() for gRPC.
17+
As a result, the following parameters are also required:
18+
19+
cert_file: Path to the TLS cert to use for TLS required connections. Should only be used if insecure is set to false.
20+
21+
cert_pem: Alternative to cert_file. Provide the certificate contents as a string instead of a filepath.
22+
key_file: Path to the TLS key to use for TLS required connections. Should only be used if insecure is set to false.
23+
24+
key_pem: Alternative to key_file. Provide the key contents as a string instead of a filepath.
25+
A certificate authority may also need to be defined:
26+
27+
ca_file: Path to the CA cert. For a client this verifies the server certificate. For a server this verifies client certificates. If empty uses system root CA. Should only be used if insecure is set to false.
28+
ca_pem: Alternative to ca_file. Provide the CA cert contents as a string instead of a filepath.
29+
You can also combine defining a certificate authority with the system certificate authorities.
30+
31+
include_system_ca_certs_pool (default = false): whether to load the system certificate authorities pool alongside the certificate authority.
32+
Additionally you can configure TLS to be enabled but skip verifying the server's certificate chain. This cannot be combined with insecure since insecure won't use TLS at all.
33+
34+
insecure_skip_verify (default = false): whether to skip verifying the certificate or not.
35+
Minimum and maximum TLS version can be set:
36+
37+
IMPORTANT: TLS 1.0 and 1.1 are deprecated due to known vulnerabilities and should be avoided.
38+
39+
min_version (default = "1.2"): Minimum acceptable TLS version.
40+
41+
options: ["1.0", "1.1", "1.2", "1.3"]
42+
max_version (default = "" handled by crypto/tls - currently TLS 1.3): Maximum acceptable TLS version.
43+
44+
options: ["1.0", "1.1", "1.2", "1.3"]
45+
Explicit cipher suites can be set. If left blank, a safe default list is used. See https://go.dev/src/crypto/tls/cipher_suites.go for a list of supported cipher suites.
46+
47+
cipher_suites: (default = []): List of cipher suites to use.
48+
Example:
49+
50+
cipher_suites:
51+
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
52+
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
53+
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
54+
Additionally certificates may be reloaded by setting the below configuration.
55+
56+
reload_interval (optional) : ReloadInterval specifies the duration after which the certificate will be reloaded. If not set, it will never be reloaded. Accepts a duration string, valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
57+
How TLS/mTLS is configured depends on whether configuring the client or server. See below for examples.
58+
59+
Client Configuration
60+
Exporters leverage client configuration. The TLS configuration parameters are defined under tls, like server configuration.
61+
62+
Beyond TLS configuration, the following setting can optionally be configured:
63+
64+
server_name_override: If set to a non-empty string, it will override the virtual host name of authority (e.g. :authority header field) in requests (typically used for testing).
65+
Example:
66+
67+
exporters:
68+
otlp:
69+
endpoint: myserver.local:55690
70+
tls:
71+
insecure: false
72+
ca_file: server.crt
73+
cert_file: client.crt
74+
key_file: client.key
75+
min_version: "1.1"
76+
max_version: "1.2"
77+
otlp/insecure:
78+
endpoint: myserver.local:55690
79+
tls:
80+
insecure: true
81+
otlp/secure_no_verify:
82+
endpoint: myserver.local:55690
83+
tls:
84+
insecure: false
85+
insecure_skip_verify: true
86+
Server Configuration
87+
Receivers leverage server configuration.
88+
89+
Beyond TLS configuration, the following setting can optionally be configured (required for mTLS):
90+
91+
client_ca_file: Path to the TLS cert to use by the server to verify a client certificate. (optional) This sets the ClientCAs and ClientAuth to RequireAndVerifyClientCert in the TLSConfig. Please refer to https://godoc.org/crypto/tls#Config for more information.
92+
client_ca_file_reload (default = false): Reload the ClientCAs file when it is modified.
93+
Example:
94+
95+
receivers:
96+
otlp:
97+
protocols:
98+
grpc:
99+
endpoint: mysite.local:55690
100+
tls:
101+
cert_file: server.crt
102+
key_file: server.key
103+
otlp/mtls:
104+
protocols:
105+
grpc:
106+
endpoint: mysite.local:55690
107+
tls:
108+
client_ca_file: client.pem
109+
cert_file: server.crt
110+
key_file: server.key
111+
otlp/notls:
112+
protocols:
113+
grpc:
114+
endpoint: mysite.local:55690
115+
116+
117+

0 commit comments

Comments
 (0)