Skip to content

Commit 75ed468

Browse files
Add documentation page for the EDOT Collector APM config connector (#11344) (#11461)
* Add apmconfigextension docs * Update for clarity and detail * Alphabetize components in toc * Apply comments (cherry picked from commit 0d53bef) Co-authored-by: Aleksandra Spilkowska <[email protected]>
1 parent d9808fa commit 75ed468

File tree

2 files changed

+115
-8
lines changed

2 files changed

+115
-8
lines changed
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
navigation_title: APM Config extension
3+
description: The APM Config extension is an OpenTelemetry Collector component that enables central configuration delivery for EDOT SDKs using the Open Agent Management Protocol (OpAMP).
4+
applies_to:
5+
stack:
6+
serverless:
7+
observability:
8+
product:
9+
edot_collector:
10+
products:
11+
- id: elastic-agent
12+
- id: observability
13+
- id: edot-collector
14+
---
15+
16+
# APM Config extension
17+
18+
The {{product.apm}} Config extension (`apmconfigextension`) enables central configuration for {{edot}} SDKs through the Open Agent Management Protocol (OpAMP). It establishes a control channel between the {{edot}} Collector and an OpAMP-enabled {{product.apm-server}} endpoint so that configuration updates can be retrieved and delivered dynamically to connected SDKs.
19+
20+
{applies_to}`stack: ga 9.1` This extension is required when using the [Central Configuration feature](docs-content://solutions/observability/apm/opentelemetry/edot-sdks-central-configuration.md) for {{edot}} SDKs.
21+
22+
For full contrib details, refer to the [OpenTelemetry `apmconfigextension` documentation](https://github.com/elastic/opentelemetry-collector-components/tree/main/extension/apmconfigextension).
23+
24+
## How it works
25+
26+
The extension acts as an OpAMP client, opening a bidirectional control channel to the OpAMP endpoint exposed by {{product.apm-server}}. Through this channel:
27+
28+
1. The Collector requests configuration bundles for connected {{edot}} SDKs.
29+
2. The configuration server sends updates based on user changes in the Applications UI.
30+
3. Updated configuration is distributed to {{edot}} SDKs using OpAMP-supported mechanisms.
31+
32+
The extension does not modify telemetry or manage pipelines. Its sole purpose is configuration synchronization.
33+
34+
## Typical use cases
35+
36+
Common scenarios where the {{product.apm}} Config extension is required:
37+
38+
* Central configuration for {{edot}} SDKs. Enables dynamic updates to sampling, attribute collection, security settings, and custom SDK options.
39+
40+
* Standalone {{edot}} Collector deployments. The extension can connect directly to the {{product.apm-server}} OpAMP endpoint.
41+
42+
* Managing large fleets of instrumented services. Allows consistent and centralized control of SDK configuration without requiring application restarts.
43+
44+
:::{note}
45+
Integration with {{fleet}} Server (Fleet OpAMP endpoint) is not available at this time.
46+
:::
47+
48+
## Example configuration
49+
50+
The following examples show how to configure the {{product.apm}} Config extension for different deployment scenarios:
51+
52+
### Standalone {{edot}} Collector
53+
54+
```yaml
55+
extensions:
56+
bearertokenauth:
57+
scheme: "APIKey"
58+
token: "<ENCODED_ELASTICSEARCH_APIKEY>"
59+
60+
apmconfig:
61+
opamp:
62+
protocols:
63+
http:
64+
endpoint: "https://apm.example.com:8200/opamp"
65+
66+
source:
67+
elasticsearch:
68+
endpoint: "<ELASTICSEARCH_ENDPOINT>"
69+
auth:
70+
authenticator: bearertokenauth
71+
72+
service:
73+
extensions: [bearertokenauth, apmconfig]
74+
```
75+
76+
### Custom OpAMP settings
77+
78+
You can configure timeouts or connection behavior:
79+
80+
```yaml
81+
extensions:
82+
apmconfig:
83+
opamp:
84+
protocols:
85+
http:
86+
endpoint: "https://apm.example.com:8200/opamp"
87+
timeout: 30s
88+
tls:
89+
insecure_skip_verify: false
90+
```
91+
92+
## Key configuration options
93+
94+
The following are the most important settings when configuring the {{product.apm}} Config extension:
95+
96+
| Option | Description |
97+
|--------|-------------|
98+
| `opamp.protocols.http.endpoint` | The OpAMP server endpoint. Required for standalone deployments. |
99+
| `opamp.protocols.http.headers` | HTTP headers used for authentication, such as API keys. |
100+
| `opamp.protocols.http.tls` | TLS options, including certificate verification behavior. |
101+
| `opamp.protocols.http.timeout` | Timeout for OpAMP communication. |
102+
103+
:::{note}
104+
The endpoint must point to an OpAMP-enabled {{product.apm-server}} Server. Standard ingest or OTLP endpoints will not work.
105+
:::
106+
107+
For the complete list of configuration options, refer to the [contrib `apmconfigextension` documentation](https://github.com/elastic/opentelemetry-collector-components/tree/main/extension/apmconfigextension).
108+
109+
## Resources
110+
111+
* [Contrib component: apmconfigextension](https://github.com/elastic/opentelemetry-collector-components/tree/main/extension/apmconfigextension)
112+
* [OpAMP specification](https://opentelemetry.io/docs/specs/opamp/)
113+
* [Central configuration for {{edot}} SDKs](docs-content://solutions/observability/apm/apm-agent-central-configuration.md)

docs/reference/edot-collector/toc.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,16 @@ toc:
1414
- file: config/proxy.md
1515
- file: components.md
1616
children:
17-
<<<<<<< HEAD
18-
=======
1917
- file: components/apmconfigextension.md
2018
- file: components/attributesprocessor.md
2119
- file: components/elasticapmconnector.md
2220
- file: components/elasticapmintakereceiver.md
2321
- file: components/elasticapmprocessor.md
24-
>>>>>>> 4d7a357d7 (Add documentation page for the EDOT Collector attributes processor (#11331))
2522
- file: components/elasticsearchexporter.md
26-
- file: components/elasticapmintakereceiver.md
27-
- file: components/k8sclusterreceiver.md
28-
- file: components/elasticapmprocessor.md
29-
- file: components/elasticapmconnector.md
3023
- file: components/filelogreceiver.md
31-
- file: components/k8sobjectsreceiver.md
3224
- file: components/hostmetricsreceiver.md
25+
- file: components/k8sclusterreceiver.md
26+
- file: components/k8sobjectsreceiver.md
3327
- file: components/kubeletstatsreceiver.md
3428
- file: customization.md
3529
children:

0 commit comments

Comments
 (0)