Skip to content

Commit 9df25d2

Browse files
Gandemjanine-c
andauthored
full_host: update documentation (#31779)
* full_host: update documentation update full host documentation to: - align wording (replace Full Host with Full-Host for consistency) - remove irrelevant information (bottlenecks, tracer versions) - add support linux versions - remove build instructions - move and fix errata in debug symbols section * fix capitalization * replace quote * Apply suggestions from code review Co-authored-by: Janine Chan <[email protected]> * apply identation suggestion --------- Co-authored-by: Janine Chan <[email protected]>
1 parent c4f684d commit 9df25d2

File tree

1 file changed

+22
-51
lines changed

1 file changed

+22
-51
lines changed

content/en/profiler/enabling/full_host.md

Lines changed: 22 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ further_reading:
88
---
99

1010
{{< callout url="https://www.datadoghq.com/product-preview/full-host-profiler/" btn_hidden="false" header="Join the Preview!" >}}
11-
Full Host is in Preview.
11+
Full-Host is in Preview.
1212
{{< /callout >}}
1313

1414
The Full-Host Profiler is an eBPF-based profiling solution built on OpenTelemetry that sends profiling data to Datadog using the Datadog Agent. It supports symbolication for compiled languages and is optimized for containerized environments such as Docker and Kubernetes.
@@ -19,21 +19,17 @@ The Full-Host Profiler is particularly valuable for:
1919

2020
- Profiling open source software components that aren't instrumented with Datadog's tracing libraries.
2121
- Analyzing performance across multi-language processes and runtimes.
22-
- Identifying resource bottlenecks at the host level, including detection of noisy neighbor processes.
23-
2422

2523
## Requirements
2624

27-
For a summary of the minimum and recommended runtime and tracer versions across all languages, read [Supported Language and Tracer Versions][7].
28-
2925
Supported operating systems
30-
: Linux
26+
: Linux (5.4+ for amd64, 5.5+ for arm64)
3127

3228
Supported architecture
3329
: `amd64` or `arm64` processors
3430

3531
Serverless
36-
: `full host` is not supported on serverless platforms, such as AWS Lambda.
32+
: `full-host` is not supported on serverless platforms, such as AWS Lambda.
3733

3834
Debugging information
3935
: Symbols should be available locally or can be uploaded in CI with `datadog-ci`
@@ -47,31 +43,17 @@ The Full-Host Profiler is distributed as a standalone executable.
4743
### Container environments
4844
For hosts running containerized workloads, Datadog recommends running the profiler inside a container:
4945

50-
- **Kubernetes**: Follow the [running in Kubernetes][8] instructions.
51-
- **Docker**: Follow the [running in Docker][9] instructions.
46+
- **Kubernetes**: Follow the [running in Kubernetes][7] instructions.
47+
- **Docker**: Follow the [running in Docker][8] instructions.
5248
- **Container image**: Available from the [container registry][5].
5349

5450

5551
### Non-container environments
5652

57-
For hosts without container runtimes, follow the instructions for [running directly on the host][10].
58-
59-
### Configuration
60-
#### Local symbol upload
61-
For compiled languages (C/C++/Rust/Go), the profiler can upload local symbols to Datadog for symbolication when unstripped binaries are available.
62-
The Full-Host Profiler handles this automatically.
63-
64-
To upload symbols using datadog-ci, see <a href="#symbol-upload-using-datadog-ci">Symbol upload</a>.
65-
66-
### Build
67-
To build the Full-Host Profiler directly on your machine, run:
68-
69-
```shell
70-
make
71-
```
53+
For hosts without container runtimes, follow the instructions for [running directly on the host][9].
7254

7355
## Service naming
74-
When using full-host profiling, Datadog captures profiles from all processes running on the host. The service name for each process depends on the `DD_SERVICE` environment variable.
56+
When using full-host profiling, Datadog profiles all processes on the host. Each process's service name is derived from its `DD_SERVICE` environment variable.
7557

7658
If `DD_SERVICE` is set, the profiler uses the value of `DD_SERVICE` as the service name. This is the recommended and most reliable approach.
7759

@@ -80,30 +62,20 @@ If `DD_SERVICE` is not set, Datadog infers a service name from the binary name.
8062

8163
If multiple services are running under the same interpreter (for example, two separate Java applications on the same host), and neither sets `DD_SERVICE`, Datadog groups them together under the same service name. Datadog cannot distinguish between them unless you provide a unique service name.
8264

83-
## Symbol upload using datadog-ci
65+
## Debug symbols
8466

85-
1. Git clone the [datadog-ci][13] command line tool
86-
2. Install `datadog-ci`, run:
67+
For compiled languages (such as Rust, C, C++, Go, etc.), the profiler uploads local symbols to Datadog for symbolication, ensuring that function names are available in profiles. For Rust, C, and C++, symbols need to be available locally (unstripped binaries).
8768

88-
```shell
89-
npm install -g @datadog/datadog-ci
90-
```
91-
3. Provide a [Datadog API key][11] through the `DD_API_KEY` environment variable.
92-
4. Set the `DD_SITE` environment variable to your [Datadog site][12]. Your site is: {{< region-param key="dd_site" code="true" >}}
93-
5. Set variables in an encrypted `datadog-ci.json` file at the root of your project:
69+
For binaries stripped of debug symbols, it's possible to upload symbols manually or in the CI:
9470

71+
1. Install the [datadog-ci][12] command line tool.
72+
2. Provide a [Datadog API key][10] through the `DD_API_KEY` environment variable.
73+
3. Set the `DD_SITE` environment variable to your [Datadog site][11].
74+
4. Install the `binutils` package, which provides the `objcopy` CLI tool.
75+
5. Run:
9576
```
96-
{
97-
"apiKey": "<API_KEY>",
98-
"datadogSite": "<SITE>"
99-
}
77+
DD_BETA_COMMANDS_ENABLED=1 datadog-ci elf-symbols upload ~/your/build/symbols/
10078
```
101-
6. Install `binutils`
102-
7. Run:
103-
104-
```
105-
DD_BETA_COMMANDS_ENABLED=1 datadog-ci elf-symbols upload ~/your/build/bin/
106-
```
10779

10880

10981
## What's next?
@@ -119,10 +91,9 @@ After installing the Full-Host Profiler, see the [Getting Started with Profiler]
11991
[4]: /getting_started/tagging/unified_service_tagging
12092
[5]: https://github.com/DataDog/dd-otel-host-profiler/pkgs/container/dd-otel-host-profiler/.
12193
[6]: /getting_started/profiler/
122-
[7]: /profiler/enabling/supported_versions/
123-
[8]: https://github.com/DataDog/dd-otel-host-profiler/blob/main/doc/running-in-kubernetes.md
124-
[9]: https://github.com/DataDog/dd-otel-host-profiler/blob/main/doc/running-in-docker.md
125-
[10]: https://github.com/DataDog/dd-otel-host-profiler/blob/main/doc/running-on-host.md
126-
[11]: https://app.datadoghq.com/organization-settings/api-keys
127-
[12]: /getting_started/site/
128-
[13]: https://github.com/DataDog/datadog-ci/tree/master
94+
[7]: https://github.com/DataDog/dd-otel-host-profiler/blob/main/doc/running-in-kubernetes.md
95+
[8]: https://github.com/DataDog/dd-otel-host-profiler/blob/main/doc/running-in-docker.md
96+
[9]: https://github.com/DataDog/dd-otel-host-profiler/blob/main/doc/running-on-host.md
97+
[10]: https://app.datadoghq.com/organization-settings/api-keys
98+
[11]: /getting_started/site/
99+
[12]: https://github.com/DataDog/datadog-ci?tab=readme-ov-file#how-to-install-the-cli

0 commit comments

Comments
 (0)