Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
df548ce
processmanager: Don't synchronize a process that's waiting cleanup (#…
christos68k Mar 6, 2025
f944d46
Go: update to go.opentelemetry.io/otel@v1.35.0 (#383)
florianl Mar 6, 2025
3e82bca
tracehandler: drop metadataWarnInhib (#385)
florianl Mar 7, 2025
de1e85d
libpf: drop unused code (#386)
florianl Mar 7, 2025
bbe97e1
chore: remove unused controller.Config fields (#387)
korniltsev Mar 10, 2025
565a8fb
symblib: expose API for single point lookups (#380)
florianl Mar 11, 2025
9cab4f3
processmanager: Add DeletePidPageMappingInfoBatch fallback (#390)
christos68k Mar 12, 2025
5d4ef9e
Support the capturing of environment variables (#327)
RononDex Mar 13, 2025
5d90c09
ci: exclude some workflows from running on forks (#395)
athre0z Mar 13, 2025
05058d1
Remove Devfiler from README as it is not currently available (#396)
christos68k Mar 13, 2025
d721896
ci: also disable FOSSA on forks (#398)
athre0z Mar 13, 2025
0517450
processmanager/ebpf: return on success (#397)
florianl Mar 13, 2025
a6b9938
Remove linter 'exportloopref' (#402)
rockdaboot Mar 14, 2025
2b5066e
Update golang.org/x/net (#400)
rockdaboot Mar 14, 2025
422bd6b
process: Deduplicate paths in parseMappings() (#403)
rockdaboot Mar 17, 2025
c75029b
Enable NodeJS profiling on ARM64 (#393)
elsakeirouz Mar 18, 2025
192111e
Fix excessive memory allocation for sched_times (#320) (#389)
christos68k Mar 19, 2025
0708a7f
Don't exit if parsing of /proc/PID/maps fails (#401)
rockdaboot Mar 20, 2025
e94e234
Rust: add binary blobs (#415)
florianl Mar 26, 2025
67c4a12
CI: fix blob difference check (#421)
florianl Mar 27, 2025
12c0fab
reporter: simplify TraceReporter interface (#405)
florianl Mar 28, 2025
7b49589
Add ossf-scorecard scanning workflow (#423)
opentelemetrybot Apr 1, 2025
d510d9c
Fix accidentally swapped reporter and monitor interval (#425)
athre0z Apr 3, 2025
457347e
Add interpreter.Data.Unload hook (#426)
fabled Apr 3, 2025
a68ddad
Add pfelf support for go version detection (#424)
gnurizen Apr 3, 2025
09e6589
Merge March 2025 changes
gnurizen Apr 5, 2025
ee16e4e
Use new GoVersion detection
gnurizen Apr 5, 2025
8ded5db
Catch up with Go labels review
gnurizen Apr 6, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
jobs:
analyze:
name: Analyze Go (${{ matrix.target_arch }})
if: ${{ github.actor != 'dependabot[bot]' }}
if: ${{ github.actor != 'dependabot[bot]' && github.repository == 'open-telemetry/opentelemetry-ebpf-profiler' }}
runs-on: ubuntu-24.04
strategy:
matrix:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ runs:
sudo apt-get install -y curl unzip gcc-aarch64-linux-gnu \
libc6-arm64-cross qemu-user-binfmt libc6:arm64 \
musl-dev:amd64 musl-dev:arm64 musl-tools binutils-aarch64-linux-gnu
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache-dependency-path: go.sum
id: go
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/fossa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ permissions:
jobs:
fossa:
runs-on: ubuntu-latest
if: github.repository == 'open-telemetry/opentelemetry-ebpf-profiler'
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

Expand Down
47 changes: 47 additions & 0 deletions .github/workflows/ossf-scorecard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: OSSF Scorecard

on:
push:
branches:
- main
schedule:
- cron: "31 6 * * 4" # once a week
workflow_dispatch:

permissions: read-all

jobs:
analysis:
runs-on: ubuntu-latest
permissions:
# Needed for Code scanning upload
security-events: write
# Needed for GitHub OIDC token if publish_results is true
id-token: write
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false

- uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
with:
results_file: results.sarif
results_format: sarif
publish_results: true

# Upload the results as artifacts (optional). Commenting out will disable
# uploads of run results in SARIF format to the repository Actions tab.
# https://docs.github.com/en/actions/advanced-guides/storing-workflow-data-as-artifacts
- name: "Upload artifact"
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: SARIF file
path: results.sarif
retention-days: 5

# 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@5f8171a638ada777af81d42b55959a643bb29017 # v3.28.12
with:
sarif_file: results.sarif
1 change: 1 addition & 0 deletions .github/workflows/push-docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
jobs:
build-and-push:
runs-on: ubuntu-latest
if: github.repository == 'open-telemetry/opentelemetry-ebpf-profiler'
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down
68 changes: 20 additions & 48 deletions .github/workflows/unit-test-on-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,6 @@ jobs:
uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/workflows/env
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
check-latest: true
cache-dependency-path: go.sum
id: go
- name: Check for changes in licenses of dependencies
run: |
make legal
Expand All @@ -41,13 +34,6 @@ jobs:
uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/workflows/env
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
check-latest: true
cache-dependency-path: go.sum
id: go
- name: Get linter version
id: linter-version
run: (echo -n "version="; make linter-version) >> "$GITHUB_OUTPUT"
Expand Down Expand Up @@ -75,13 +61,6 @@ jobs:
uses: actions/checkout@v4
- name: Set up environment
uses: ./.github/workflows/env
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
check-latest: true
cache-dependency-path: go.sum
id: go
- name: Cache coredump modules
uses: actions/cache@v4
with:
Expand All @@ -95,45 +74,46 @@ jobs:
- name: Tests
run: make test TARGET_ARCH=${{ matrix.target_arch }}

check-ebpf-blobs:
name: Check for differences in the eBPF binary blobs
check-binary-blobs:
name: Check for differences in the eBPF and Rust binary blobs
runs-on: ubuntu-24.04
container: otel/opentelemetry-ebpf-profiler-dev:latest
defaults:
run:
shell: bash --login {0}
steps:
- name: Clone code
uses: actions/checkout@v4
- name: Hash eBPF blobs
- name: Hash binary blobs
run: |
sha256sum support/ebpf/tracer.ebpf.release.* > ebpf-blobs.hash
sha256sum support/ebpf/tracer.ebpf.release.* > binary-blobs.hash
sha256sum target/x86_64-unknown-linux-musl/release/libsymblib_capi.a >> binary-blobs.hash
sha256sum target/aarch64-unknown-linux-musl/release/libsymblib_capi.a >> binary-blobs.hash
- name: Rebuild eBPF blobs
run: |
rm support/ebpf/tracer.ebpf.release.*
make amd64 -C support/ebpf
make arm64 -C support/ebpf
- name: Rebuild Rust blobs
run: |
rm -rf target/
make rust-components TARGET_ARCH=amd64
make rust-components TARGET_ARCH=arm64
- name: Check for differences
run: |
if ! sha256sum --check ebpf-blobs.hash; then
echo "Please rebuild and commit the updated eBPF binary blobs."
if ! sha256sum --check binary-blobs.hash; then
echo "Please rebuild and commit the updated binary blobs."
exit 1
fi


build-integration-test-binaries:
name: Build integration test binaries (${{ matrix.target_arch }}-${{ matrix.go_version}})
name: Build integration test binaries (${{ matrix.target_arch }})
runs-on: ubuntu-24.04
timeout-minutes: 10
strategy:
matrix:
target_arch: [amd64, arm64]
go_version: [1.23, 1.24]
steps:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go_version }}
check-latest: true
cache-dependency-path: go.sum
id: go
- name: Clone code
uses: actions/checkout@v4
- name: Set up environment
Expand All @@ -143,17 +123,16 @@ jobs:
- name: Upload integration test binaries
uses: actions/upload-artifact@v4
with:
name: integration-test-binaries-${{ matrix.target_arch }}-${{ matrix.go_version}}
name: integration-test-binaries-${{ matrix.target_arch }}
path: support/*.test

integration-tests:
name: Integration tests (v${{ matrix.kernel }} ${{ matrix.target_arch }} ${{ matrix.go_version}})
name: Integration tests (v${{ matrix.kernel }} ${{ matrix.target_arch }})
runs-on: ubuntu-24.04
needs: build-integration-test-binaries
timeout-minutes: 10
strategy:
matrix:
go_version: [1.23, 1.24]
include:
# List of available kernels here:
# https://github.com/cilium/ci-kernels/pkgs/container/ci-kernels/versions?filters%5Bversion_type%5D=tagged
Expand All @@ -177,13 +156,6 @@ jobs:
steps:
- name: Clone code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go_version }}
check-latest: true
cache-dependency-path: go.sum
id: go
- name: Install dependencies
run: |
sudo apt-get update -y
Expand All @@ -196,7 +168,7 @@ jobs:
sudo mv ~/go/bin/bluebox /usr/local/bin/.
- name: Fetch integration test binaries
uses: actions/download-artifact@v4
with: { name: "integration-test-binaries-${{ matrix.target_arch }}-${{ matrix.go_version}}" }
with: { name: "integration-test-binaries-${{ matrix.target_arch }}" }
- name: Fetch precompiled kernel
run: |
install -d ci-kernels
Expand Down
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,8 @@
/go
ebpf-profiler
ci-kernels
/target
# Ignore target directory
target/*
# But not these specific paths
!target/x86_64-unknown-linux-musl/release/libsymblib_capi.a
!target/aarch64-unknown-linux-musl/release/libsymblib_capi.a
2 changes: 0 additions & 2 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,6 @@ linters:
- wastedassign
- wsl
- wrapcheck
# the following linters are deprecated
- exportloopref
# we don't want to change code to Go 1.22+ yet
- intrange
- copyloopvar
Expand Down
5 changes: 4 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@ FROM debian:testing-20241223-slim

WORKDIR /agent

RUN dpkg --add-architecture amd64 && dpkg --add-architecture arm64

# cross_debian_arch: amd64 or arm64
# cross_pkg_arch: x86-64 or aarch64
RUN cross_debian_arch=$(uname -m | sed -e 's/aarch64/amd64/' -e 's/x86_64/arm64/'); \
cross_pkg_arch=$(uname -m | sed -e 's/aarch64/x86-64/' -e 's/x86_64/aarch64/'); \
apt-get update -y && \
apt-get dist-upgrade -y && \
apt-get install -y curl wget make git cmake clang-17 unzip libc6-dev g++ gcc pkgconf \
gcc-${cross_pkg_arch}-linux-gnu libc6-${cross_debian_arch}-cross musl-dev && \
gcc-${cross_pkg_arch}-linux-gnu libc6-${cross_debian_arch}-cross \
musl-dev:amd64 musl-dev:arm64 && \
apt-get clean autoclean && \
apt-get autoremove --yes

Expand Down
Loading