Parca-agent - eBPF based always-on profiler auto-discovering targets in Kubernetes and systemd, zero code changes or restarts needed!

Overview

Build Apache 2 License

Parca Agent

Parca Agent is an always-on sampling profiler that uses eBPF to capture raw profiling data with very low overhead. It observes user-space and kernel-space stacktraces 100 times per second and builds pprof formatted profiles from the extracted data. Read more details in the design documentation.

The collected data can be viewed locally via HTTP endpoints and then be configured to be sent to a Parca server to be queried and analyzed over time.

It discovers targets through:

  • Kubernetes: Discovering all the containers on the node the Parca agent is running on. (On by default, but can be disabled using --kubernetes=false)
  • systemd: A list of systemd units to be profiled on a node can be configured for the Parca agent to pick up. (Use the --systemd-units flag to list the units to profile, eg. --systemd-units=docker.service to profile the docker daemon)

Requirements

  • Linux Kernel version 4.18+
  • A source of targets to discover from: Kubernetes or systemd.

Quickstart

See the Kubernetes Getting Started.

Supported Profiles

Profiles available for compiled languages (eg. C, C++, Go, Rust):

  • CPU
  • Soon: Network usage, Allocations

The following types of profiles require explicit instrumentation:

  • Runtime specific information such as Goroutines

Debugging

Web UI

The HTTP endpoints can be used to inspect the active profilers, by visiting port 7071 of the process (the host-port that the agent binds to can be configured using the --http-address flag).

On a minikube cluster that might look like the following:

Active Profilers

And by clicking "Show Profile" in one of the rows, the currently collected profile will be rendered once the collection finishes (this can take up to 10 seconds).

Profile View

A raw profile can also be downloaded here by clicking "Download Pprof". Note that in the case of native stack traces such as produced from compiled language like C, C++, Go, Rust, etc. are not symbolized and if this pprof profile is analyzed using the standard pprof tooling the symbols will need to be available to the tooling.

Logging

To debug potential errors, enable debug logging using --log-level=debug.

Configuration

Flags:

Usage: parca-agent --node=STRING

Flags:
  -h, --help                      Show context-sensitive help.
      --log-level="info"          Log level.
      --http-address=":7071"      Address to bind HTTP server to.
      --node=STRING               Name node the process is running on. If on
                                  Kubernetes, this must match the Kubernetes
                                  node name.
      --external-label=KEY=VALUE;...
                                  Label(s) to attach to all profiles.
      --store-address=STRING      gRPC address to send profiles and symbols to.
      --bearer-token=STRING       Bearer token to authenticate with store.
      --bearer-token-file=STRING
                                  File to read bearer token from to authenticate
                                  with store.
      --insecure                  Send gRPC requests via plaintext instead of
                                  TLS.
      --insecure-skip-verify      Skip TLS certificate verification.
      --sampling-ratio=1.0        Sampling ratio to control how many of the
                                  discovered targets to profile. Defaults to
                                  1.0, which is all.
      --kubernetes                Discover containers running on this node to
                                  profile automatically.
      --pod-label-selector=STRING
                                  Label selector to control which Kubernetes
                                  Pods to select.
      --systemd-units=SYSTEMD-UNITS,...
                                  systemd units to profile on this node.
      --temp-dir="/tmp"           Temporary directory path to use for object
                                  files.
      --socket-path=STRING        The filesystem path to the container runtimes
                                  socket. Leave this empty to use the defaults.
      --profiling-duration=10s    The agent profiling duration to use. Leave
                                  this empty to use the defaults.
      --systemd-cgroup-path="/sys/fs/cgroup/systemd/system.slice"
                                  The cgroupfs path to a systemd slice.

systemd

To discover systemd units, the names must be passed to the agent. For example, to profile the docker daemon pass --systemd-units=docker.service.

Sampling

Sampling Ratio

To sample all targets, either to save resources on storage or reduce overhead, use the --sampling-ratio flag. For example, to profile only 50% of the discovered targets use --sampling-ratio=0.5.

Kubernetes label selector

To further sample targets on Kubernetes use the --pod-label-selector= flag. For example to only profile Pods with the app.kubernetes.io/name=my-web-app label, use --pod-label-selector=app.kubernetes.io/name=my-web-app.

Roadmap

  • Additional language support for just-in-time (JIT) compilers, and dynamic languages (non-exhaustive list):
    • Ruby
    • Node.js
    • Python
    • JVM
  • Additional types of profiles:
    • Memory allocations
    • Network usage

Security

Parca Agent requires to be run as root user (or CAP_SYS_ADMIN). Various security precautions have been taken to protect users running Parca Agent. See details in Security Considerations.

To report a security vulnerability see this guide.

Contributing

Check out our Contributing Guide to get started!

License

Apache 2

Credits

Thanks to:

  • Aqua Security for creating libbpfgo (cgo bindings for libbpf), while we contributed several features to it, they have made it spectacularly easy for us to contribute and it has been a great collaboration. Their use of libbpf in tracee has also been a helpful resource.
  • Kinvolk for creating Inspektor Gadget some parts of this project were inspired by parts of it.
