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

Commit 591604c

Browse files
WIP
1 parent 841af10 commit 591604c

File tree

5 files changed

+143
-6
lines changed

5 files changed

+143
-6
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
The Splunk Distribution of the OpenTelemetry Collector has the following configuration options than can be used by several :ref:`otel-components`.
22

33
* :ref:`collector-common-config-auth`
4-
* :ref:`collector-common-config-grcp`
4+
* :ref:`collector-common-config-grcp`
5+
* :ref:`collector-common-config-net`

gdi/opentelemetry/collector-common-config.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,8 @@ Common configuration options
1414

1515
Authentication <common-config/collector-common-config-auth.rst>
1616
gRCP settings <common-config/collector-common-config-grcp.rst>
17+
Network settings <common-config/collector-common-config-net.rst>
18+
19+
.. 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.
1720

1821
.. include:: /_includes/gdi/collector-common-options.rst

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ Configure authentication
66

77
You can configure two types of authentication within the Collector:
88

9-
* Server type authentication takes place in incoming HTTP/gRPC requests and is typically used in :ref:`receivers <otel-components-receivers>`. Server type authenticators include:
9+
* 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-
* Basic Auth Extension
11+
* :ref:`Basic Auth Extension <basic-auth-extension>`
1212
* Bearer Token Extension
1313
* OIDC Extension
1414

15-
* Client type authentication takes place in outgoing HTTP/gRPC requests and is typically used in :ref:`exporters <otel-components-exporters>`.
15+
* 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

1717
* ASAP Client Authentication Extension
18-
* Basic Auth Extension
18+
* :ref:`Basic Auth Extension <basic-auth-extension>`
1919
* Bearer Token Extension
20-
* OAuth2 Client Extension
20+
* :ref:`oauth2client-extension`
2121
* Sigv4 Extension
2222

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

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

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,102 @@
44
Configure gRCP settings
55
*********************************************************************************
66

