|
9 | 9 | OTEL_RESOURCE_ATTRIBUTES_APPLICATION: obi |
10 | 10 | OTEL_RESOURCE_ATTRIBUTES_NAMESPACE: obi |
11 | 11 | OTEL_RESOURCE_ATTRIBUTES_POD: obi |
12 | | -cSpell:ignore: asyncio CAP_PERFMON uvloop |
| 12 | +cSpell:ignore: asyncio uvloop |
13 | 13 | --- |
14 | 14 |
|
15 | 15 | OpenTelemetry libraries provide telemetry collection for popular programming |
@@ -85,55 +85,63 @@ For a complete list of changes and upgrade notes, see the |
85 | 85 | If you want to explore the new NGINX example, see the |
86 | 86 | [example walkthrough](https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/tree/v0.7.0/examples/nginx). |
87 | 87 |
|
88 | | -## Requirements |
| 88 | +## How OBI works |
89 | 89 |
|
90 | | -OBI requires the following to run: |
91 | | - |
92 | | -- Linux kernel version 5.8 or later (or 4.18 for Redhat Enterprise Linux) |
93 | | -- An x86_64 or arm64 processor |
94 | | -- Runtime support for eBPF (most modern Linux distributions) |
95 | | -- Administrative privileges (root access) or the specific capabilities listed in |
96 | | - the [configuration reference](security/) |
| 90 | +The following diagram shows the high-level OBI architecture and where eBPF |
| 91 | +instrumentation fits into the telemetry pipeline. |
97 | 92 |
|
98 | 93 |  |
99 | 94 |
|
100 | 95 | ## Compatibility |
101 | 96 |
|
102 | | -OBI is tested with the following Linux distributions: |
| 97 | +OBI supports Linux environments that meet the following requirements: |
| 98 | + |
| 99 | +| Requirement | Supported | |
| 100 | +| :--------------- | :-------------------------------------------------------------------- | |
| 101 | +| CPU architecture | `amd64`, `arm64` | |
| 102 | +| Linux kernel | `5.8+`, or RHEL-family Linux `4.18+` with the required eBPF backports | |
| 103 | +| Kernel features | BTF | |
| 104 | +| Privileges | Root, or the Linux capabilities required by the enabled OBI features | |
| 105 | + |
| 106 | +OBI publishes the following supported release artifacts: |
| 107 | + |
| 108 | +| Artifact | Supported platforms | |
| 109 | +| :----------------------------------------------- | :--------------------------- | |
| 110 | +| `obi` binary archive | Linux `amd64`, Linux `arm64` | |
| 111 | +| `k8s-cache` binary archive | Linux `amd64`, Linux `arm64` | |
| 112 | +| `otel/ebpf-instrument` container image | Linux `amd64`, Linux `arm64` | |
| 113 | +| `otel/ebpf-instrument-k8s-cache` container image | Linux `amd64`, Linux `arm64` | |
| 114 | + |
| 115 | +OBI can be deployed on standalone Linux hosts, in containers, and on Kubernetes |
| 116 | +when the environment meets the requirements above. |
103 | 117 |
|
104 | | -- Ubuntu 20.04 LTS, 21.04, 22.04 LTS and 23.04 |
105 | | -- CentOS 7, 8, and 9 |
106 | | -- AlmaLinux 8, 9 |
107 | | -- Rocky Linux 8, 9 |
108 | | -- Red Hat Enterprise Linux 8, 9 |
109 | | -- Debian 11, 12 |
110 | | -- openSUSE Leap 15.3, 15.4 |
111 | | -- SUSE Linux Enterprise Server 15 SP4 |
| 118 | +OBI does not support non-Linux operating systems, Linux architectures other than |
| 119 | +`amd64` and `arm64`, Linux environments without BTF, or kernel versions earlier |
| 120 | +than Linux `5.8` outside the documented RHEL-family `4.18+` exception. |
112 | 121 |
|
113 | | -- OBI also supports RedHat-based distributions: RHEL8, CentOS 8, Rocky8, |
114 | | - AlmaLinux8, and others, which ship a Kernel 4.18 that backports eBPF-related |
115 | | - patches. |
| 122 | +Feature-specific support details are documented in these guides: |
116 | 123 |
|
117 | | -- For instrumenting Go programs, compile with at least Go 1.17. OBI support Go |
118 | | - applications built with a major **Go version no earlier than 3 versions** |
119 | | - behind the current stable major release. |
120 | | -- Administrative access rights to execute OBI. |
| 124 | +- [Distributed traces](distributed-traces/): context propagation support, |
| 125 | + runtime-specific requirements, and distributed tracing limitations |
| 126 | +- [Export data](configure/export-data/): protocol, database, messaging, GenAI, |
| 127 | + GPU, and Go library instrumentation support |
121 | 128 |
|
122 | 129 | ## Limitations |
123 | 130 |
|
124 | | -OBI has its limitations too. It only provides generic metrics and transaction |
125 | | -level trace span information. Language agents and manual instrumentation is |
126 | | -still recommended, so that you can specify the custom attributes and events you |
127 | | -want to capture. |
| 131 | +OBI provides application and protocol observability without code changes, but it |
| 132 | +does not replace language-level instrumentation in every scenario. Use language |
| 133 | +agents or manual instrumentation when you need custom spans, |
| 134 | +application-specific attributes, business events, or other in-process telemetry |
| 135 | +that eBPF-based instrumentation cannot derive automatically. |
128 | 136 |
|
129 | | -While most eBPF programs require elevated privileges, OBI allows you to specify |
130 | | -finer grained permissions to run with minimum required permissions, such as: |
131 | | -`CAP_DAC_READ_SEARCH`, `CAP_SYS_PTRACE`, `CAP_PERFMON`, `CAP_BPF`, |
132 | | -`CAP_CHECKPOINT_RESTORE`, and others. |
| 137 | +OBI can automatically capture network and protocol activity, but it cannot |
| 138 | +always recover application-specific details that are not visible from eBPF |
| 139 | +observation points. |
133 | 140 |
|
134 | | -Some OBI functionality requires further permissions, for example using the |
135 | | -network observability probes with Linux Traffic Control requires |
136 | | -`CAP_NET_ADMIN`, but it's a feature you have to optionally enable. |
| 141 | +Some features also have additional caveats or narrower support than the core |
| 142 | +platform requirements. For details, refer to the feature-specific documentation |
| 143 | +for [distributed traces](distributed-traces/) and |
| 144 | +[exported instrumentation](configure/export-data/). |
137 | 145 |
|
138 | 146 | For a comprehensive list of capabilities required by OBI, refer to |
139 | 147 | [Security, permissions and capabilities](security/). |
|
0 commit comments