Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
2e2be5a
chore(deps): update rust crate serde_json to v1.0.149 (#1045)
renovate[bot] Jan 7, 2026
3c0e1aa
chore(deps): update rust crate lru to v0.16.3 [security] (#1049)
renovate[bot] Jan 8, 2026
e7c2162
fix(collector): propagate context to reportProfile for graceful shutd…
rogercoll Jan 8, 2026
a3118aa
Prevent finalization of `pfelf` files while using their data. (#877)
umanwizard Jan 8, 2026
0e010c0
fix(deps): update module golang.org/x/sys to v0.40.0 (#1053)
renovate[bot] Jan 9, 2026
7ff8049
fix(deps): update go dependencies (#1057)
renovate[bot] Jan 12, 2026
9cffc68
chore(deps): update rust dependencies to v0.14.3 (#1056)
renovate[bot] Jan 12, 2026
8d50faa
chore(deps): update rust crate flate2 to v1.1.8 (#1061)
renovate[bot] Jan 13, 2026
640afa8
fix(deps): update golang.org/x/exp digest to 716be56 (#1059)
renovate[bot] Jan 13, 2026
99b6699
chore(deps): update github actions (#1060)
renovate[bot] Jan 13, 2026
2a71610
ebpf: produce a better error when a map is full (#1068)
bobrik Jan 14, 2026
d325cd4
refactor(controller): encapsulate context cancellation logic (#1051)
rogercoll Jan 14, 2026
38ce8e1
go_labels: introduce map scaler to handle more processes (#1058)
florianl Jan 14, 2026
620f8c8
tracer: load only interpreter specific maps for enabled interpreters …
florianl Jan 14, 2026
567d4a0
Upgrade collector to run on the main commit (#1070)
dmathieu Jan 15, 2026
924c409
chore(deps): update rust crate rustc-demangle to v0.1.27 (#1077)
renovate[bot] Jan 16, 2026
808de24
node: search for non-exported symbols directly in the symtab (#1067)
umanwizard Jan 16, 2026
7290902
fix(deps): update go dependencies to 5e41fb5 (#1076)
renovate[bot] Jan 16, 2026
9b9cc81
interpreter: support python 3.14 (#1074)
florianl Jan 17, 2026
5afc0e5
tracer: avoid panic for unknown origins (#1046)
florianl Jan 19, 2026
4e32ba5
chore(deps): update actions/cache action to v5.0.2 (#1086)
renovate[bot] Jan 19, 2026
b1b4a05
chore(deps): update rust crate thiserror to v2.0.18 (#1087)
renovate[bot] Jan 19, 2026
604ab1a
fix(deps): update go dependencies (#1088)
renovate[bot] Jan 19, 2026
f32ed3d
fix(deps): update go dependencies to 0550b08 (#1093)
renovate[bot] Jan 20, 2026
40dd9d9
ebpf: simplify get_pristine_per_cpu_record (#1091)
fabled Jan 20, 2026
a9d2c32
nativeunwind: fix Go 1.26 (#1083)
florianl Jan 20, 2026
0a37499
Update approvers (#1082)
christos68k Jan 20, 2026
7f9dd96
Fix unwinding on arm64 kernel v6.18-rc1 and newer (#1094)
fabled Jan 20, 2026
821251b
Initial support for BEAM (Erlang/Elixir) (#289)
GregMefford Jan 20, 2026
5dc18d6
Mimic Ruby's backtrace logic in ruby interpreter and tracer, add supp…
dalehamel Jan 20, 2026
1adfd51
Update clang-format config to not permit empty lines at start of bloc…
dalehamel Jan 20, 2026
839b9ee
Fix FP+RA handling on aarch64 (#1048)
umanwizard Jan 20, 2026
ac427a2
fix(deps): update go dependencies to v0.144.0 (#1097)
renovate[bot] Jan 21, 2026
d991417
README: update list of supported HLL (#1098)
florianl Jan 21, 2026
a36a335
chore(deps): update actions/checkout action to v6.0.2 (#1106)
renovate[bot] Jan 23, 2026
846941a
ci: add 6.18 kernels (#1103)
florianl Jan 23, 2026
ab2320f
interpreter/dotnet: add support for dotnet9 and fixups (#1104)
fabled Jan 23, 2026
c503f21
chore: extend renovate gomod file patterns to match tools (#1107)
rogercoll Jan 23, 2026
159c896
CI: Fix syntax in renovate.json5 for gomod fileMatch (#1111)
florianl Jan 23, 2026
965219c
chore(deps): update github/codeql-action action to v4.31.11 (#1116)
renovate[bot] Jan 26, 2026
644d12b
fix(deps): update module github.com/zeebo/xxh3 to v1.1.0 (#1118)
renovate[bot] Jan 26, 2026
733ccac
chore(config): migrate Renovate config (#1112)
renovate[bot] Jan 26, 2026
2f5d281
refactor: replace strings.Split with strings.SplitSeq (#1066)
vishaal2002 Jan 26, 2026
7bc54bc
ruby: Detect garbage collection and push special frames with GC mode …
dalehamel Jan 26, 2026
db8925c
kallsyms: add update trigger on bpf_ksym_add (#1019)
florianl Jan 26, 2026
cbec671
interpreter/dotnet: add dotnet10 support (#1113)
fabled Jan 26, 2026
8227004
ebpf: simplify native unwinder opcodes (#1092)
fabled Jan 26, 2026
dc56eea
chore(deps): update github/codeql-action action to v4.32.0 (#1122)
renovate[bot] Jan 27, 2026
16f8916
chore: add words to codespell ignore list (#1120)
futomaru Jan 27, 2026
cb268bb
Use batch lookup and delete for monitorPIDEventsMap (#1085)
bobrik Jan 27, 2026
4a04274
reporter: make reporter jitter configurable (#1125)
Gandem Jan 28, 2026
3ba55e3
unwinder: drop duplicate check for .NET on arm64 (#1127)
florianl Jan 28, 2026
509dfc6
libpf: clamp AddJitter result to prevent ticker panic (#1128)
Gandem Jan 28, 2026
4997e48
fix(deps): update module github.com/aws/aws-sdk-go-v2/service/s3 to v…
renovate[bot] Jan 29, 2026
1a5c97c
ci: speed up apt-get update by reducing package indexes (#1132)
Gandem Jan 29, 2026
cf013b1
strconv: Replace Atoi with ParseUint (#1130)
florianl Jan 29, 2026
79ee984
chore(deps): update docker/login-action action to v3.7.0 (#1134)
renovate[bot] Jan 29, 2026
06baedc
ci: use native arm64 runners (#1137)
Gandem Jan 29, 2026
ea8c3ec
chore: add ignore-regex to .codespellrc for improved spell checking (…
futomaru Jan 29, 2026
356ed6a
interpreter/dotnet: add support for cdac introspection data (#1121)
fabled Jan 29, 2026
5040f46
chore(deps): update actions/cache action to v5.0.3 (#1141)
renovate[bot] Jan 30, 2026
5f60680
Add native frame mapping to Symbolize() and use it in Go symbolizer (…
fabled Jan 30, 2026
7fedd90
chore(deps): update rust crate gimli to 0.33.0 (#1117)
renovate[bot] Jan 30, 2026
3871347
reporter: compute profile duration using the time during which the pr…
Gandem Jan 30, 2026
619e4c1
python: get the Thread State from a Thread-local (#1109)
florianl Jan 30, 2026
6d42a24
remove dead code (#1140)
florianl Feb 2, 2026
db2fc46
asm/arm: merge with armhelpers (#1143)
florianl Feb 2, 2026
4734679
fix(deps): update go dependencies (#1149)
renovate[bot] Feb 3, 2026
03c84fc
chore(deps): update github/codeql-action action to v4.32.1 (#1148)
renovate[bot] Feb 3, 2026
df1ae82
chore(deps): update rust crate flate2 to v1.1.9 (#1152)
renovate[bot] Feb 3, 2026
a7bd15f
tracer/ruby: Optimize ep check to simplify work for verifier, increas…
dalehamel Feb 3, 2026
bbd1f7f
fix(deps): update module go.opentelemetry.io/ebpf-profiler to v0.0.20…
renovate[bot] Feb 4, 2026
188cf50
fix: Deduce textstart from runtime.text symbol or moduledata for Go 1…
nsavoire Feb 5, 2026
890ead6
tracer: remove filterIdleFrames (#1154)
florianl Feb 5, 2026
4ca022e
Update codespell configuration to reduce false positives (#1136)
gyanranjanpanda Feb 5, 2026
29c3fd8
chore(deps): update github actions (#1156)
renovate[bot] Feb 6, 2026
08dca1f
fix(deps): update go dependencies (#1159)
renovate[bot] Feb 9, 2026
b6a59cc
testdata: add executable to gitignore (#1158)
florianl Feb 9, 2026
c78b5d4
fix(deps): update go dependencies (#1161)
renovate[bot] Feb 10, 2026
053d244
chore(deps): update rust crate tempfile to v3.25.0 (#1162)
renovate[bot] Feb 10, 2026
4889c48
Add cgroupv1 support (#1131)
mackjmr Feb 11, 2026
59079c3
Delay executable info unloading to reduce churn (#1144)
bobrik Feb 11, 2026
6c00356
interpreter/ruby: add Ruby 4.0.1 support for stack unwinding (#1123)
liad-miggo Feb 11, 2026
8e3c1c5
fix(deps): update golang.org/x/exp digest to 2735e65 (#1164)
renovate[bot] Feb 12, 2026
27976a3
chore(deps): update docker/build-push-action action to v6.19.1 (#1165)
renovate[bot] Feb 12, 2026
5443fe1
Merge remote-tracking branch 'upstream/main' into merge-upstream-2026…
marcsanmi Feb 12, 2026
d59883e
Regenerate support/types.go, rebuild eBPF binaries, fix errors.h form…
marcsanmi Feb 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .codespellignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
ba
crate
fo
mapp
opne
optimyze
prevEnd
6 changes: 3 additions & 3 deletions .codespellrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ builtin = clear,rare,informal
check-filenames =
check-hidden =
ignore-words = .codespellignore
interactive = 1
skip = .git,AUTHORS.md,go.mod,go.sum,LICENSES,zydis
ignore-regex = \b[a-z]+[A-Z][a-zA-Z0-9]*\b|\b[a-z_]+_[a-z_]+\b|\b0x[0-9a-fA-F]+\b|^\s*(package|import|use|include|#include)\s
interactive = 0
skip = .git,AUTHORS.md,go.mod,go.sum,LICENSES,zydis,tools.mod,tools.sum
uri-ignore-words-list = *
write =
85 changes: 56 additions & 29 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
@@ -1,42 +1,69 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:best-practices",
"helpers:pinGitHubActionDigestsToSemver"
$schema: 'https://docs.renovatebot.com/renovate-schema.json',
extends: [
'config:best-practices',
'helpers:pinGitHubActionDigestsToSemver',
],
"postUpdateOptions" : [
"gomodTidy"
postUpdateOptions: [
'gomodTidy',
],
"ignorePaths": ["LICENSES/**"],
"packageRules": [
ignorePaths: [
'LICENSES/**',
],
gomod: {
managerFilePatterns: [
'//(^|/)go\\.mod$//',
'//(^|/)tools\\.mod$//',
],
},
packageRules: [
{
"groupName": "Go dependencies",
"matchManagers": ["gomod"],
"schedule": ["before 8am every weekday"],
"automerge": true
groupName: 'Go dependencies',
matchManagers: [
'gomod',
],
schedule: [
'before 8am every weekday',
],
automerge: true,
},
{
"groupName": "Docker related dependencies",
"matchManagers": ["buildpacks", "devcontainer", "docker-compose", "dockerfile"],
"schedule": ["before 8am every weekday"],
"automerge": true
groupName: 'Docker related dependencies',
matchManagers: [
'buildpacks',
'devcontainer',
'docker-compose',
'dockerfile',
],
schedule: [
'before 8am every weekday',
],
automerge: true,
},
{
"groupName": "GitHub Actions",
"matchManagers": ["github-actions"],
"schedule": ["before 8am every weekday"],
"automerge": true
groupName: 'GitHub Actions',
matchManagers: [
'github-actions',
],
schedule: [
'before 8am every weekday',
],
automerge: true,
},
{
"groupName": "Rust dependencies",
"matchManagers": ["cargo"],
"schedule": ["before 8am every weekday"]
}
groupName: 'Rust dependencies',
matchManagers: [
'cargo',
],
schedule: [
'before 8am every weekday',
],
},
],
ignoreDeps: [
'golangci/golangci-lint-action',
],
"ignoreDeps": [
"golangci/golangci-lint-action"
labels: [
'dependencies',
],
"labels": [
"dependencies"
]
}
2 changes: 1 addition & 1 deletion .github/workflows/auto-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

Expand Down
19 changes: 7 additions & 12 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,33 +14,28 @@ jobs:
analyze:
permissions:
security-events: write # for github/codeql-action/analyze to upload SARIF results
name: Analyze Go (${{ matrix.target_arch }})
name: Analyze Go
if: ${{ github.actor != 'dependabot[bot]' && github.repository == 'open-telemetry/opentelemetry-ebpf-profiler' }}
runs-on: ubuntu-24.04
strategy:
matrix:
target_arch: [amd64, arm64]
runs-on: ubuntu-24.04 # CodeQL CLI only supports x86_64 Linux
steps:
- name: Checkout repository
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: 'false'

- name: Set up environment
uses: ./.github/workflows/env
with:
target_arch: ${{ matrix.target_arch }}

- name: Initialize CodeQL
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
uses: github/codeql-action/init@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
with:
languages: go

- name: Build Artifact
run: |
make TARGET_ARCH=${{ matrix.target_arch }}
run: make

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
uses: github/codeql-action/analyze@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
with:
category: "/language:Go"
timeout-minutes: 10
2 changes: 1 addition & 1 deletion .github/workflows/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
- name: Install codespell
run: sudo apt-get install codespell
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: 'false'
- name: Codespell
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/collector-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up environment
uses: ./.github/workflows/env
- name: Set up Go Stable
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: stable
- name: Cache coredump modules
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
with:
path: tools/coredump/modulecache
key: coredumps-collector-${{ hashFiles('tools/coredump/testdata/*/*.json') }}
Expand Down
41 changes: 9 additions & 32 deletions .github/workflows/env/action.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
name: Common environment setup

inputs:
target_arch:
description: 'Target architecture'
required: false
default: amd64

runs:
using: composite
steps:
Expand All @@ -14,35 +8,18 @@ runs:
run: |
echo "set man-db/auto-update false" | sudo debconf-communicate
sudo dpkg-reconfigure man-db
- name: Install dependencies (arm64)
if: ${{ inputs.target_arch == 'arm64' }}
- name: Install build dependencies
shell: bash
run: |
# Ubuntu has ARM64 packages in an entirely different repo, so we can't just
# `dpkg --add-architecture arm64` here: we have to add a custom sources.list first.
sudo tee /etc/apt/sources.list.d/ubuntu.sources <<EOF > /dev/null
Types: deb
URIs: http://azure.archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Architectures: amd64

Types: deb
URIs: http://azure.ports.ubuntu.com/ubuntu-ports/
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Architectures: arm64
EOF

sudo dpkg --add-architecture arm64
sudo apt-get update -y
sudo apt-get install -y gcc-aarch64-linux-gnu \
libc6-arm64-cross qemu-user-binfmt libc6:arm64 \
binutils-aarch64-linux-gnu
# Skip translations to speed up apt-get update
echo 'Acquire::Languages "none";' | sudo tee /etc/apt/apt.conf.d/99no-translations > /dev/null
# Makefile expects ARCH-linux-gnu-gcc; install if not available
case "$(uname -m)" in
x86_64) command -v x86_64-linux-gnu-gcc >/dev/null || { sudo apt-get update && sudo apt-get install -y gcc-x86-64-linux-gnu; } ;;
aarch64) command -v aarch64-linux-gnu-gcc >/dev/null || { sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu; } ;;
esac
- name: Set up Go
uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version-file: go.mod
cache-dependency-path: go.sum
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/fossa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ jobs:
runs-on: ubuntu-latest
if: github.repository == 'open-telemetry/opentelemetry-ebpf-profiler'
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: 'false'
- uses: fossas/fossa-action@3ebcea1862c6ffbd5cf1b4d0bd6b3fe7bd6f2cac # v1.7.0

- uses: fossas/fossa-action@c414b9ad82eaad041e47a7cf62a4f02411f427a0 # v1.8.0
with:
api-key: ${{secrets.FOSSA_API_KEY}}
team: OpenTelemetry
4 changes: 2 additions & 2 deletions .github/workflows/ossf-scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
# Needed for GitHub OIDC token if publish_results is true
id-token: write
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

Expand All @@ -42,6 +42,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard (optional).
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
uses: github/codeql-action/upload-sarif@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
with:
sarif_file: results.sarif
16 changes: 15 additions & 1 deletion .github/workflows/protoc/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,23 @@ runs:
shell: bash
env:
PB_URL: "https://github.com/protocolbuffers/protobuf/releases/download/v24.4/"
PB_FILE: "protoc-24.4-linux-x86_64.zip"
INSTALL_DIR: "/usr/local"
run: |
# Detect architecture
ARCH=$(uname -m)
case "$ARCH" in
x86_64)
PB_FILE="protoc-24.4-linux-x86_64.zip"
;;
aarch64|arm64)
PB_FILE="protoc-24.4-linux-aarch_64.zip"
;;
*)
echo "Unsupported architecture: $ARCH"
exit 1
;;
esac

wget -nv "$PB_URL/$PB_FILE"
sudo unzip "$PB_FILE" -d "$INSTALL_DIR" 'bin/*' 'include/*'
sudo chmod +xr "$INSTALL_DIR/bin/protoc"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/push-docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ jobs:
if: github.repository == 'open-telemetry/opentelemetry-ebpf-profiler'
steps:
- name: Checkout code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: 'false'
- name: Login to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
Expand All @@ -33,7 +33,7 @@ jobs:
run: |
echo "tag=$(date +%Y%m%d%H%M)" >> $GITHUB_OUTPUT
- name: Build and push
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
uses: docker/build-push-action@601a80b39c9405e50806ae38af30926f9d957c47 # v6.19.1
with:
push: true
file: Dockerfile
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unit-test-ebpf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
shell: bash --login {0}
steps:
- name: Clone code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Hash binary blobs
Expand Down
Loading