Issues
  • Multiple systemd units with the same name

    Multiple systemd units with the same name

    I have just started playing with parca and this is the first thing that came up. ;)

    Use case - multiple containers with systemd inside: Cgroup v2 structure:

    /sys/fs/cgroup/machine.slice/machine-libpod_pod_<some_hash>.slice/libpod-<some_hash>.scope/container/system.slice
    /sys/fs/cgroup/machine.slice/machine-libpod_pod_<other_hash>.slice/libpod-<other_hash>.scope/container/system.slice
    /sys/fs/cgroup/machine.slice/machine-libpod_pod_<antother_hash>.slice/libpod-<another_hash>.scope/container/system.slice
    

    Each of the containers runs systemd unit with the same name. Obviously, from the container perspective those are separate systemd instances, but from the host perspective when using single parca-agent there is a problem, I can't just use --systemd-units=my-app.service - parca-agent will try to find that service under /sys/fs/cgroup/system.slice (BTW default for now is /sys/fs/cgroup/systemd/system.slice which is wrong for cgroup v2. Shouldn't this be autodetected?)

    Can this be supported, or should I run multiple agents for each container with --systemd-cgroup-path= pointing at each system.slice inside machine.slice?

    Env: RHEL 8 and podman.

    question 
    opened by mskarbek 14
  • [WIP] ci: cross-compile container images

    [WIP] ci: cross-compile container images

    It builds, but someone would need to test that it all works on ARM64

    make-containers.sh has been removed as --platform can take a comma-separated list, thus podman build command can simply live in the Makefile

    Closes #460

    opened by maxbrunet 13
  • bpf: Make sure there is no concurrent access issue with CPU profiler

    bpf: Make sure there is no concurrent access issue with CPU profiler

    By migrating to Rust, we might introduce a regression for atomic counters. The easier way to fix the issue is to use pre-CPU BPF maps.

    xref: https://github.com/aquasecurity/libbpfgo/pull/156/files

    bug area/eBPF 
    opened by kakkoyun 12
  • Agent fails to read Rust symbols

    Agent fails to read Rust symbols

    I was looking into using Parca to profile a Rust binary but it fails to read the symbols from the binary. I have verified that the binary does include the symbols.

    The error I receive in the agent is:

    level=warn ts=2022-06-18T00:55:37.856812691Z caller=maps.go:106 msg="failed to read object build ID" object=/proc/21830/root/app/src/rust/graphql/src/api/bin.runfiles/monorepo/src/rust/graphql/src/api/bin err="get elf build id: note name too long (5590599 bytes)"
    

    Compilation OS: Fedora 35 Agent deployed on k8s cluster running Debian hosts Rust version: 1.61.0

    bug 
    opened by purkhusid 12
  • Problems with PID detection on k3s

    Problems with PID detection on k3s

    I got multiple warnings like the one below when running parca-agent in k3s on ubuntu 20.04 server.

    level=warn ts=2021-10-10T12:03:44.054726335Z caller=k8s.go:200 msg="skipping pod, cannot find pid" namespace=monitoring pod=prometheus-k8s-1 err="rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial unix /run/containerd/containerd.sock: connect: no such file or directory\""
    

    containerd.sock on k3s is available in /run/k3s/containerd/containerd.sock so it might be good to add it to auto discovery.

    An alternative approach could be to add a parameter to jsonnet library allowing passing socket configuration to the agent instead of patching arguments.

    enhancement good first issue help wanted hacktoberfest 
    opened by paulfantom 12
  • build: Cross-build binaries outside container

    build: Cross-build binaries outside container

    An attempt to cross-compile CGO using Goreleaser and https://github.com/goreleaser/goreleaser-cross

    Plan

    1. Build eBPF object file outside goreleaser container (so that we don't need to Rust toolchain)
    2. Build CGO binaries using https://github.com/goreleaser/goreleaser-cross
    3. Move binaries to the end container

    Open questions

    1. ~~How to build a proper sysroot to support linux/amd64 and linux/arm64~~ goreleaser-cross
    2. ~~Any downside of using GCC instead of clang for libbpf~~ clang is available
    • Related: https://github.com/goreleaser/goreleaser-cross/issues/4

    TO DO

    • [x] Make sure the artefact is statically linked
    • [x] Make sure QEMU is not used anywhere
    • [x] Cross-compilation problems:
      # runtime/cgo
      /usr/bin/ld: unrecognised emulation mode: aarch64linux
      Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      
    • [x] Make sure artifacts uploaded created and uploaded for PR check runs
    • [x] Figure out container action mounts

    ref: https://github.com/goreleaser/goreleaser-cross-example

    Alternative: To use goreleaser build --single-target and https://github.com/parca-dev/parca-agent/pull/486 to gether to release binaries and containers.

    Fixes #460 Fixes #496 Fixes #518 Fixes #519 Fixes #459

    opened by kakkoyun 10
  • Bump google.golang.org/grpc from 1.38.0 to 1.41.0

    Bump google.golang.org/grpc from 1.38.0 to 1.41.0

    Bumps google.golang.org/grpc from 1.38.0 to 1.41.0.

    Release notes

    Sourced from google.golang.org/grpc's releases.

    Release 1.41.0

    API Changes

    • xds: Promote xds server and creds APIs to stable (#4753)
    • balancer: add ExitIdle interface to instruct the balancer to attempt to leave the IDLE state by connecting SubConns if appropriate. (#4673)
      • NOTICE: This method will be required by the Balancer interface in the future

    Behavior Changes

    • xds: update xdsclient to keep valid resources from the response even if it has invalid responses and is NACK'ed (see gRFC 260) (#4743)
    • balancer: SubConns no longer automatically reconnect after READY; instead they transition to IDLE on connection loss (#4613)

    New Features

    • xds: add support for RINGHASH lb-policy and affinity (#4741)
    • xds: add support for retry policy in VirtualHosts and Routes (#4738)
    • stats: support stats for all retry attempts; support transparent retry (#4749)
    • authz: create interceptors for gRPC security policy API (#4664)

    Bug Fixes

    • transport: fix race in transport stream accessing s.recvCompress (#4641)
    • client: fix transparent retries when per-RPC credentials are in use (#4785)
    • server: fix bug that net.Conn is leaked if the connection is closed (io.EOF) immediately with no traffic (#4633)
    • oauth: Allow access to Google API regional endpoints via Google Default Credentials (#4713)

    Release 1.40.0

    Behavior Changes

    • balancer: client channel no longer connects to idle subchannels that are returned by the pickers; LB policy should call SubConn.Connect instead. (#4579)
      • This change is in line with existing documentation stating the balancer must call Connect on idle SubConns in order for them to connect, and is preparation for an upcoming change that transitions SubConns to the idle state when connections are lost. See https://pkg.go.dev/google.golang.org/grpc/balancer#SubConn for more details.

    Bug Fixes

    • transport: fail RPCs without HTTP status 200 (OK), according to the gRPC spec (#4474)
    • binarylog: fail the Write() method if proto marshaling fails (#4582)
    • binarylog: exit the flusher goroutine upon closing the bufferedSink (#4583)

    New Features

    • metadata: add Delete method to MD to encapsulate lowercasing (#4549)
    • xds/cds: support logical DNS cluster and aggregated cluster (#4594)
    • stats: add stats.Begin.IsClientStream and IsServerStream to indicate the type of RPC invoked (#4533)

    Performance Improvements

    • server: improve performance when multiple interceptors are used (#4524)

    Release 1.39.1

    • server: fix bug that net.Conn is leaked if the connection is closed (io.EOF) immediately with no traffic (#4642)
    • transport: fix race in transport stream accessing s.recvCompress (#4627)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 10
  • Fix the build for arm64 in CI and local environment

    Fix the build for arm64 in CI and local environment

    • [x] Check that libelf-dev works in GH actions
    • [x] aya-gen works with pinned nightly
    • [x] Check that the BPF linker and aya gets installed properly for arm64

    Signed-off-by: Vaishali Thakkar [email protected]

    opened by v-thakkar 8
  • Update Github actions for jsonnet and Go (#331)

    Update Github actions for jsonnet and Go (#331)

    Did not understand this point in the original issue:

    no container build action runs on documentation (or the files won't end up in the container)

    Is this saying that currently, the docs.yml action is not triggered for any file changes, including documentation, so we should add the paths, or something else?

    Regarding the new actions in the PR, I based them off of the existing actions in the Parca repo. Removed any Node.js jobs, and changed the path in the workflow from parca to parca-agent based on the Dockerfile. Please let me know if other changes are required.

    opened by importhuman 7
  • chore: Reduce the time spent in CI checks

    chore: Reduce the time spent in CI checks

    Similar to https://github.com/parca-dev/parca/issues/1152, we could reduce the time we spent in CI.

    We should cross-build the binaries and copy them to the containers. We have already reduced the external dependencies to zero and statically linked the binaries.

    The only challenge I foresee is to be able to cross-compile libbpf with CGO.

    Keep in mind that we can't break the reproducible build guarantee.

    xref: https://github.com/parca-dev/parca/pull/1153

    tech-debt area/build-pipeline 
    opened by kakkoyun 7
  • stack quality: investigate user stack unwinding issues

    stack quality: investigate user stack unwinding issues

    (Opening in parca-agent but this issue might be on parca)

    I noticed that some Kernel stacks aren't correct with the current master of both parca and parca-agent. The test program and correct result that we used to get can be found in this PR (https://github.com/parca-dev/parca-agent/pull/395).

    Note the Kernel stack for the open() codepath which is not in the right merged stacktrace:

    image

    I am currently bisecting both projects, will report back once I have more information

    feature/profiler P0 area/stack-unwinding 
    opened by javierhonduco 7
  • chore(deps): update module go to 1.19

    chore(deps): update module go to 1.19

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | go (source) | golang | minor | 1.18 -> 1.19 |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled due to failing status checks.

    Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Add process `comm` as label

    Add process `comm` as label

    Now that we're doing whole system profiling with Parca Agent I think it would be useful to attach the processes comm as a label. By that I mean the content of /proc/<PID>/comm. I think for any environment that does not have established metadata (like Kubernetes) using the binary name of a process is a pretty good fallback.

    enhancement feature/profiler 
    opened by brancz 0
  • chore: Add metric dashboards for the Agent

    chore: Add metric dashboards for the Agent

    Maybe it's time to start a Parca Agent dashboard? 😎

    Originally posted by @brancz in https://github.com/parca-dev/parca-agent/issues/643#issuecomment-1201539262

    opened by kakkoyun 0
  • write client: First profile takes a very long time to show up in the UI

    write client: First profile takes a very long time to show up in the UI

    (This might be a Parca issue, but cutting the issue here to investigate a bit more)

    We have a 10s interval to send profiles to Parca, but in some instances, it takes minutes until the profiles appear in Parca UI's

    opened by javierhonduco 0
Releases(v0.9.1)
  • v0.9.1(Jul 29, 2022)

    Changelog

    • 016c690bb414e382e96e6f8e401f529ad550891b: Added a missing host path to the agent psp (@manojVivek)
    • 3a4176e5471e8ebbd34f0bee069136f566182c8d: Run actions against release branches (@kakkoyun)
    • d8f547a5be02042d09d6c44a95d042107464c2f5: deploy: Remove kubernetes arch label restriction (#607) (@brancz)
    • 0e638c9b5cd920e96a0b89543ba8fdd342b43b7e: deploy: Tolerate any taint (#632) (@brancz)

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.9.1

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(207 bytes)
    kubernetes-manifest.yaml(5.13 KB)
    manifests.tar.gz(2.01 KB)
    openshift-manifest.yaml(4.87 KB)
    parca-agent_0.9.1_Linux_arm64.tar.gz(31.33 MB)
    parca-agent_0.9.1_Linux_x86_64.tar.gz(33.75 MB)
  • v0.9.0(Jul 19, 2022)

    Changelog

    • 7d9ddec8c62f9ed802591e645eb71b8da6e11945: Fix pipeline caching issues (#603) (@kakkoyun)
    • ebd9e307dcee0e914e73c532cd658c14046e4a15: Rewrite eBPF profiler in Rust (#377) (@kakkoyun)
    • e6d57a2a5db2240b7db8c9623de219cc790f9824: bpf: Add atomic increments back (#552) (@javierhonduco)
    • 7415166557522539b7817c22e4e6066ba70381bc: chore: Add minikube install script (#515) (@kakkoyun)
    • 8a52655d85283d4e9e73772725d6080b94419c7b: chore: Build binaries outside multi-stage containers (@kakkoyun)
    • 8a7973b25486d7b349f0b2125508023b80e04956: chore: Fix arm64 build (#431) (@v-thakkar)
    • cc749c8f0cbd2b6f5671c7656b77e1d54f1e7c0a: Fix build id extraction (#534) (@kakkoyun)
    • 8238b7b2da616a1720a029754a873d1736b75774: Fix multi-arch builds (#415) (@kakkoyun)
    • 12840404b2b5734ae1d4778d071982e7ae10d55d: bpf: License under GPLv2 (#414) (@vadorovsky)
    • d86d507b852799b7912bccdf2a4305e50a24dd3d: build: Add race detector flag (#497) (@javierhonduco)
    • 03849fd6eff28490049c8b63bf71fb74eea9847d: chore: Local dev build outside (#575) (@kakkoyun)
    • 0477f68caed8217dee7d5e3609afb14042470a64: chore: add shell.nix file for development (#448) (@maxbrunet)
    • 8328a0a4aad527ed4ee6a775543659d6016be1f4: chore: make development environment more portable (#433) (@maxbrunet)
    • 6b67638efb2cc3ef7368b7726a354b3f8a6e6280: debuginfo/extractor: Make sure .text section is not uploaded (#531) (@kakkoyun)
    • 01ef8e4b83f48c93820896b118ddb538fcc7d790: debuginfo: Add pure-Go ELF Writer to extract debug information (#454) (@kakkoyun)
    • f1167d8ae2e80415d57da346b23ba4d51f128b19: debuginfo: Fix race when extracting debug info files (#444) (@javierhonduco)
    • 77f18614c47afb47a384e8f933d23af01db70034: docker: Fix arm64 build (@vadorovsky)
    • 5f8f1525173e34125a101c374191e1bd0c031b16: fix: set profile duration to real measurement (#429) (@maxbrunet)

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.9.0

    New Contributors

    • @cpanato made their first contribution in https://github.com/parca-dev/parca-agent/pull/413
    • @vadorovsky made their first contribution in https://github.com/parca-dev/parca-agent/pull/414
    • @maxbrunet made their first contribution in https://github.com/parca-dev/parca-agent/pull/433
    • @importhuman made their first contribution in https://github.com/parca-dev/parca-agent/pull/476

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.8.0...v0.9.0

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(207 bytes)
    kubernetes-manifest.yaml(5.22 KB)
    manifests.tar.gz(2.07 KB)
    openshift-manifest.yaml(4.98 KB)
    parca-agent_0.9.0_Linux_arm64.tar.gz(31.33 MB)
    parca-agent_0.9.0_Linux_x86_64.tar.gz(33.75 MB)
  • v0.9.0-rc.1(Jul 18, 2022)

  • v0.9.0-rc.0(Jul 14, 2022)

    Highlights

    • ebd9e307dcee0e914e73c532cd658c14046e4a15: Rewrite eBPF profiler in Rust (#377) (@kakkoyun)
    • e6d57a2a5db2240b7db8c9623de219cc790f9824: bpf: Add atomic increments back (#552) (@javierhonduco)
    • 7415166557522539b7817c22e4e6066ba70381bc: chore: Add minikube install script (#515) (@kakkoyun)
    • 8a52655d85283d4e9e73772725d6080b94419c7b: chore: Build binaries outside multi-stage containers (@kakkoyun)
    • 8a7973b25486d7b349f0b2125508023b80e04956: chore: Fix arm64 build (#431) (@v-thakkar)
    • cc749c8f0cbd2b6f5671c7656b77e1d54f1e7c0a: Fix build id extraction (#534) (@kakkoyun)
    • 8238b7b2da616a1720a029754a873d1736b75774: Fix multi-arch builds (#415) (@kakkoyun)
    • 12840404b2b5734ae1d4778d071982e7ae10d55d: bpf: License under GPLv2 (#414) (@vadorovsky)
    • d86d507b852799b7912bccdf2a4305e50a24dd3d: build: Add race detector flag (#497) (@javierhonduco)
    • 03849fd6eff28490049c8b63bf71fb74eea9847d: chore: Local dev build outside (#575) (@kakkoyun)
    • 0477f68caed8217dee7d5e3609afb14042470a64: chore: add shell.nix file for development (#448) (@maxbrunet)
    • 8328a0a4aad527ed4ee6a775543659d6016be1f4: chore: make development environment more portable (#433) (@maxbrunet)
    • 6b67638efb2cc3ef7368b7726a354b3f8a6e6280: debuginfo/extractor: Make sure .text section is not uploaded (#531) (@kakkoyun)
    • 01ef8e4b83f48c93820896b118ddb538fcc7d790: debuginfo: Add pure-Go ELF Writer to extract debug information (#454) (@kakkoyun)
    • f1167d8ae2e80415d57da346b23ba4d51f128b19: debuginfo: Fix race when extracting debug info files (#444) (@javierhonduco)
    • 77f18614c47afb47a384e8f933d23af01db70034: docker: Fix arm64 build (@vadorovsky)
    • 5f8f1525173e34125a101c374191e1bd0c031b16: fix: set profile duration to real measurement (#429) (@maxbrunet)

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.9.0-rc.0

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    New Contributors

    • @cpanato made their first contribution in https://github.com/parca-dev/parca-agent/pull/413
    • @vadorovsky made their first contribution in https://github.com/parca-dev/parca-agent/pull/414
    • @maxbrunet made their first contribution in https://github.com/parca-dev/parca-agent/pull/433
    • @importhuman made their first contribution in https://github.com/parca-dev/parca-agent/pull/476

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.8.0...v0.9.0-rc.0

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(217 bytes)
    kubernetes-manifest.yaml(5.26 KB)
    manifests.tar.gz(2.04 KB)
    openshift-manifest.yaml(5.02 KB)
    parca-agent_0.9.0-rc.0_Linux_arm64.tar.gz(31.33 MB)
    parca-agent_0.9.0-rc.0_Linux_x86_64.tar.gz(33.75 MB)
  • v0.8.2-rc.0(Jun 9, 2022)

  • v0.8.1(May 31, 2022)

    Changelog

    • Add dynamic libraries for external commands by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/427

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.8.1

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.8.0...v0.8.1

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(104 bytes)
    kubernetes-manifest.yaml(5.25 KB)
    manifests.tar.gz(2.05 KB)
    openshift-manifest.yaml(5.00 KB)
    parca-agent_0.8.1_Linux_x86_64.tar.gz(34.07 MB)
  • v0.4.1(Jan 13, 2022)

    Highlights

    • *: Update Go version in go.mod by @derekparker in https://github.com/parca-dev/parca-agent/pull/201
    • Remove default systemd cgroup path by @derekparker in https://github.com/parca-dev/parca-agent/pull/206

    Changelog

    • 8dbc2aa1470f19b38ee24ea7d6771b8ba9dee885: *: Update Go version in go.mod (#201) (@derekparker)
    • 26cc78c2dde92e6de03e05d1a5f411de8f1bd407: Merge pull request #202 from parca-dev/dependabot/docker/golang-1.17.6-bullseye (@kakkoyun)
    • 550ea0d6bc2148bdad2a9efe9a1e05c3b8fcb8ae: Merge pull request #204 from parca-dev/dependabot/go_modules/github.com/aquasecurity/libbpfgo-0.2.3-libbpf-0.6.1 (@kakkoyun)
    • 6387a51b536fe502a84540f8c87f147f2f634b39: Remove default systemd cgroup path (#206) (@derekparker)
    • 67192781943a7c9e2b928b7265746c65000c5e97: build(deps): bump github.com/aquasecurity/libbpfgo (@dependabot[bot])
    • 502440e0ff77d9275acfa433108674184beacd84: build(deps): bump golang from 1.17.5-bullseye to 1.17.6-bullseye (@dependabot[bot])

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.4.0...v0.4.1

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.4.1

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(104 bytes)
    kubernetes-manifest.yaml(5.25 KB)
    manifests.tar.gz(2.05 KB)
    openshift-manifest.yaml(5.00 KB)
    parca-agent_0.4.1_Linux_x86_64.tar.gz(29.95 MB)
  • v0.4.0(Jan 7, 2022)

    Highlights

    • pkg/perf: Allow memory address strings to have the 0x prefix by @brancz in https://github.com/parca-dev/parca-agent/pull/140
    • Refactor service discovery mechanism in parca-agent by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/177
    • pkg/discovery: Support cgroupv2 by @derekparker in https://github.com/parca-dev/parca-agent/pull/178
    • pkg/discovery: Use promauto constructors for metric types by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/182
    • debug-info: Make sure it is safe to remove the section by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/189
    • *: Upgrade external tool dependencies by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/195
    • pkg/discovery: take user provided systemd cgroup path into account by @derekparker in https://github.com/parca-dev/parca-agent/pull/199
    • debug-info: Use child process reaper for more reliable external command execution by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/198

    New Contributors

    • @derekparker made their first contribution in https://github.com/parca-dev/parca-agent/pull/165

    Changelog

    • b901e9e40c574a18698b24434451438bf454f016: *: Add bpf as a dependency for test target (@derekparker)
    • d6d646a65ea154ac51b7d03cfb7c316ef1397c16: *: Add explicit shell to Makefile (@derekparker)
    • 8f07455d993e18a270ed5e61bbe2b4f0ee20501f: Add missing make actions (@kakkoyun)
    • d774b2891ceabfc1bb69b2d1c4304be01f0d1689: Add unintentionally removed debuginfo client back (@kakkoyun)
    • 21f5d84082036ac426899eb02eb09772d25a723f: Apply suggestions (@kakkoyun)
    • 14f7105b8a2aa9b965104db170e6e9dca264a3b7: Init tilt for local dev setup (@kakkoyun)
    • 4508c9247e58b3bddb82bec74fe1a385cfed6caf: Make sure it is safe to remove the section (@kakkoyun)
    • 2804816ada3520024e4215704ae3b3e2ee1b9cca: Makefile: Remove unused test-integration target (@derekparker)
    • 8338e7725d3cda39f1f5ae2c79be2d6370fd1c97: Merge pull request #134 from parca-dev/dependabot/go_modules/k8s.io/cri-api-0.22.4 (@kakkoyun)
    • e1a6c5b5620b0bb8aae4e61cbf440921cc61de79: Merge pull request #137 from parca-dev/dependabot/go_modules/github.com/docker/docker-20.10.11incompatible (@kakkoyun)
    • 7fe155165b618019f5fe36849892ad57381e21d2: Merge pull request #138 from parca-dev/dependabot/go_modules/k8s.io/client-go-0.22.4 (@kakkoyun)
    • 9d3c836d8b04ada76625daa173985a8511253253: Merge pull request #140 from parca-dev/fix-erlang-perf-map (@brancz)
    • 474ed1ca3d226e64e23fda00c01c8004a201da4f: Merge pull request #149 from parca-dev/tilt (@kakkoyun)
    • 4ebdfd90cab6cc0674cbb5719f851065c7c27612: Merge pull request #151 from parca-dev/dependabot/go_modules/github.com/aquasecurity/libbpfgo-0.2.2-libbpf-0.5.0 (@kakkoyun)
    • e71631a5fb7e281e2f29686da905b226e67fd8e1: Merge pull request #156 from parca-dev/dependabot/go_modules/github.com/alecthomas/kong-0.2.20 (@kakkoyun)
    • 051be1c6e9ef74335dddf7ae0d07cc668836c6a2: Merge pull request #160 from parca-dev/dependabot/go_modules/k8s.io/cri-api-0.23.0 (@kakkoyun)
    • 1542eab2f6e6b0a8e4d9299a564fd1261822458b: Merge pull request #164 from parca-dev/dependabot/go_modules/github.com/alecthomas/kong-0.2.22 (@metalmatze)
    • a8c8e47d8426a58a8f6a73c1ca5aa49670e830a8: Merge pull request #165 from derekparker/add-shell-to-makefile (@brancz)
    • 357f649a48056ae952ed70e0f167d2b32df28c78: Merge pull request #166 from derekparker/add-bpf-target-to-test (@brancz)
    • acc7722b35d1d060259824c8baaeb8655b6886c6: Merge pull request #167 from derekparker/remove-unused-test-integration-target (@brancz)
    • edc6f8c9bd4d1ea6fac19429b0f14b66b068a81b: Merge pull request #168 from parca-dev/dependabot/go_modules/github.com/docker/docker-20.10.12incompatible (@kakkoyun)
    • 171383fbcc8fb2169ff3e074e496dd2b518ca11d: Merge pull request #177 from parca-dev/refactor-servdisc (@brancz)
    • afa2d0c6c4b36c84d0ff1516b9b192e4eace35bd: Merge pull request #178 from derekparker/cgroup-v2 (@brancz)
    • 16bf9a819a04f84b11c2aa53c89dd6b5c1c8ccdc: Merge pull request #182 from parca-dev/add-promauto (@brancz)
    • 968c581965300fda8934750ee0f44cd0b3065885: Merge pull request #186 from parca-dev/dependabot/submodules/3rdparty/libbpf-bf7aace (@kakkoyun)
    • a0d8ae919a95d45cccd8d18fbb0c9bdc18bf6bb4: Merge pull request #187 from parca-dev/dependabot/go_modules/github.com/prometheus/common-0.32.1 (@kakkoyun)
    • cf792b1b614fbc640f0357f2d1badada888a98c3: Merge pull request #188 from parca-dev/fix_debuginfo_client (@kakkoyun)
    • d20ec7aaa1a2c96879dd7e9610e9382fabfae506: Merge pull request #189 from parca-dev/rm_sec_checks (@kakkoyun)
    • 6c3a1e8a4d4fca811597b832285eee573724c237: Merge pull request #193 from parca-dev/dependabot/submodules/3rdparty/libbpf-7c382f0 (@kakkoyun)
    • e034a3a6120d132f5ed7c6ec09e34b8169000f51: Merge pull request #195 from parca-dev/upgrade_os_deps (@kakkoyun)
    • 60e215c962de19bf8cb367d2986f62907f878a56: Merge pull request #199 from derekparker/wireup-systemd-cgroup-path (@brancz)
    • 2629221a12dba5ecebcc15a42574dff658006b1c: Minor changes (@kakkoyun)
    • f8c1b5ce3668f0cc5a667d42e8e58b15d70d4e8c: Refactor service discovery mechanism in parca-agent (@Sylfrena)
    • 0a02e19c2db44b562015b4f11f234a6e24c611eb: Upgrade external tool dependencies (@kakkoyun)
    • 0f8ef08e9e8c42f112f981d642613ac4c2d148d6: [V2] Refactor service discovery mechanism in parca-agent (@Sylfrena)
    • a6782351819a124968c9321eeeb49237325b83b4: add license header (@derekparker)
    • 3218a65cc71b4114208fb208e40f851f50dc66bb: build(deps): bump 3rdparty/libbpf from 140b902 to bf7aace (@dependabot[bot])
    • b0b98d49a17d27820d8e012725a7d54e7231d4d7: build(deps): bump 3rdparty/libbpf from bf7aace to 7c382f0 (@dependabot[bot])
    • 837b2c6dd8a308507791b6eeae2949f28c621b9a: build(deps): bump github.com/alecthomas/kong from 0.2.18 to 0.2.20 (@dependabot[bot])
    • 1f8f289fbc7ad079a242aee95697e414c81baed0: build(deps): bump github.com/alecthomas/kong from 0.2.20 to 0.2.22 (@dependabot[bot])
    • d884d5fad6f2ec6f57dc291a8037a0c34929a33d: build(deps): bump github.com/aquasecurity/libbpfgo (@dependabot[bot])
    • 8fa05e54a49dcd5c540a61bbbf3304491342047e: build(deps): bump github.com/docker/docker (@dependabot[bot])
    • d7e5e3a7930273822107889800778b0d0db57d9b: build(deps): bump github.com/docker/docker (@dependabot[bot])
    • d7b8e9f5b7b7351955af90238772a16632eb35ca: build(deps): bump github.com/prometheus/common from 0.26.0 to 0.32.1 (@dependabot[bot])
    • 4c4368d0592514793daa6e9f899d09f91986fbdb: build(deps): bump k8s.io/client-go from 0.22.3 to 0.22.4 (@dependabot[bot])
    • 9cca67d2ab6d77108c8aa48fd7efcc386c525761: build(deps): bump k8s.io/cri-api from 0.22.3 to 0.22.4 (@dependabot[bot])
    • 629c890f3b32992d2a4a065a3ac72469367ac243: build(deps): bump k8s.io/cri-api from 0.22.4 to 0.23.0 (@dependabot[bot])
    • 8664e654f37d5e9ec710dc4c83a7d8f74615b61b: build(deps): bump k8s.io/cri-api from 0.23.0 to 0.23.1 (#194) (@dependabot[bot])
    • af1ca89dba618354e6d36f31b805f107594c0954: debug-info: Use child process reaper for more reliable external command execution (#198) (@kakkoyun)
    • 9933b45f27a3e3aadb97abc8335360be8c79d418: go.*: Upgrade go modules (#196) (@kakkoyun)
    • 82fe5a9633bf97a262bfb601e2b8d67bfc67c700: pkg/discovery: Support cgroupv2 (@derekparker)
    • b4880699f5d96e20440c3f29e6e661e853e443dc: pkg/discovery: Use promauto constructors for metric types (@Sylfrena)
    • b02cb763cc4696b2cc0570c368f8e7d867bf24f7: pkg/discovery: take user provided systemd cgroup path into account (@derekparker)
    • 8b402310aa9d0cdad6da6d1180eb9d15e5ecbd18: pkg/perf: Allow memory address strings to have the 0x prefix (@brancz)
    • 65a2d17dea32c6d6b31422e37cd63ff3168963e4: profiler: Use constant as cgroup label selector (#191) (@kakkoyun)

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.3.0...v0.4.0

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.4.0

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(104 bytes)
    kubernetes-manifest.yaml(5.25 KB)
    manifests.tar.gz(2.06 KB)
    openshift-manifest.yaml(5.00 KB)
    parca-agent_0.4.0_Linux_x86_64.tar.gz(29.94 MB)
  • v0.3.0(Nov 18, 2021)

    What's Changed

    • CONTRIBUTING.md: Add more required packages to install by @slashpai in https://github.com/parca-dev/parca-agent/pull/112
    • deploy: Remove localtime mount by @brancz in https://github.com/parca-dev/parca-agent/pull/121
    • Parse Linux perf's map and try to symbolize by @zecke in https://github.com/parca-dev/parca-agent/pull/101
    • deploy/lib: remove unnecessary mounts by @paulfantom in https://github.com/parca-dev/parca-agent/pull/122
    • pkg/agent: Add batching support for profile write requests by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/116
    • systemd: Deal with non-resolvable units and slice locations by @zecket495 in https://github.com/parca-dev/parca-agent/pull/109
    • batcher: Pass logger to BatchWriteClient by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/128
    • pkg/perf: Discover namespace PID for perf map support in containers by @brancz in https://github.com/parca-dev/parca-agent/pull/132

    New Contributors

    • @zecket495 made their first contribution in https://github.com/parca-dev/parca-agent/pull/109

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.3.0

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.2.0...v0.3.0

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(104 bytes)
    kubernetes-manifest.yaml(5.25 KB)
    manifests.tar.gz(2.05 KB)
    openshift-manifest.yaml(5.00 KB)
    parca-agent_0.3.0_Linux_x86_64.tar.gz(29.02 MB)
  • v0.2.0(Oct 27, 2021)

    Highlights

    • fix: broken link to security doc by @frezbo in https://github.com/parca-dev/parca-agent/pull/84
    • deploy/lib/parca-agent: pin pods to amd64 architecture by @paulfantom in https://github.com/parca-dev/parca-agent/pull/85
    • deploy/lib/parca-agent: add flag to enable podMonitor by @paulfantom in https://github.com/parca-dev/parca-agent/pull/89
    • deploy/lib/parca-agent: unify metadata across all objects by @paulfantom in https://github.com/parca-dev/parca-agent/pull/88
    • deploy: Add external-label support by @ArthurSens in https://github.com/parca-dev/parca-agent/pull/92
    • Jsonnet: support configuring resources for parca agent by @yeya24 in https://github.com/parca-dev/parca-agent/pull/94
    • cmd: Add buildid tool by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/99
    • testutil: Introduce package and move fs fakes there by @zecke in https://github.com/parca-dev/parca-agent/pull/98
    • deploy/main: use labels vs. annotations for pod-security settings by @s-urbaniak in https://github.com/parca-dev/parca-agent/pull/100
    • debuginfo: Ensure unused section removed by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/102
    • cmd/parca-agent/main.go: Fix default profilingDuration value by @slashpai in https://github.com/parca-dev/parca-agent/pull/105
    • Enable metrics collectors by @yeya24 in https://github.com/parca-dev/parca-agent/pull/106
    • containerutils: Speculative mem leak fix by @zecke in https://github.com/parca-dev/parca-agent/pull/107

    New Contributors

    • @frezbo made their first contribution in https://github.com/parca-dev/parca-agent/pull/84
    • @paulfantom made their first contribution in https://github.com/parca-dev/parca-agent/pull/85
    • @ArthurSens made their first contribution in https://github.com/parca-dev/parca-agent/pull/92
    • @yeya24 made their first contribution in https://github.com/parca-dev/parca-agent/pull/94
    • @zecke made their first contribution in https://github.com/parca-dev/parca-agent/pull/98
    • @s-urbaniak made their first contribution in https://github.com/parca-dev/parca-agent/pull/100
    • @slashpai made their first contribution in https://github.com/parca-dev/parca-agent/pull/93

    Changelog

    fd93c0c3a1b2fa0011803f70a5481e2400d9d32d: *: add clang-format formatter to makefile (@paulfantom) a4a60f184484586a4a5516c701da00f05c7d0e3c: Add buildid tool (@kakkoyun) 4fefed81ba92bc1b4cb2cb38091217b49737c327: Bump 3rdparty/libbpf from b0feb9b to f9f6e92 (@dependabot[bot]) b4a67e6d764111faa3cebe2a600d4c14ff636352: Bump 3rdparty/libbpf from f9f6e92 to 92c1e61 (@dependabot[bot]) 6bfb689f1aea6a7876d538dc5d9ce1b8db84493d: Ensure unused section removed (@kakkoyun) d876941784bada5dca477cc427ee4876192a3a90: Merge pull request #100 from s-urbaniak/fix-pod-security (@brancz) de89fb0cac765beaab2675fd8b03710f5b6de2a5: Merge pull request #102 from parca-dev/fix_section_issue (@kakkoyun) d0ec90bd27b201edea703b47c97af93f6a187c23: Merge pull request #103 from parca-dev/push_ghcr_with_builds (@kakkoyun) 265eaa040f896556e38749ea3f4483c5cb5d74d4: Merge pull request #105 from slashpai/fix_duration (@brancz) efd6a72aaa750745104e982f41da26bc75d5c6ea: Merge pull request #106 from yeya24/add-metrics-collectors (@kakkoyun) 64d59f0d7899c6a9dd48283d88a2b2eaf09e167f: Merge pull request #107 from zecke/zecke/leaks (@kakkoyun) 52c9f2de615fe6e72779bca29b9f0b21a27611ea: Merge pull request #79 from parca-dev/dependabot/submodules/3rdparty/libbpf-f9f6e92 (@brancz) 23eba054101a5a546aa1a2dcef98cf43fc09d70d: Merge pull request #84 from frezbo/fix-link (@brancz) 8bfdafa7e829cb50c73b1d0a864e68507e87e7e2: Merge pull request #85 from paulfantom/nodeselector (@brancz) 3ed0de7edaf6fc3f11b926f0a36f8967cda02c2b: Merge pull request #87 from paulfantom/code-format (@brancz) 734d36aadc2edf626a44ac3c2ed78bfbc4fc8a13: Merge pull request #88 from paulfantom/metadata_inconsistencies (@brancz) 6f51b2ac4a19215ef249897ebd1ea7189c20e980: Merge pull request #89 from paulfantom/podmonitor (@brancz) 8dc04a20c3ccbad2c42d194a17e54b43ae1b7a95: Merge pull request #92 from ArthurSens/external-labels (@metalmatze) eb327a9a2bb589dd2d6ac799be8ce8d1cc7ee498: Merge pull request #93 from slashpai/duration_flag (@brancz) e5a83bec4f3b03af2b69a32c737673604e6eb89f: Merge pull request #94 from yeya24/set-resources-jsonnet (@brancz) e807cb03e877658150f1c12acafb867086710f47: Merge pull request #95 from parca-dev/dependabot/submodules/3rdparty/libbpf-92c1e61 (@brancz) de5a843862841603f7d737ef15c7dfcc3a737437: Merge pull request #98 from zecke/create-testutil (@brancz) dcad8f5544f16307fb516b2f99fb42e61a6b8854: Merge pull request #99 from parca-dev/add_buildid_tool (@brancz) fbdac72bd9594745b621adfbd632700b394e8922: Push container when its merged to main (@kakkoyun) c86d8cc18bcdb41b839c6f1f307a251187dbb29f: README.md: Regenerate README (@slashpai) efceb89b3bdafa53070487c05b519cbb47a55a97: README.md: Regenerate README (@slashpai) 205ea4b8aa75978a7b0830a329e65f999bbd62bf: Update .goreleaser.yml (@kakkoyun) 52d765e2cea28aa439e7a7dad8e313eb7899c12c: cmd/parca-agent/main.go: Fix default profilingDuration value (@slashpai) ba78000cb6bb6f408436ac1bb53fa8418628bc33: cmd/pkg: Add flag to make profiling duration configurable (@slashpai) ed7b30b91bf75fd5c8b9c2b79137b203199e4f81: containerutils: Speculative mem leak fix (@zecke) 19e542273559b1bb5f834f8543961760c4ae4c24: deploy/lib/parca-agent: add flag to enable podMonitor (@paulfantom) 403ae905344d8fa0e6d8d7144555fd38c5437e8f: deploy/lib/parca-agent: pin nodes to amd64 architecture (@paulfantom) 6c526c936c33cbae9f54214a9160dba623b72a14: deploy/lib/parca-agent: unify metadata across all objects (@paulfantom) 8c63a38a94d228cfeb41b9ff34afe8398bc9da55: deploy/main: use labels vs. annotations for pod-security settings (@s-urbaniak) ac06e0eb5b7dc27869a16094006c7b37588a1cb3: enable metrics collectors (@yeya24) f689ae5575209adb0870ace5254128c49f2145c6: fix: broken link to security doc (@frezbo) b0119a9f960ee2d8567c82a3764be7f419e794fe: go.mod/go.sum: Update go module (@slashpai) c01f1e923b3b2733e21113ec61bde0e3c0a3380b: jsonnet: Add external-label support (@ArthurSens) 0ad9170b6151bc93aaa7b62fbad9087c749c9295: jsonnet: support configuring resources for parca agent (@yeya24) 0a717e8f033018be5dbf11aac9082f86bf76479f: parca-agent: format C code according to GNU formatting guidelines (@paulfantom) a37986844cdc4c2d66a2c89529f1c09c63a42722: pkg/agent/profile.go: Fix go-linting (@slashpai) ae579cb8e4d424d67dcb9154481700c7583c0868: testutil: Introduce package and move fs fakes there (@zecke)

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.2.0

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.1.0...v0.2.0

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(104 bytes)
    kubernetes-manifest.yaml(5.65 KB)
    manifests.tar.gz(2.13 KB)
    openshift-manifest.yaml(5.40 KB)
    parca-agent_0.2.0_Linux_x86_64.tar.gz(28.96 MB)
  • v0.1.0(Oct 8, 2021)

    Changelog

    252de7130ef9667d46b4fb8b6accf4f96a31f319: Merge pull request #80 from parca-dev/update_security_docs (@kakkoyun) 14cc89c926c46581244b56726e10189a066411c0: Sync docs (@kakkoyun) 8486bdbab63542f0a7fea91727070062b9cfbff0: Update security docs (@kakkoyun)

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.1.0

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(104 bytes)
    kubernetes-manifest.yaml(5.22 KB)
    manifests.tar.gz(2.12 KB)
    openshift-manifest.yaml(5.16 KB)
    parca-agent_0.1.0_Linux_x86_64.tar.gz(28.93 MB)
  • v0.1.0-alpha.3(Oct 7, 2021)

    Changelog

    192fa9decdb26f60b5e7ac91e8ba9f327d5dd3ea: Add goreleaser footer (@kakkoyun) 2af3493c7836aa00f3ef83674866aec205d8b6bf: Change log levels to reduce noise (@kakkoyun) f39973cd667d7282b04156d9f11d83aff3d9b8db: Include debuginfo in the releases (@kakkoyun) 32327eae805c18a3483731cb3dea5fff697dbcb1: Merge pull request #72 from parca-dev/goreleaser_footer (@brancz) bef46c16e6151f3f0afd478193c44a65f728a17d: Merge pull request #75 from parca-dev/openshift-ignore-psp-fix-scc (@kakkoyun) d975eb05f29f80611ae294c4bef562b530f5cfc6: Merge pull request #76 from parca-dev/change_log_levels (@brancz) cbb38991406ee6bac85a23661c809f1f5d1a427a: Merge pull request #77 from parca-dev/pod-security (@brancz) 6b5b54d506efbe4d9b4e92d7a5de87ffbbe3fc06: Merge pull request #78 from parca-dev/include_debug_info (@kakkoyun) 536c2a76224fc60e0d49f17b74cf236c76a78179: deploy: Add pod-security annotations on namespace (@brancz) e0572676603ffd562929812880654f8d680e3784: deploy: Ignore PodSecurityPolicy on OpenShift and fix SecurityContextConstraint (@brancz)

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.1.0-alpha.3

    Thanks!

    Join our Discord server; Follow us on Twitter; Read the documentation.

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(112 bytes)
    kubernetes-manifest.yaml(5.27 KB)
    manifests.tar.gz(2.12 KB)
    openshift-manifest.yaml(5.21 KB)
    parca-agent_0.1.0-alpha.3_Linux_x86_64.tar.gz(28.93 MB)
  • v0.1.0-alpha.2(Oct 6, 2021)

    Changelog

    • 0c0f7b0de1348c355b04fd9399b4c62111032ab9: Bump github.com/go-kit/log from 0.1.0 to 0.2.0 (@dependabot[bot])
    • 167a2397b6399c15d1812848a384fd0e4b47c634: Bump 3rdparty/libbpf from 030ff87 to b0feb9b (#67) (@dependabot[bot])
    • 23bd82ae50a7b42c587850be39538421949a6eb9: go.mod: Update gin (@brancz)
    • 5676a3866ca0f7e3e3aec0cc112aed4bd81a67b4: Create codeql-analysis.yml (@kakkoyun)
    • 5c1899961574e7b1b17dfc0160f53aea89d7c129: Merge pull request #58 from parca-dev/update-containerd (@brancz)
    • 69ab4ba7d9a8e1e29d4347c89173ad96d29e294f: Upgrade several dependencies (@kakkoyun)
    • 6cd38c1235216f20e186640e84228801921af575: Bump k8s.io/cri-api from 0.20.6 to 0.22.2 (@dependabot[bot])
    • 6db1ee866ff7ccd4030b0d9550978b4c731610b2: Initialize dependabot (@kakkoyun)
    • 7b816973262f4f1403f108193f6c84a090863549: Merge pull request #57 from parca-dev/update-gin (@brancz)
    • 8e3d666066f917c693af3716b2ebc3e7b7af608f: Merge branch 'main' into dependabot/go_modules/github.com/go-kit/log-0.2.0 (@kakkoyun)
    • a0127eed58de5bbe03f9fac514fa9ae3f1ee7b1d: Bump k8s.io/apimachinery from 0.20.6 to 0.22.2 (#62) (@dependabot[bot])
    • be0653716b870cebaacbcd62b3ba21d56715a8dd: Bump github.com/cespare/xxhash/v2 from 2.1.1 to 2.1.2 (#64) (@dependabot[bot])
    • c2abac64d998a0d6aaef5c5031cf36bc39bccc29: go.sum: Update containerd (@brancz)
    • ca45c9331891e49b59cb9d432bf41c959eb7c65a: Merge pull request #68 from parca-dev/dependabot/go_modules/github.com/go-kit/log-0.2.0 (@kakkoyun)
    • d9694f87f2946d2e130f5f1c6963301878ea0493: Fix codeql builds (#65) (@kakkoyun)
    • da129b06ab62132733dfcaae3e12c035a1dc308e: Bump github.com/docker/docker (#63) (@dependabot[bot])
    • eba43e78942e54ce9471c66ba4abcd46235a38a7: Add several action improvements (#66) (@kakkoyun)
    • f2447d376609de6e823256f2559d09fdd4855758: Merge pull request #70 from parca-dev/dependabot/go_modules/k8s.io/cri-api-0.22.2 (@brancz)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(112 bytes)
    kubernetes-manifest.yaml(5.11 KB)
    manifests.tar.gz(2.12 KB)
    openshift-manifest.yaml(5.70 KB)
    parca-agent_0.1.0-alpha.2_Linux_x86_64.tar.gz(20.88 MB)
  • v0.1.0-alpha.1(Oct 5, 2021)

    What's Changed

    • Improve Github Actions by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/53
    • Trigger vercel deploy hook by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/56
    • Add special case for Go binary build ids by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/55

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.1.0-alpha...v0.1.0-alpha.1

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(112 bytes)
    kubernetes-manifest.yaml(5.11 KB)
    manifests.tar.gz(2.12 KB)
    openshift-manifest.yaml(5.70 KB)
    parca-agent_0.1.0-alpha.1_Linux_x86_64.tar.gz(19.30 MB)
  • v0.1.0-alpha(Oct 5, 2021)

    What's Changed

    • Add contributing guidelines by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/29
    • Make the container runtime's socket path configurable via flag by @metalmatze in https://github.com/parca-dev/parca-agent/pull/48
    • Fix multi-container pod discovery by @brancz in https://github.com/parca-dev/parca-agent/pull/49
    • deploy: Add explicit PodSecurityPolicy and ClusterRole by @brancz in https://github.com/parca-dev/parca-agent/pull/50
    • *: Clean generated manifests by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/51
    • *: Fix systemd misspellings by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/52

    New Contributors

    • @metalmatze made their first contribution in https://github.com/parca-dev/parca-agent/pull/48

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.0.1-alpha.5...v0.1.0-alpha

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(110 bytes)
    kubernetes-manifest.yaml(5.10 KB)
    manifests.tar.gz(2.12 KB)
    openshift-manifest.yaml(5.69 KB)
    parca-agent_0.1.0-alpha_Linux_x86_64.tar.gz(19.23 MB)
  • v0.0.1-alpha.4(Sep 28, 2021)

    What's Changed

    • debuginfo: Add less error prone DWARF check by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/39
    • deploy: Add Openshift manifests by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/43
    • Release v0.0.1-alpha.4 by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/44

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.0.1-alpha.3...v0.0.1-alpha.4

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(112 bytes)
    parca-agent_0.0.1-alpha.4_Linux_x86_64.tar.gz(19.24 MB)
  • v0.0.1-alpha.3(Sep 27, 2021)

  • v0.0.1-alpha.2(Sep 27, 2021)

    What's Changed

    • Change image pull policy by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/36
    • debuginfo: Create cmd/debug-info by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/37
    • Sync stack depths by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/38

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.0.1-alpha.1...v0.0.1-alpha.2

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1-alpha(Sep 22, 2021)

    What's Changed

    • Use eu-strip to extract debug information instead of objcopy by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/9
    • Use Parca gRPC APIs by @brancz in https://github.com/parca-dev/parca-agent/pull/11
    • Upgrade vulnerable module by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/12
    • Add manifests generators by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/13
    • Small doc edits and move port to 7071 by @brancz in https://github.com/parca-dev/parca-agent/pull/15
    • Only set the profile name to the kind by @brancz in https://github.com/parca-dev/parca-agent/pull/18
    • *: Update parca-dev/parca after proto refactoring/linting by @brancz in https://github.com/parca-dev/parca-agent/pull/19
    • Reorg by @thorfour in https://github.com/parca-dev/parca-agent/pull/17
    • *: Ensure license headers by @brancz in https://github.com/parca-dev/parca-agent/pull/20
    • Parameterize tmp file by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/21
    • Utilize Docker layer cache by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/22
    • *: Add linting and fix linting issues by @brancz in https://github.com/parca-dev/parca-agent/pull/24
    • Add tempfile flag by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/25
    • Add Dockerfile.dev for Tilt by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/26
    • Add external labels to all profiles by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/28
    • debuginfo: Add extended support for Go binaries by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/27
    • docs: Several minor updates for the docs by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/30
    • ebpf: Increase stack depth to 128 by @brancz in https://github.com/parca-dev/parca-agent/pull/31
    • Push container with release tags by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/32
    • Fix builds by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/33

    New Contributors

    • @thorfour made their first contribution in https://github.com/parca-dev/parca-agent/pull/17

    Full Changelog: https://github.com/parca-dev/parca-agent/commits/v0.0.1-alpha

    Source code(tar.gz)
    Source code(zip)
Owner
Parca
Continuous profiling analysis of CPU & memory usage over time, down to line numbers. Improve performance, save cost.
Parca
A virtual network Differential GNSS server-client project using Precise Point Positioning (PPP). Global coverage. Without physical base station construction needed. An open-source virtual base station approach.

Virtual-Network-DGNSS-Project This project is the software implementation for a publicly available, open-source, client/server VN-DGNSS implementation

null 10 May 20, 2022
Source-code based coverage for eBPF programs actually running in the Linux kernel

bpfcov Source-code based coverage for eBPF programs actually running in the Linux kernel This project provides 2 main components: libBPFCov.so - an ou

elastic 109 May 24, 2022
A Linux Host-based Intrusion Detection System based on eBPF.

eHIDS 介绍 eBPF内核技术实现的HIDS demo. 功能实现: TCP网络数据捕获 UDP网络数据捕获 uprobe方式的DNS信息捕获 进程数据捕获 uprobe方式实现JAVA的RASP命令执行场景事件捕获 eBPF的go框架实现,针对kprobe\uprobe挂载方式,多类型even

CFC4N 255 Aug 7, 2022
Linux Application Level Firewall based on eBPF and NFQUEUE.

eBPFSnitch eBPFSnitch is a Linux Application Level Firewall based on eBPF and NFQUEUE. It is inspired by OpenSnitch, and Douane, but utilizing modern

Harpo Roeder 649 Jul 26, 2022
pwru is an eBPF-based tool for tracing network packets in the Linux kernel with advanced filtering capabilities.

pwru (packet, where are you?) pwru is an eBPF-based tool for tracing network packets in the Linux kernel with advanced filtering capabilities. It allo

Cilium 832 Jul 29, 2022
eBPF-based EDR for Linux

ebpf-edr A proof-of-concept eBPF-based EDR for Linux Seems to be working fine with the 20 basic rules implemented. Logs the alerts to stdout at the mo

null 16 May 6, 2022
libsinsp, libscap, the kernel module driver, and the eBPF driver sources

falcosecurity/libs As per the OSS Libraries Contribution Plan, this repository has been chosen to be the new home for libsinsp, libscap, the kernel mo

Falco 108 Aug 5, 2022
eBPF bytecode assembler and compiler

An eBPF bytecode assembler and compiler that * Assembles the bytecode to object code. * Compiles the bytecode to C macro preprocessors. Symbolic

Emil Masoumi 6 Jan 23, 2022
A Rust crate that simplifies the integration of Rust and eBPF programs written in C.

This crate simplifies the compilation of eBPF programs written in C integrating clang with Rust and the cargo build system with functions that can be

Simone Margaritelli 19 Mar 16, 2022
ebpfkit-monitor is a tool that detects and protects against eBPF powered rootkits

ebpfkit-monitor ebpfkit-monitor is an utility that you can use to statically analyse eBPF bytecode or monitor suspicious eBPF activity at runtime. It

Guillaume Fournier 63 Jul 26, 2022
bpflock - eBPF driven security for locking and auditing Linux machines

bpflock - Lock Linux machines bpflock - eBPF driven security for locking and auditing Linux machines. This is a Work In Progress: bpflock is currently

The Linux lock machine projects 81 Jul 28, 2022
🌱Light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.

Oat++ News Hey, meet the new oatpp version 1.2.5! See the changelog for details. Check out the new oatpp ORM - read more here. Oat++ is a modern Web F

Oat++ 5.6k Jul 30, 2022
Example how to run eBPF probes without a usermode process using fentry

Pinning eBPF Probes Simple example to demonstrate how to pin kernel function and syscall probes. Overview From my reading of the kernel code, KProbe a

pat_h/to/file 3 Jun 7, 2021
eBPF implementation that runs on top of Windows

eBPF for Windows eBPF is a well-known technology for providing programmability and agility, especially for extending an OS kernel, for use cases such

Microsoft 1.5k Jul 31, 2022
A very basic eBPF Load Balancer in a few lines of C

An eBPF Load Balancer from scratch As seen at eBPF Summit 2021. This is not production ready :-) This uses libbpf as a git submodule. If you clone thi

Liz Rice 140 Jul 16, 2022
skbtracer on ebpf

skbtracer skbtracer 基于 ebpf 技术的 skb 网络包路径追踪利器, 实现代码基于 BCC (required Linux Kernel 4.15+) 使用样例 skbtracer.py # trace

DavadDi 45 Jun 18, 2022
some experiments with ebpf

Learning eBPF and some kernel tracing, probe DNS + TCP connection with portable bpf prog. DevEnv Ubuntu 20.04 Install go Install make, clang, llvm Ins

null 10 Jul 2, 2022
Small utility that leverages eBPF to dump the traffic of a unix domain socket

UnixDump UnixDump is a small eBPF powered utility that can be used to dump unix socket traffic. System requirements This project was developed on a Ub

Guillaume Fournier 5 Dec 1, 2021
Tool for Preventing Data Exfiltration with eBPF

bouheki: Tool for Preventing Data Exfiltration with eBPF bouheki is a KSRI implementation using LSM Hook by eBPF. Flexibility to apply restricted netw

mrtc0 44 Aug 3, 2022