Skip to content

Commit 61e885a

Browse files
MrAliasotelbot[bot]Copilot
authored
Update OBI install docs (#9590)
Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 551e239 commit 61e885a

File tree

3 files changed

+98
-7
lines changed

3 files changed

+98
-7
lines changed

content/en/docs/zero-code/obi/setup/docker.md

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,14 @@ cSpell:ignore: goblog
1111
OBI can run a standalone Docker container that can instrument a process running
1212
in another container.
1313

14-
Find the latest image of OBI on
15-
[Docker Hub](https://hub.docker.com/r/otel/ebpf-instrument) with the following
16-
name:
14+
OBI container images are published to both registries:
15+
16+
- [Docker Hub](https://hub.docker.com/r/otel/ebpf-instrument):
17+
`otel/ebpf-instrument:v<version>`
18+
- [GHCR](https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/pkgs/container/opentelemetry-ebpf-instrumentation%2Febpf-instrument):
19+
`ghcr.io/open-telemetry/opentelemetry-ebpf-instrumentation/ebpf-instrument:v<version>`
20+
21+
The development tag is also published on Docker Hub as:
1722

1823
```text
1924
otel/ebpf-instrument:main
@@ -35,10 +40,17 @@ keys, authenticated via the OIDC (OpenID Connect) protocol in GitHub Actions.
3540
This ensures the authenticity and integrity of the container published by the
3641
OpenTelemetry project.
3742

38-
You can verify the signature of the container image using the following command:
43+
You can verify the signature of the container image using the following
44+
commands:
3945

4046
```sh
41-
cosign verify --certificate-identity-regexp 'https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/' --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' otel/ebpf-instrument:main
47+
export VERSION=v0.7.0
48+
49+
# Verify a release image from Docker Hub
50+
cosign verify --certificate-identity-regexp 'https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/' --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' otel/ebpf-instrument:${VERSION}
51+
52+
# Verify the same release from GHCR
53+
cosign verify --certificate-identity-regexp 'https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/' --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' ghcr.io/open-telemetry/opentelemetry-ebpf-instrumentation/ebpf-instrument:${VERSION}
4254
```
4355

4456
Here is an example output:
@@ -53,13 +65,22 @@ The following checks were performed on each of these signatures:
5365
[{"critical":{"identity":{"docker-reference":"index.docker.io/otel/ebpf-instrument:main"},"image":{"docker-manifest-digest":"sha256:55426a2bbb8003573a961697888aa770a1f5f67fcda2276dc2187d1faf7181fe"},"type":"https://sigstore.dev/cosign/sign/v1"},"optional":{}}]
5466
```
5567

68+
Successful verification reports that the Cosign claims were validated and shows
69+
the signed image digest. If verification fails:
70+
71+
- confirm that the tag exists in the registry you queried
72+
- make sure you are verifying a published release tag, not just `main`
73+
- verify that you are using the GitHub OIDC issuer and identity regular
74+
expression shown above
75+
5676
## Docker CLI example
5777

5878
For this example you need a container running an HTTP/S or gRPC service. If you
5979
don't have one, you can use this
6080
[simple blog engine service written in Go](https://macias.info):
6181

6282
```sh
83+
export VERSION=v0.7.0
6384
docker run -p 18443:8443 --name goblog mariomac/goblog:dev
6485
```
6586

@@ -87,7 +108,7 @@ docker run --rm \
87108
-e OTEL_EBPF_TRACE_PRINTER=text \
88109
--pid=host \
89110
--privileged \
90-
otel/ebpf-instrument:main
111+
otel/ebpf-instrument:${VERSION}
91112
```
92113

93114
After OBI is running, open `https://localhost:18443` in your browser, use the

content/en/docs/zero-code/obi/setup/standalone.md

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ title: Run OBI as a standalone process
33
linkTitle: Standalone
44
description: Learn how to setup and run OBI as a standalone Linux process.
55
weight: 5
6+
cSpell:ignore: cyclonedx
67
---
78

89
OBI can run as a standalone Linux OS process with elevated privileges that can
@@ -17,7 +18,20 @@ Each release includes:
1718

1819
- `obi-v<version>-linux-amd64.tar.gz` - Linux AMD64/x86_64 archive
1920
- `obi-v<version>-linux-arm64.tar.gz` - Linux ARM64 archive
20-
- `SHA256SUMS` - Checksums for verification
21+
- `obi-v<version>-linux-amd64.cyclonedx.json` - CycloneDX SBOM for the AMD64
22+
archive
23+
- `obi-v<version>-linux-arm64.cyclonedx.json` - CycloneDX SBOM for the ARM64
24+
archive
25+
- `obi-v<version>-source-generated.cyclonedx.json` - CycloneDX SBOM for the
26+
source-generated archive
27+
- `obi-java-agent-v<version>.cyclonedx.json` - CycloneDX SBOM for the embedded
28+
Java agent and its Java dependencies
29+
- `SHA256SUMS` - Checksums for verification of the release archives and SBOM
30+
assets
31+
32+
Container images for the same release are also published. For image pull and
33+
signature verification instructions, see
34+
[Run OBI as a Docker container](../docker/).
2135

2236
Set your desired version and architecture:
2337

@@ -44,6 +58,18 @@ sha256sum -c SHA256SUMS --ignore-missing
4458
tar -xzf obi-v${VERSION}-linux-${ARCH}.tar.gz
4559
```
4660

61+
Successful verification prints an `OK` result for each downloaded file:
62+
63+
```text
64+
obi-v${VERSION}-linux-${ARCH}.tar.gz: OK
65+
```
66+
67+
If verification fails, `sha256sum` reports `FAILED`. When that happens:
68+
69+
- confirm that `VERSION` matches the archive and `SHA256SUMS` you downloaded
70+
- remove any partially downloaded files and fetch them again
71+
- verify only the files you actually downloaded from that release
72+
4773
The archive contains:
4874

4975
- `obi` - Main OBI binary
@@ -66,6 +92,42 @@ The archive contains:
6692
> (for example `XDG_CACHE_HOME=/var/cache/obi sudo -E obi ...`) or configure an
6793
> explicit cache path according to your environment.
6894
95+
## SBOMs
96+
97+
CycloneDX SBOM files are optional metadata for supply-chain review and
98+
automation. They are not required to install or run OBI.
99+
100+
The published SBOMs describe the contents of the binary archives and embedded
101+
components in [CycloneDX JSON format](https://cyclonedx.org/). They can be used
102+
with standard SBOM tooling to inspect dependencies, licenses, and components
103+
without executing the binaries.
104+
105+
Download the SBOMs you want to inspect:
106+
107+
```sh
108+
# SBOM for the binary archive you downloaded
109+
wget https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/releases/download/v${VERSION}/obi-v${VERSION}-linux-${ARCH}.cyclonedx.json
110+
111+
# SBOM for the embedded Java agent and its Java dependencies
112+
wget https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/releases/download/v${VERSION}/obi-java-agent-v${VERSION}.cyclonedx.json
113+
114+
# Optional: verify the downloaded SBOM files against SHA256SUMS too
115+
sha256sum -c SHA256SUMS --ignore-missing
116+
```
117+
118+
Example inspection commands:
119+
120+
```sh
121+
# List component names and versions from the archive SBOM
122+
jq '.components[] | {name, version}' obi-v${VERSION}-linux-${ARCH}.cyclonedx.json
123+
124+
# Scan the SBOM with Grype
125+
grype sbom:obi-v${VERSION}-linux-${ARCH}.cyclonedx.json
126+
127+
# Inspect the Java agent dependency graph
128+
jq '.components[] | {name, version}' obi-java-agent-v${VERSION}.cyclonedx.json
129+
```
130+
69131
## Install to system
70132

71133
After extracting the archive, you can install the binaries to a location in your

static/refcache.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1247,6 +1247,10 @@
12471247
"StatusCode": 206,
12481248
"LastSeen": "2026-03-17T09:54:50.430034452Z"
12491249
},
1250+
"https://cyclonedx.org/": {
1251+
"StatusCode": 200,
1252+
"LastSeen": "2026-04-06T21:47:59.459109645Z"
1253+
},
12501254
"https://danielmiessler.com/blog/ai-influence-level-ail": {
12511255
"StatusCode": 206,
12521256
"LastSeen": "2026-03-03T09:52:09.028680117Z"
@@ -12571,6 +12575,10 @@
1257112575
"StatusCode": 206,
1257212576
"LastSeen": "2026-03-10T09:53:15.207792097Z"
1257312577
},
12578+
"https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/pkgs/container/opentelemetry-ebpf-instrumentation%2Febpf-instrument": {
12579+
"StatusCode": 206,
12580+
"LastSeen": "2026-04-07T00:19:16.233031662Z"
12581+
},
1257412582
"https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/releases": {
1257512583
"StatusCode": 206,
1257612584
"LastSeen": "2026-03-12T09:59:20.644535557Z"

0 commit comments

Comments
 (0)