7+
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>`.
78

9+
Client configuration
10+
=============================================================================================
811

12+
Exporters leverage client configuration.
913

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.
15+
16+
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.
17+
compression: Compression type to use among gzip, snappy, zstd, and none.
18+
endpoint: Valid value syntax available here
19+
tls
20+
headers: name/value pairs added to the request
21+
keepalive
22+
permit_without_stream
23+
time
24+
timeout
25+
read_buffer_size
26+
write_buffer_size
27+
auth
28+
Please note that per_rpc_auth which allows the credentials to send for every RPC is now moved to become an extension. Note that this feature isn't about sending the headers only during the initial connection as an authorization header under the headers would do: this is sent for every RPC performed during an established connection.
29+
30+
Example:
31+
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"
44+
45+
Compression Comparison
46+
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.
47+
48+
The following table summarizes the results, including some additional columns computed from the raw data. The benchmarks were performed on an AWS m5.large EC2 instance with an Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz.
49+
50+
Request Compressor Raw Bytes Compressed bytes Compression ratio Ns / op Mb compressed / second Mb saved / second
51+
lg_log_request gzip 5150 262 19.66 49231 104.61 99.29
52+
lg_metric_request gzip 6800 201 33.83 51816 131.23 127.35
53+
lg_trace_request gzip 9200 270 34.07 65174 141.16 137.02
54+
md_log_request gzip 363 268 1.35 37609 9.65 2.53
55+
md_metric_request gzip 320 145 2.21 30141 10.62 5.81
56+
md_trace_request gzip 451 288 1.57 38270 11.78 4.26
57+
sm_log_request gzip 166 168 0.99 30511 5.44 -0.07
58+
sm_metric_request gzip 185 142 1.30 29055 6.37 1.48
59+
sm_trace_request gzip 233 205 1.14 33466 6.96 0.84
60+
lg_log_request snappy 5150 475 10.84 1915 2,689.30 2,441.25
61+
lg_metric_request snappy 6800 466 14.59 2266 3,000.88 2,795.23
62+
lg_trace_request snappy 9200 644 14.29 3281 2,804.02 2,607.74
63+
md_log_request snappy 363 300 1.21 770.0 471.43 81.82
64+
md_metric_request snappy 320 162 1.98 588.6 543.66 268.43
65+
md_trace_request snappy 451 330 1.37 907.7 496.86 133.30
66+
sm_log_request snappy 166 184 0.90 551.8 300.83 -32.62
67+
sm_metric_request snappy 185 154 1.20 526.3 351.51 58.90
68+
sm_trace_request snappy 233 251 0.93 682.1 341.59 -26.39
69+
lg_log_request zstd 5150 223 23.09 17998 286.14 273.75
70+
lg_metric_request zstd 6800 144 47.22 14289 475.89 465.81
71+
lg_trace_request zstd 9200 208 44.23 17160 536.13 524.01
72+
md_log_request zstd 363 261 1.39 11216 32.36 9.09
73+
md_metric_request zstd 320 145 2.21 9318 34.34 18.78
74+
md_trace_request zstd 451 301 1.50 12583 35.84 11.92
75+
sm_log_request zstd 166 165 1.01 12482 13.30 0.08
76+
sm_metric_request zstd 185 139 1.33 8824 20.97 5.21
77+
sm_trace_request zstd 233 203 1.15 10134 22.99 2.96
78+
Compression ratios will vary in practice as they are highly dependent on the data's information entropy. Compression rates are dependent on the speed of the CPU, and the size of payloads being compressed: smaller payloads compress at slower rates relative to larger payloads, which are able to amortize fixed computation costs over more bytes.
79+
80+
gzip is the only required compression algorithm required for OTLP servers, and is a natural first choice. It is not as fast as snappy, but achieves better compression ratios and has reasonable performance. If your collector is CPU bound and your OTLP server supports it, you may benefit from using snappy compression. If your collector is CPU bound and has a very fast network link, you may benefit from disabling compression, which is the default.
81+
82+
Server configuration
83+
=============================================================================================
84+
85+
:ref:`Collector receivers <otel-components-receivers>` leverage server configuration using this settings:
86+
87+
* keepalive
88+
* enforcement_policy
89+
* min_time
90+
* permit_without_stream
91+
* server_parameters
92+
* max_connection_age
93+
* max_connection_age_grace
94+
* max_connection_idle
95+
* time
96+
* timeout
97+
* max_concurrent_streams
98+
* max_recv_msg_size_mib
99+
* read_buffer_size
100+
* tls
101+
* write_buffer_size
102+
* auth
103+
104+
.. note:: To configure transport, see :ref:`collector-common-config-net`.
10105

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
.. _collector-common-config-net:
2+
3+
*********************************************************************************
4+
Configure network settings
5+
*********************************************************************************
6+
7+
:ref:`Collector receivers <otel-components-receivers>` leverage network configuration to set connection and transport information.
8+
9+
You can configure the following network settings:
10+
11+
* ``endpoint``. Configures the address for this network connection.
12+
13+
* For TCP and UDP networks, the address has the form ``"host:port"``. The host must be a literal IP address, or a host name that can be resolved to IP addresses. The port must be a literal port number or a service name.
14+
15+
* If the host is a literal IPv6 address it must be enclosed in square brackets, as in ``"[2001:db8::1]:80"`` or ``"[fe80::1%zone]:80"``. The zone specifies the scope of the literal IPv6 address as defined in RFC 4007.
16+
17+
* ``transport``. You can use the following protocols:
18+
19+
* "tcp"
20+
* "tcp4" (IPv4-only)
21+
* "tcp6" (IPv6-only)
22+
* "udp"
23+
* "udp4" (IPv4-only)
24+
* "udp6" (IPv6-only)
25+
* "ip"
26+
* "ip4" (IPv4-only)
27+
* "ip6" (IPv6-only)
28+
* "unix"
29+
* "unixgram"
30+
* "unixpacket"
31+
32+
* ``dialer_timeout``. No timeout by default. The maximum amount of time a dial waits for a connect to complete.
33+
34+
35+
.. note:: TCP receivers only require the ``endpoint`` configuration setting.
36+
37+
38+

0 commit comments

Comments
 (0)