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.
Comments
  • Parca agent makes Oracle Kubernetes Engine worker nodes down

    Parca agent makes Oracle Kubernetes Engine worker nodes down

    The subject may sound weird, but that's what I have experienced. Hope you guys shed some light. :)

    I started testing Parca in OKE (Oracle Kubernetes Engine) and found installing Parca agent made the worker node unresponsive to SSH and must be hard-rebooted. At first, I suspected the issue is with OKE or its underlying cloud infrastructure. But over time, I was able to isolate that this issue only happens after Parca agent is installed. The reproduction was done across multiple clusters, node pools, nodes, etc.

    But I still don't know what exactly caused this issue. I've scanned the system stats and logs but they looked clean. The system resources were fine. I could have missed something as I have no idea where to look at.

    Parca agent showed this log from all nodes it was installed, but I am not sure if it is relevant (anyway, the log says "please report").

    level=error ts=2021-12-31T05:29:33.514162476Z caller=debuginfo.go:259 namespace=kube-system pod=coredns-94d6cc8b6-br22d container=coredns component=debuginfoextractor msg="external binutils command call failed" output="objcopy: BFD (GNU Binutils for Debian) 2.31.1 internal error, aborting at ../../bfd/elf.c:7085 in rewrite_elf_program_headerobjcopy: Please report this bug." file=/proc/16763/root/coredns
    

    Environment

    • Oracle Kubernetes Engine (Kubernetes 1.21)
    • OS: Oracle Linux Server 7.9 (a cousin to RHEL 7.9)

    Steps to reproduce

    1. kubectl create namespace parca
    2. kubectl apply -f kubectl apply -f https://github.com/parca-dev/parca-agent/releases/download/v0.3.0/kubernetes-manifest.yaml
    3. Watch the node become "not ready" and unresponsive within minutes. Sometimes in a few mins, sometimes takes a long time (so the nodes in the cluster which Parca agent is installed as DaemonSet went unresponsive one by one).
    4. hard-reboot the node
    bug good first issue help wanted 
    opened by tonychoe 29
  • ci(e2e): run on Linux

    ci(e2e): run on Linux

    Since the runner is already a Linux VM, we can use it directly instead of nested virtualization on MacOS, this cuts the duration of e2e tests by more than half (>20min :arrow_right: <10min)

    Half of what is left is a 5-minute fixed wait ~~for the deployment to be stable, I opened #961 to optimize that~~ nvm, I just put things together, it is profiling the system for the duration

    This also adds a Bash trap to output pods statuses and Parca logs, no matter if the setup was successful or not, extremely helpful for debugging

    Finally, the latest Parca manifest is broken, so I hard-coded the previous release

    opened by maxbrunet 20
  • Current `main` doesn't start on Scaleway

    Current `main` doesn't start on Scaleway

    It would be great to be able to run the latest version of Parca Agent on our demo.parca.dev instance.

    Right now the agent doesn't start on Scaleway Kubernetes nodes logging the following:

    level=warn name=parca-agent ts=2022-08-29T12:22:59.162801832Z caller=main.go:139 msg="failed to determine if eBPF is supported" err="kernel config not found"
    level=error name=parca-agent ts=2022-08-29T12:22:59.162868702Z caller=main.go:121 err="host kernel does not support eBPF"
    

    The pod is running image ghcr.io/parca-dev/parca-agent:main-5920bd0f with arguments:

          /bin/parca-agent
          --log-level=info
          --node=$(NODE_NAME)
          --remote-store-address=parca.parca.svc.cluster.local:7070
          --remote-store-insecure
          --remote-store-insecure-skip-verify
    

    When kubectl exec into a pod (Parca pod since the agent has no shell inside) it seems that there is no /boot directory available, nor any /proc/config* files.

    bug area/deployment 
    opened by metalmatze 14
  • 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
  • Refactor after and cleanup system-wide profiling changes

    Refactor after and cleanup system-wide profiling changes

    Signed-off-by: Kemal Akkoyun [email protected]

    After the #627 changes, we changed the control flow of the agent. Previously we were using service discovery to find cgroups, and we were attaching a profiler per cgroup. This has changed metadata resolution drastically. On top of that, we had a bunch of residue because of cgroup assumptions.

    This PR addresses a bunch of issues and renames a lot of packages and types. To:

    • Clean the tech debt
    • Increase readability (rename all the packages)
    • Increase testability (interfaces everywhere)
    • To add future profilers easily

    But mostly, providing the metadata information could be cleaner.

    Also adds systemd metadata provider.

    Fixes #624 #356 #660 #661

    opened by kakkoyun 13
  • [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
  • Let agent do not store normalized addresses

    Let agent do not store normalized addresses

    current, the agent compute base address from executable file, and the pprof file's address is normalized.

    it is difficulty for package github.com/google/pprof to deal with normalized pprof file. it's function like profile.Merge assumes the address is unnormalized.

    is it possible to store the information which we need to compute base address into debuginfo? parca-agent store raw address. parca use debuginfo to compute base address.

    area/debuginfo 
    opened by zdyj3170101136 1
  • pkg/profiler: Use pool of gzip writers

    pkg/profiler: Use pool of gzip writers

    klauspost's Stateless gzip compressor allowed to reduce CPU consumption by 20%, see https://github.com/parca-dev/parca-agent/pull/1065.

    After profiling Parca Agent with Vtune I found an elevated CPI rate (124.4) in flate/stateless.go https://github.com/klauspost/compress/discussions/717. The author recommends to use a pool of gzip writers to get 2x-3x speed up.

    new
    (pprof) top20 -cum
    Showing nodes accounting for 175.04MB, 36.80% of 475.70MB total
    Dropped 155 nodes (cum <= 2.38MB)
    Showing top 20 nodes out of 118
          flat  flat%   sum%        cum   cum%
             0     0%     0%   189.97MB 39.93%  github.com/godbus/dbus/v5.(*Conn).inWorker
       31.86MB  6.70%  6.70%   189.97MB 39.93%  github.com/godbus/dbus/v5.(*unixTransport).ReadMessage
             0     0%  6.70%   157.60MB 33.13%  github.com/godbus/dbus/v5.(*decoder).Decode
      111.01MB 23.34% 30.04%   157.60MB 33.13%  github.com/godbus/dbus/v5.(*decoder).decode
             0     0% 30.04%   157.10MB 33.03%  github.com/godbus/dbus/v5.decodeMessageBody
             0     0% 30.04%   133.76MB 28.12%  github.com/oklog/run.(*Group).Run.func1
             0     0% 30.04%   133.76MB 28.12%  github.com/parca-dev/parca-agent/pkg/profiler/cpu.(*CPU).Run
             0     0% 30.04%   133.76MB 28.12%  main.run.func6
             0     0% 30.04%   133.76MB 28.12%  main.run.func6.1
             0     0% 30.04%   133.76MB 28.12%  runtime/pprof.Do
        6.03MB  1.27% 31.30%   130.23MB 27.38%  github.com/coreos/go-systemd/v22/dbus.(*Conn).SubscribeUnitsCustom.func1
             0     0% 31.30%   124.20MB 26.11%  github.com/coreos/go-systemd/v22/dbus.(*Conn).ListUnits (inline)
             0     0% 31.30%   124.20MB 26.11%  github.com/coreos/go-systemd/v22/dbus.(*Conn).ListUnitsContext
       26.13MB  5.49% 36.80%   122.20MB 25.69%  github.com/coreos/go-systemd/v22/dbus.(*Conn).listUnitsInternal
             0     0% 36.80%    96.06MB 20.19%  github.com/godbus/dbus/v5.Store
             0     0% 36.80%    96.06MB 20.19%  github.com/godbus/dbus/v5.store
             0     0% 36.80%    96.06MB 20.19%  github.com/godbus/dbus/v5.storeInterfaces
             0     0% 36.80%    96.06MB 20.19%  github.com/godbus/dbus/v5.storeSlice
             0     0% 36.80%    65.06MB 13.68%  github.com/godbus/dbus/v5.(*Call).Store
             0     0% 36.80%    65.06MB 13.68%  github.com/godbus/dbus/v5.storeSliceIntoSlice
    
    ROUTINE ======================== github.com/parca-dev/parca-agent/pkg/profiler.(*RemoteProfileWriter).Write in pkg/profiler/profile_writer.go
             0    13.52MB (flat, cum)  2.84% of Total
             .          .     78:// Write sends the profile using the designated write client.
             .          .     79:func (rw *RemoteProfileWriter) Write(ctx context.Context, labels model.LabelSet, prof *profile.Profile) error {
             .          .     80:	buf := bytes.NewBuffer(nil)
             .          .     81:	zw := rw.pool.Get().(*gzip.Writer)
             .          .     82:	zw.Reset(buf)
             .     7.81MB     83:	if err := prof.WriteUncompressed(zw); err != nil {
             .          .     84:		rw.pool.Put(zw)
             .          .     85:		return err
             .          .     86:	}
             .     5.71MB     87:	zw.Close()
             .          .     88:	rw.pool.Put(zw)
             .          .     89:
             .          .     90:	_, err := rw.profileStoreClient.WriteRaw(ctx, &profilestorepb.WriteRawRequest{
             .          .     91:		Normalized: true,
             .          .     92:		Series: []*profilestorepb.RawProfileSeries{{
    
    old
    (pprof) top20 -cum
    Showing nodes accounting for 104.70MB, 40.74% of 257.02MB total
    Dropped 109 nodes (cum <= 1.29MB)
    Showing top 20 nodes out of 125
          flat  flat%   sum%        cum   cum%
             0     0%     0%   100.85MB 39.24%  github.com/oklog/run.(*Group).Run.func1
             0     0%     0%   100.85MB 39.24%  github.com/parca-dev/parca-agent/pkg/profiler/cpu.(*CPU).Run
             0     0%     0%   100.85MB 39.24%  main.run.func6
             0     0%     0%   100.85MB 39.24%  main.run.func6.1
             0     0%     0%   100.85MB 39.24%  runtime/pprof.Do
             0     0%     0%    73.71MB 28.68%  github.com/godbus/dbus/v5.(*Conn).inWorker
        8.58MB  3.34%  3.34%    73.71MB 28.68%  github.com/godbus/dbus/v5.(*unixTransport).ReadMessage
        9.11MB  3.55%  6.88%    64.13MB 24.95%  github.com/godbus/dbus/v5.DecodeMessage
             0     0%  6.88%    55.02MB 21.41%  github.com/godbus/dbus/v5.(*decoder).Decode
          50MB 19.46% 26.34%    55.02MB 21.41%  github.com/godbus/dbus/v5.(*decoder).decode
        3.02MB  1.17% 27.51%    54.02MB 21.02%  github.com/coreos/go-systemd/v22/dbus.(*Conn).SubscribeUnitsCustom.func1
             0     0% 27.51%       51MB 19.84%  github.com/coreos/go-systemd/v22/dbus.(*Conn).ListUnits (inline)
             0     0% 27.51%       51MB 19.84%  github.com/coreos/go-systemd/v22/dbus.(*Conn).ListUnitsContext
       12.49MB  4.86% 32.37%       50MB 19.45%  github.com/coreos/go-systemd/v22/dbus.(*Conn).listUnitsInternal
             0     0% 32.37%    44.89MB 17.47%  github.com/parca-dev/parca-agent/pkg/metadata.(*StatelessProvider).Labels
             0     0% 32.37%    44.89MB 17.47%  github.com/parca-dev/parca-agent/pkg/metadata/labels.(*Manager).LabelSet
             0     0% 32.37%    44.89MB 17.47%  github.com/parca-dev/parca-agent/pkg/metadata/labels.(*Manager).labelSet
             0     0% 32.37%    44.39MB 17.27%  github.com/parca-dev/parca-agent/pkg/metadata.Compiler.func1
             0     0% 32.37%    42.50MB 16.54%  debug/elf.Open
       21.50MB  8.37% 40.74%    41.50MB 16.15%  debug/elf.NewFile
    
    ROUTINE ======================== github.com/parca-dev/parca-agent/pkg/profiler.(*RemoteProfileWriter).Write in pkg/profiler/profile_writer.go
             0        2MB (flat, cum)  0.78% of Total
             .          .     73:	buf := bytes.NewBuffer(nil)
             .          .     74:	zw, err := gzip.NewWriterLevel(buf, gzip.StatelessCompression)
             .          .     75:	if err != nil {
             .          .     76:		return err
             .          .     77:	}
             .        1MB     78:	if err = prof.WriteUncompressed(zw); err != nil {
             .          .     79:		zw.Close()
             .          .     80:		return err
             .          .     81:	}
             .          .     82:	zw.Close()
             .          .     83:
             .          .     84:	_, err = rw.profileStoreClient.WriteRaw(ctx, &profilestorepb.WriteRawRequest{
             .          .     85:		Normalized: true,
             .          .     86:		Series: []*profilestorepb.RawProfileSeries{{
             .        1MB     87:			Labels: &profilestorepb.LabelSet{Labels: convertLabels(labels)},
             .          .     88:			Samples: []*profilestorepb.RawSample{{
             .          .     89:				RawProfile: buf.Bytes(),
             .          .     90:			}},
             .          .     91:		}},
             .          .     92:	})
    

    I am yet to check the CPI rate after introducing the pool.

    opened by marselester 3
  • metadata: Metadata association problems with children processes

    metadata: Metadata association problems with children processes

    Metadata association is straightforward right now (just matching exact PIDs). It causes problems associating the relevant information from service discovery (e.g. kubernetes, systemd). We need to attach all the metadata information to the processes within the encapsulator (cgroup, container, or pod). See the example below.

    $ ps auxww
    USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    rabbitmq       1  0.0  0.0   2616  1668 ?        Ss   09:01   0:00 /bin/sh /opt/rabbitmq/sbin/rabbitmq-server
    rabbitmq      11 17.2  2.6 4496400 439992 ?      Sl   09:01   9:55 /usr/local/lib/erlang/erts-12.3.2/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -JPperf true -B i -- -root /usr/local/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa  -noshell -noinput -s rabbit boot -boot start_sasl -syslog logger [] -syslog syslog_error_logger false -kernel prevent_overlapping_partitions false
    

    We should have associated the metadata with the given process for this particular case. https://github.com/parca-dev/parca-agent/blob/5a538215709969388c2fa31441bcad06e9d7b2e9/pkg/discovery/kubernetes.go#L127

    However, we rely on Kubernetes API to deliver updates and heavily on caching in this path. It's possible that we might have missed some updates. It needs further investigation.

    For replication:

    kubectl apply -f https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml
    kubectl apply -f https://raw.githubusercontent.com/rabbitmq/cluster-operator/main/docs/examples/hello-world/rabbitmq.yaml
    
    • https://github.com/docker-library/rabbitmq/blob/master/3.11/ubuntu/Dockerfile
    • https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbit/scripts/rabbitmq-server
    bug good first issue area/metadata 
    opened by kakkoyun 2
  • pkg/debuginfo: ensureUploaded benchmark

    pkg/debuginfo: ensureUploaded benchmark

    @brancz mentioned that EnsureUploaded has a room for perf improvements.

    Judging by what I'm seeing on demo I think we have much bigger fish to fry right now (allocations in EnsureUploaded and profiler loop stacks look like they should give us a major wins).

    I found a TODO comment that mentions caching the hash, so I was thinking to prepare a benchmark for that code path to begin with.

    // TODO: We should be able to cache the hash further to avoid
    // re-hashing the same binary and getting to the same result
    // again.
    
    $ go test -benchmem -run=. -bench ^BenchmarkEnsureUploadedAlreadyExists$ ./pkg/debuginfo/
    goos: linux
    goarch: amd64
    pkg: github.com/parca-dev/parca-agent/pkg/debuginfo
    cpu: Intel(R) Core(TM) i5-10600 CPU @ 3.30GHz
    BenchmarkEnsureUploadedAlreadyExists-2 1000000 1131 ns/op 138 B/op 7 allocs/op
    

    I guess the hashes can be cached (buildID is a key) in a sync.Map since the files are uploaded concurrently.

    opened by marselester 0
Releases(v0.11.0)
  • v0.11.0(Dec 20, 2022)

    Breaking Changes

    This release has a breaking change in the debuginfo upload protocol, which is only compatible with Parca server v0.15.0 or higher (more details in https://github.com/parca-dev/parca-agent/pull/1104 and https://github.com/parca-dev/parca/pull/2248).

    What's Changed

    Aside from the above-mentioned breaking changes, this release primarily improves resource usage required by the Parca Agent and iterates on the experimental DWARF unwinding support in various aspects working towards enabling it by default.

    • debuginfo/find: Add more local debug information search patterns by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1036
    • bpf: Reduce BPF map memory usage by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1042
    • docs/eh_frame: Add features and limitations doc by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1054
    • Add support for dwarf expressions for PLTs by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1058
    • Reduce elf.Open() calls by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/1001
    • pkg/profile: Replace gzip package to reduce allocs by @marselester in https://github.com/parca-dev/parca-agent/pull/1065
    • docs: Update security document by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1081
    • docs: Move labelling doc from downstream parca-dev/docs by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1082
    • Update the design doc for system-wide profiling changes by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1084
    • .eh_frame: Remove expensive opcode dispatch by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1094
    • *: Use new signed URL API for uploads when possible by @brancz in https://github.com/parca-dev/parca-agent/pull/1104
    • .eh_frame: Don't allocate the full unwind table by default by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1101
    • pkg/debuginfo: Set size of upload in upload initiation by @brancz in https://github.com/parca-dev/parca-agent/pull/1124
    • cpu/test: Ensure that unwind table can grow by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1106
    • .eh_frame/parser: Only collect registers used for unwinding by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1127
    • Reduce dbus allocs in ReadMessage path by @marselester in https://github.com/parca-dev/parca-agent/pull/1146

    New Contributors

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

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.10.1...v0.11.0

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(209 bytes)
    kubernetes-manifest.yaml(5.75 KB)
    manifests.tar.gz(2.18 KB)
    openshift-manifest.yaml(5.48 KB)
    parca-agent_0.11.0_Linux_arm64.tar.gz(25.01 MB)
    parca-agent_0.11.0_Linux_x86_64.tar.gz(27.20 MB)
  • v0.10.1(Dec 1, 2022)

    Changelog

    • f088d87be66cc70d468b4684d65e4983212ed4c3: Bump unwind table shards from 3 to 6 (@javierhonduco)
    • 21fafbafb43fcf6ac04d85f6fd08234d2695124f: Conditionally set unwind tables map size (#1074) (@javierhonduco)
    • 98910e58857dcd3ccba29dcbda780329a3771363: Lower the required memlock rlimit if dwarf unwinding is not enabled (#1080) (@kakkoyun)
    • 5df72b76380db04afec3e20172694378615243f8: Make sure we handle errors when config file path is specified (#1064) (@kakkoyun)
    • 9b55e15704c59811732e5893d66ad2bfbfc6f098: Merge pull request #1076 from javierhonduco/increase-unwind-table-shards (@javierhonduco)
    • f8fd85ea63fb6e715092ea9c52602642563561d2: Reduce the updates for unwind tables (#1083) (@kakkoyun)
    • 2f5ea4648a2e88752528272aca489a9480c5387d: Remove required rlimit for memlock (#1085) (@kakkoyun)

    Docker images

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

    Thanks!

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

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(209 bytes)
    kubernetes-manifest.yaml(5.75 KB)
    manifests.tar.gz(2.16 KB)
    openshift-manifest.yaml(5.48 KB)
    parca-agent_0.10.1_Linux_arm64.tar.gz(24.32 MB)
    parca-agent_0.10.1_Linux_x86_64.tar.gz(26.43 MB)
  • v0.10.0(Nov 23, 2022)

    Highlights

    • Migrate from cgroup profiling to system-wide profiling by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/627
    • Native stack walking with DWARF v1 by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/948
    • Native stack walking with DWARF v2 by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/978

    What's changed

    • target discovery: Close k8s resources by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/596
    • deploy: Remove kubernetes arch label restriction by @brancz in https://github.com/parca-dev/parca-agent/pull/607
    • deploy: Added a missing host path to the agent PodSecurityPolicy by @manojVivek in https://github.com/parca-dev/parca-agent/pull/612
    • chore(nix-shell): fix llvm by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/468
    • misc: Local dev fixes by @manojVivek in https://github.com/parca-dev/parca-agent/pull/626
    • deploy: Tolerate any taint by @brancz in https://github.com/parca-dev/parca-agent/pull/632
    • profiler: Fix race condition in the profile's buffer by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/641
    • profiler: Remove BPF stack helper error logging by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/643
    • profiler: Minor documentation fixes by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/647
    • docs: System-wide profiling related updates by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/649
    • profiler: Add cgroup name to the process metadata by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/651
    • Remove deprecated tmpdir flag by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/659
    • debuginfo: Increase exists cache size by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/662
    • feat: add snap packaging by @jnsgruk in https://github.com/parca-dev/parca-agent/pull/689
    • Add API for the kernel config checks by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/686
    • Refactor after and cleanup system-wide profiling changes by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/663
    • metadata: Add provider for compilers by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/695
    • pkg/kconfig: Check for BPF_JIT_DEFAULT_ON by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/701
    • cmd/parca-agent: Fix bearer token handling by @brancz in https://github.com/parca-dev/parca-agent/pull/706
    • symbolizer: Fix Kernel symbolication and improve performance by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/708
    • Ksym cache: Use a bounded cache by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/711
    • Remove force type asserts linter exclusions by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/713
    • pkg/profiler/cpu: Lower log level when failing to symbolize by @brancz in https://github.com/parca-dev/parca-agent/pull/716
    • pkg/perf: Clarify the not found error is about perf-maps by @brancz in https://github.com/parca-dev/parca-agent/pull/717
    • profiler/cpu: Preallocate samples slice by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/720
    • fix: ability to specify alt kernel config options by @jnsgruk in https://github.com/parca-dev/parca-agent/pull/734
    • Add time expiration on debuginfo cache by @Pryz in https://github.com/parca-dev/parca-agent/pull/721
    • perf: split perf-map and proc status not found errors by @Pryz in https://github.com/parca-dev/parca-agent/pull/756
    • fix: add more context to profile log messages by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/755
    • pkg/elfwriter: Update tests due to elfutils API changes by @marselester in https://github.com/parca-dev/parca-agent/pull/797
    • fix(file-writer): prefix file name with PID by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/804
    • fix(symbol): ignore ErrPerfMapNotFound error by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/805
    • revert: downgrade github.com/aquasecurity/libbpfgo to v0.3.0-libbpf-0.8.0 by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/827
    • pkg/debuginfo: Add debug info dirs as CLI argument by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/837
    • pkg/metrics: Add license header by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/859
    • cmd/parca-agent: add component pprof label by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/846
    • .eh_frame: Add DWARF unwind information parser by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/863
    • Add system metadata by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/858
    • pkg/objectfile: Add lint ignore for dup word by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/868
    • go.mod: Update delve by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/870
    • .eh_frame: Unwind table generation by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/867
    • Remove Rust/Aya-based toolchain by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/869
    • main: Do not exit if feature detection fails by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/875
    • fix(discovery): ensure systemd units which have disappeared are accounted for by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/834
    • kconfig: Add tried paths to the error message by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/877
    • build(eh-frame): build with osusergo by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/879
    • feat(ui): bring back target list by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/767
    • feat: support relabeling by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/887
    • Handle multiple .shstrtab sections in a file by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/894
    • test: Re-enable profiler/tests by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/895
    • pkg/agent: add writeRaw retries and overall latency metrics by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/888
    • kconfig: Mount required directories for kubernetes config by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/892
    • symbolizer: Allow partial symbolization by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/898
    • libbpf: Upgrade to libbpf v1.0.1 by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/901
    • Adjust snap package to use classic confinement by @jnsgruk in https://github.com/parca-dev/parca-agent/pull/918
    • .eh_frame: Add unwinding table tests by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/917
    • .eh_frame: Bubble up DWARF expressions and value registers by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/922
    • pkg/stack: Add benchmark for unwind table generation by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/925
    • pkg/metadata: Cache compiler metadata output by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/902
    • pkg/discovery: fix discovery manager startProvider log mistake by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/912
    • pkg/profiler/cpu: check if bpf program and map type are supported by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/930
    • pkg/ksym: Add benchmarks for the kernel symbolizer by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/931
    • pkg/metadata: add 'comm' label for process by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/932
    • feat(deploy): support agent config by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/907
    • feat: auto-reload configuration by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/906
    • feat: add simple health HTTP endpoints by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/963
    • feat: set default node name by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/972
    • elfwriter: Add test to check the preservation of links by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/980
    • refactor(discovery): use systemd D-Bus API by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/971
    • feat(metadata): cache label sets by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/960
    • elfwriter_test: Add all types in the symbol table by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/988
    • ui: Round time duration in Next Profile Started by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/989
    • *: Add ability to set memlock rlimit by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/990
    • .eh_frame: Reduce size of the stack aggregation key by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/996
    • .eh_frame: Initial ASLR support by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/997
    • .eh_frame: Shard unwind table by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/999
    • .eh_frame: Improve RBP handling by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1004
    • elfwriter-test: Clean the files by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/1005
    • *: Add flag to allow skipping stripping of binaries by @brancz in https://github.com/parca-dev/parca-agent/pull/1007
    • ci(e2e): simplify setup by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/1000
    • Improve the agent metrics and add native histograms by @metalmatze in https://github.com/parca-dev/parca-agent/pull/1010
    • metadata: Add missing container labels back by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1013
    • Reintroduce local temp state by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1017
    • debuginfo: Make debuginfo upload cache configurable by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1019
    • metadata: Refactor metadata provider by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1014
    • .eh_frame: Pass the right pidtgid to add_stacks by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1021
    • bpf: Ensure that the hashing code is unrolled by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1023
    • debuginfo: Add bounded concurrency for debuginfo uploads by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1020

    Changelog

    • 5593e45037e621fe1172e58f2ccd59da6e888b51: *: Add ability to set memlock rlimit (#990) (@kakkoyun)
    • d7cd2c5a1cb9a74e0da49378dd87e584f11ef2e5: *: Add flag to allow skipping stripping of binaries (#1007) (@brancz)
    • 6aeeb38cf9563e662d482af45fa3b62a9be91e80: .eh_frame/bpf: Add native stack unwinder in BPF for executables without (@javierhonduco)
    • 24d66f717970ae5a6a479f2261c93e4d785397df: .eh_frame/docs: Add eh_frame stack unwinding hacking docs (@javierhonduco)
    • f08143954a663c2e7d116adb611e83fb637b2de5: .eh_frame: Add .eh_frame/.debug_frame parser (@kakkoyun)
    • d6beafbd940d8466a201dc2b7e81f9c0de4911cc: .eh_frame: Add DWARF utilities (@javierhonduco)
    • 500650fdfa49fb23c0388e49937f47aa809bc115: .eh_frame: Add program to debug unwind tables (@javierhonduco)
    • d6c8535bae0f122d09f6b7ddb05294c20885aef3: .eh_frame: Add stack unwinding test data and test (#917) (@javierhonduco)
    • d83e33cb7c5e348cd37e86078a397392ee2e27a0: .eh_frame: Add the infrastructure for native stack unwinding with unwind (@javierhonduco)
    • 53eca1cfabdbb9be2cadfc8c999da747ad3af0cf: .eh_frame: Add unwind table implementation (@javierhonduco)
    • 3731aaeba9900668db686398003dfe3bc0090e81: .eh_frame: Bubble up DWARF expressions and value registers (#922) (@javierhonduco)
    • 143298255547cb8d4638f37d4a281bbfba9a0d62: .eh_frame: Carry over state in all advancelocations (@javierhonduco)
    • e15e026b9d82e77690a010befd1e8627847f711a: .eh_frame: Evaluate DWARF unwind instructions (@v-thakkar)
    • 853e782f641a28b5c3df40c3485a316d6d5c8786: .eh_frame: Fix remember and restore state (@javierhonduco)
    • 0cbd2f82e07fa534565e27c6f16d33a95f8f7324: .eh_frame: Fixes for the dwarf unwind information parser (@javierhonduco)
    • 76b5ca7764e5c5fbe23db56925a4db2ba02cb169: .eh_frame: Improve RBP handling (@javierhonduco)
    • 579a7de2de043e252e6bbe90fd189e27c5e57acf: .eh_frame: Pass the right pidtgid to add_stacks (@javierhonduco)
    • 5e51e930551d25f28809926ec99d84cef437c15f: .eh_frame: Reduce size of the stack aggregation key (@javierhonduco)
    • 03495a09be453e06b81ddfca8df4c9a5a8eb8834: .eh_frame: Reduce unwind table's row size (@javierhonduco)
    • ecb3924c1670d1f94e292f751284a83a3072c094: .eh_frame: Remove bpf_loop (@javierhonduco)
    • 507138d3da175f3429b4ddc75a90e3f5f95d4012: .eh_frame: Shard unwind table (#999) (@javierhonduco)
    • 217812b882926088347e4fa68fab83fb811cd0c1: .eh_frame: Store unwind information for every instruction (@javierhonduco)
    • 7346b3dd137bf305286cd872c52a213b175d3a0a: .eh_frame: Table generation fixes (@javierhonduco)
    • 07732ee957d103509a9220fc4dc5fbbb9af5a6eb: Add API for the kernel config checks (#686) (@v-thakkar)
    • 99d1c7927379775e328c9db0222dd6169db6a116: Add bounded concurrecy for debuginfo uploads (#1020) (@kakkoyun)
    • d3dcd97439e7dc3618de2441b337a79e410537c6: Add codeowners (#698) (@kakkoyun)
    • 8fa730659d58f068d5019953c7133df3d4ff8355: Add metadata provider for compilers (#695) (@kakkoyun)
    • 4d7c4e8de2141225afa7acb27968f8e527c50bf5: Add missing target groups for the process (@kakkoyun)
    • fc3fc001cffa22c2f100ce368cee026082b89258: Add native histograms for profiler attempts and symbolize durations (@metalmatze)
    • 0f2c9834ff151b45acc87d128062339edead2664: Add system metadata (@javierhonduco)
    • e23fb9b138934daca55e24bf91fb843a21f05abf: Add time expiration on debuginfo cache (#721) (@Pryz)
    • 3ad2cd570abdc66053dccbee568a4e5c01fb93d0: Add tried paths to kernel config check (#877) (@kakkoyun)
    • b3138d8abe2a1a4bf2a6fb02824bb1cdf8ddfe86: Added a missing host path to the agent psp (@manojVivek)
    • b1162cf6dc24c4b1b0dc7802dc36e1e5a497175b: Adjust snap package to use classic confinement (#918) (@jnsgruk)
    • 41c7a15ddd6d8a676cf897323f9c44ce1e4dbfe4: Allow partial symbolization (#898) (@kakkoyun)
    • 1698f26ba866804f980a01c0d65f71f5ccbd5daf: Close k8s resources (#596) (@kakkoyun)
    • 6eabe98f8718763dfc3737edbb210f81adb021d6: Combine profiler metrics into parca_agent_profiler_attempts_total (@metalmatze)
    • 1e9a07e5ab28b9f1c3ba1f4dbabe8111d30f8d7d: Fix (@maxbrunet)
    • dabf039d1e4f8cc3e10ae67456d23ff3365973f2: Fix docker socket issue (#595) (#598) (@kakkoyun)
    • de92bb657e968f2558638e9704508585d0e1b338: Fix linter issues (@kakkoyun)
    • 22277c3c9522f39e833f91602ccf1e5775bcf1bd: Handle multiple shstrtabs (#894) (@kakkoyun)
    • 1af24d4da32cc20a5262cdfba0929b1acb5d3a86: Local dev fixes (#626) (@manojVivek)
    • f5f241bbd17cb96482a605a24846fe6a1b443a10: Make sure profiles are merged by PID (@kakkoyun)
    • 4772d95145c9c15c02cf988359c04d516cbba9c7: Migrate from cgroup profiling to system-wide profiling (#627) (@javierhonduco)
    • 1ce2d9ac8796622d4059fc05887231c8e22ceab5: Mount required directories for kubernetes config (#892) (@kakkoyun)
    • 06a7ee9fa92a3fa14ee9d85857f267c250ce8a7b: Re-enable profiler/tests (#895) (@kakkoyun)
    • 0e07172cf5f53e2a6b0e087d5f4fb80ab6a60bf6: Refactor after and cleanup system-wide profiling changes (#663) (@kakkoyun)
    • 78481954d3087681b422bfc178f9a3ebbc41ddb6: Reintroduce local temp state and extract stripped debug info into filesystem (@kakkoyun)
    • 4ba5c0a1a0360294900d3f0854ff0f3452450ca8: Remove Rust/Aya-based toolchain (#869) (@kakkoyun)
    • b75e877710bcd2cab1b6fd8a3b62c23145237779: Remove debug-info (#653) (@kakkoyun)
    • 9490c39063333e824e5461e6c3d34371d5ffb6ff: Remove deprecated tmpdir flag (@javierhonduco)
    • 51a1008e3873d4d14150b300939468c176b067b2: Remove force type asserts linter exclusions (#713) (@javierhonduco)
    • 148d394c5b2c243b5b6cf15733d873024068e6ea: Unify naming of debuginfo (@kakkoyun)
    • ccf305a525fd3c3604eb6a6c968de5a6525f45ec: Update jsonnet dependencies (#636) (@kakkoyun)
    • fc13e6d7201af7535d5c2cd3b21b2580ca913a0a: Upgrade golangci-lint to 1.47.1 (#610) (@kakkoyun)
    • 3e23e94a6bf62b3961c200910b44bac4e3da3a48: pkg/metadata: add 'comm' label for process (#932) (@Sylfrena)
    • 5cefae0383a03e9e8448ac10ff7833fe18bb8b16: bpf: Ensure that hashing code is unrolled (@javierhonduco)
    • b3317c9ead4152d8289f1926935891328219e3fb: build(eh-frame): build with osusergo (#879) (@maxbrunet)
    • cbada34ca378fa3fc7b2acce84b0d43e7d9bdb51: chore(nix-shell): fix llvm (#468) (@maxbrunet)
    • edf9dfe6b6e9bcd78736e365dd16074035ec535c: cmd/parca-agent: Fix bearer token handling (@brancz)
    • 4ed0d979099cf8207d1bcdb4dbc5c42e34f4e614: cmd/parca-agent: add component pprof label (#846) (@heylongdacoder)
    • 8cb7469003cf8e41ab36b9f19da7067a912a70c4: debuginfo: Increase exists cache size (#662) (@javierhonduco)
    • 4e51a6d9f0ee65b7f351edc6d3392df288c45d05: debuginfo: Make debuginfo upload cache configurable (#1019) (@kakkoyun)
    • cc194674e539a30af3a807bbec02ae260ec377ed: deploy: Remove kubernetes arch label restriction (#607) (@brancz)
    • bcee23d8c036d9923d8d3c4b1e2f434403bcaa53: deploy: Tolerate any taint (#632) (@brancz)
    • d8fa44bd632e44c541872da672cf94623958fbdc: elfwriter-test: Clean the files (#1005) (@v-thakkar)
    • 4c452a6fb3752025b7c76014982f221b11633e8d: elfwriter: Add test to check the preservation of links (#980) (@v-thakkar)
    • be49dd15b966cd1d7a425274d6be5193f6b32174: elfwriter_test: Add all types in the symbol table (@v-thakkar)
    • c0ab79ade26f5f172dc1a8d6671f12376e87e0fe: feat(deploy): support agent config (#907) (@maxbrunet)
    • 7121d0dc5af836eba9a58173ae9333292f25a4d4: feat(metadata): cache label sets (#960) (@maxbrunet)
    • c869910ebe3ceb7e7f3d86062cf213031f2ab6a8: feat(ui): bring back target list (#767) (@maxbrunet)
    • 616aa75da66025b1da91ca0ed150126519695168: feat: add simple health HTTP endpoints (#963) (@maxbrunet)
    • 66839c0fe804ef65fbea21279988ad26dc806e82: feat: add snap packaging (#689) (@jnsgruk)
    • 91a6fa3959374c3899240d715f47d9c78211280d: feat: auto-reload configuration (#906) (@maxbrunet)
    • f1fa49c5f6a52222503af5d125c99164e78aadfe: feat: set default node name (#972) (@maxbrunet)
    • 62fda67e3f58ed4a58d315a845d8884ad2c93e59: feat: support relabeling (#887) (@maxbrunet)
    • 22d25e75e2e14c6f349dac3181d71d82cbaa9f1a: fix(discovery): ensure systemd units which have disappeared are accounted for (#834) (@maxbrunet)
    • e57c9d87ac845932cfbbe55c5e5b5c2650a8c8c1: fix(file-writer): prefix file name with PID (#804) (@maxbrunet)
    • 78837cd2d067b25c6b76c8e7dfc1b564784b6f98: fix(symbol): ignore ErrPerfMapNotFound error (#805) (@maxbrunet)
    • 33d38c8ca64ecdfbc46845d314fbbfefce285cfe: fix: ability to specify alt kernel config options (@jnsgruk)
    • 8590862a570471e1c98828481de07d2ec01d12da: fix: add more context to profile log messages (#755) (@maxbrunet)
    • d5d0fe41cf47db2d249ef631005dd78c67b110c0: fix: replace CONFIG_BPF_JIT_DEFAULT_ON (@jnsgruk)
    • 1ba7f87d8ab8ccdd17d87899b98aa2b4fc5a6b60: go.mod: Update delve (@javierhonduco)
    • dde0fc826e4262a56087ae7b3ab79bcab80c7c59: ksym: Use a bounded cache (@javierhonduco)
    • df55becc5d4e167969a11fb0e90fb9819346f1a5: libbpf: Upgrade to libbpf v1.0.1 (#901) (@javierhonduco)
    • d913c3cc10738b27bb903ef61280f07da01bf787: main: Do not exit if feature detection fails (#875) (@javierhonduco)
    • f66bb89155e1656d294d034e1abcb73997ff7fdc: metadata: Refactor metadata provider (#1014) (@kakkoyun)
    • 5d97b4fc7ae94a0e07cf0d7cd779b3be6d6e2dd3: perf: split perf-map and proc status not found errors (#756) (@Pryz)
    • 3b449db912c815d4cadcc27e2fde741d523f7dc7: pkg/agent: add writeRaw retries and overall latency metrics (#888) (@heylongdacoder)
    • 9141a5b901ab30252f48cacda89b30ba927e41a1: pkg/debuginfo: Add debug info dirs as CLI argument (@heylongdacoder)
    • 65d1a4588176bf4f72a5077cf89406a4fdb849bf: pkg/discovery: fix discovery manager startProvider log mistake (#912) (@heylongdacoder)
    • 13532d488a090cd021a16743a499dedfb53b5aa2: pkg/elfwriter: Update tests due to elfutils API changes (#797) (@marselester)
    • 8500b343b0a3fae45b8e2eef9e0c9efa032892ce: pkg/executable: Add ASLR check for PIE executables (@javierhonduco)
    • c6e205ad64f35a822ca2298c06607c4077617dda: pkg/kconfig: Check for BPF_JIT_DEFAULT_ON (@v-thakkar)
    • 04e2042436afe05bc5f76cbc58e50267a3d99c02: pkg/ksym: Add benchmarks for the kernel symbolizer (#931) (@javierhonduco)
    • 80c9a4ff6fe243cec42c3d00e450983ff87b9bfd: pkg/metadata: Cache compiler metadata output (#902) (@javierhonduco)
    • 48933a44165bd075b4ca0fbe53f5d0c048859fdd: pkg/metrics: Add license header (#859) (@javierhonduco)
    • 93deede1d4883c9a4632b5516919d9ff4863f2da: pkg/objectfile: Add lint ignore for dup word (@javierhonduco)
    • dd5e40d5969d3d0104294ebcc4a5a9ab36d964de: pkg/perf: Clarify the not found error is about perf-maps (@brancz)
    • df2214d8f2c9573e816613a3afbba497d73ce90b: pkg/profiler/cpu: Lower log level when failing to symbolize (#716) (@brancz)
    • 4ab2341857de53c935191775a9bf8a8214b00ba8: pkg/profiler/cpu: check if bpf program and map type are supported (#930) (@heylongdacoder)
    • 03ca59b60a1f4b6e49dd6f7a8ef6b602778ad05f: pkg/stack: Add benchmark unwind table generation (#925) (@javierhonduco)
    • 0d4f3102f590577d9145a0718f6cd409f92d22b4: profiler/cpu: Preallocate samples slice (@javierhonduco)
    • 2e115f73a71f003a006196f5df5c302b39d9c1ff: profiler/cpu: Reenable tests (@javierhonduco)
    • adb19eb92b5c089f9bfc3bb57e9d7f2d9a72fb9b: profiler: Add cgroup name to the process metadata (@javierhonduco)
    • c3308e2cf2a22b0af0b4bb0864f2dfd3dc2f9a11: profiler: Fix race condition in the profile's buffer (#641) (@javierhonduco)
    • 1e00bb8992e6282763ad8e492613fe9b3d610247: profiler: Minor documentation fixes (@javierhonduco)
    • 461f3286297be5a49eb8efca326143759cc86acb: profiler: Remove BPF stack helper error logging (#643) (@javierhonduco)
    • 63590da23bcdd03c93f80c9b690c4c1f0a984723: refactor(discovery): use systemd D-Bus API (#971) (@maxbrunet)
    • 125f2765a60e1465cd1a2070b550386d70f410ff: symbolizer: Fix Kernel symbolication and improve performance (#708) (@javierhonduco)
    • b5b0873c98219203201483f43789991195171500: ui:Round time duration in Next Profile Started (#989) (@Sylfrena)

    Docker images

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

    Thanks!

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

    New Contributors

    • @manojVivek made their first contribution in https://github.com/parca-dev/parca-agent/pull/612
    • @jnsgruk made their first contribution in https://github.com/parca-dev/parca-agent/pull/689
    • @Pryz made their first contribution in https://github.com/parca-dev/parca-agent/pull/721
    • @marselester made their first contribution in https://github.com/parca-dev/parca-agent/pull/797
    • @heylongdacoder made their first contribution in https://github.com/parca-dev/parca-agent/pull/837

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

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(209 bytes)
    kubernetes-manifest.yaml(5.75 KB)
    manifests.tar.gz(2.16 KB)
    openshift-manifest.yaml(5.48 KB)
    parca-agent_0.10.0_Linux_arm64.tar.gz(24.31 MB)
    parca-agent_0.10.0_Linux_x86_64.tar.gz(26.43 MB)
  • v0.10.0-rc.1(Nov 18, 2022)

    Changelog

    • 3dcac74e6c58cb52616250308b1cf3d5c13cb1b0: Add missing path prefixes to PodSecurityPolicy (#1033) (@kakkoyun)
    • 3c3daea09dfa9ef21ac1898d9107aa4991b394a1: Introduce debug-process-names and experimental-enable-dwarf-unwinding (#1034) (@kakkoyun)
    • 3287e99b8bc829aa716ee37bf4a5f241849e2b87: Make sure uploads do not block (#1040) (@kakkoyun)
    • 56bd74812df531a17e3ad4b356f1bb0f70d5eb5e: Parentheses are our friends (@kakkoyun)
    • 3467f51f61f41c9ffdf2ad7ca7b2409e8e8f42f0: Pin clang version (#1046) (@kakkoyun)
    • e127ebf5addfa089c77124abcbcb002db26ec994: Reduce systemd polling interval (#1043) (@kakkoyun)
    • b7d585810a4007f2357334c6acece12bd2f73650: Remove host port (#1032) (@kakkoyun)
    • 81252b172d8e60b61ec116276ce3daa586621840: Run actions on release branches (#1039) (@kakkoyun)
    • 96f6af007b3fe2009e4b2cb596f8617ff9125390: bpf: Reduce BPF map memory usage (@javierhonduco)
    • f6d6bab569a817ab3845aa9eb9ff5fc9f141812b: ci: fix snap build for tags (#1029) (@jnsgruk)

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.10.0-rc.1

    Thanks!

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

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(219 bytes)
    kubernetes-manifest.yaml(5.79 KB)
    manifests.tar.gz(2.17 KB)
    openshift-manifest.yaml(5.52 KB)
    parca-agent_0.10.0-rc.1_Linux_arm64.tar.gz(24.31 MB)
    parca-agent_0.10.0-rc.1_Linux_x86_64.tar.gz(26.43 MB)
  • v0.10.0-rc.0(Nov 15, 2022)

    Highlights

    • Migrate from cgroup profiling to system-wide profiling by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/627
    • Native stack walking with DWARF v1 by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/948
    • Native stack walking with DWARF v2 by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/978

    What's changed

    • target discovery: Close k8s resources by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/596
    • deploy: Remove kubernetes arch label restriction by @brancz in https://github.com/parca-dev/parca-agent/pull/607
    • deploy: Added a missing host path to the agent PodSecurityPolicy by @manojVivek in https://github.com/parca-dev/parca-agent/pull/612
    • chore(nix-shell): fix llvm by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/468
    • misc: Local dev fixes by @manojVivek in https://github.com/parca-dev/parca-agent/pull/626
    • deploy: Tolerate any taint by @brancz in https://github.com/parca-dev/parca-agent/pull/632
    • profiler: Fix race condition in the profile's buffer by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/641
    • profiler: Remove BPF stack helper error logging by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/643
    • profiler: Minor documentation fixes by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/647
    • docs: System-wide profiling related updates by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/649
    • profiler: Add cgroup name to the process metadata by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/651
    • Remove deprecated tmpdir flag by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/659
    • debuginfo: Increase exists cache size by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/662
    • feat: add snap packaging by @jnsgruk in https://github.com/parca-dev/parca-agent/pull/689
    • Add API for the kernel config checks by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/686
    • Refactor after and cleanup system-wide profiling changes by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/663
    • metadata: Add provider for compilers by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/695
    • pkg/kconfig: Check for BPF_JIT_DEFAULT_ON by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/701
    • cmd/parca-agent: Fix bearer token handling by @brancz in https://github.com/parca-dev/parca-agent/pull/706
    • symbolizer: Fix Kernel symbolication and improve performance by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/708
    • Ksym cache: Use a bounded cache by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/711
    • Remove force type asserts linter exclusions by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/713
    • pkg/profiler/cpu: Lower log level when failing to symbolize by @brancz in https://github.com/parca-dev/parca-agent/pull/716
    • pkg/perf: Clarify the not found error is about perf-maps by @brancz in https://github.com/parca-dev/parca-agent/pull/717
    • profiler/cpu: Preallocate samples slice by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/720
    • fix: ability to specify alt kernel config options by @jnsgruk in https://github.com/parca-dev/parca-agent/pull/734
    • Add time expiration on debuginfo cache by @Pryz in https://github.com/parca-dev/parca-agent/pull/721
    • perf: split perf-map and proc status not found errors by @Pryz in https://github.com/parca-dev/parca-agent/pull/756
    • fix: add more context to profile log messages by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/755
    • pkg/elfwriter: Update tests due to elfutils API changes by @marselester in https://github.com/parca-dev/parca-agent/pull/797
    • fix(file-writer): prefix file name with PID by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/804
    • fix(symbol): ignore ErrPerfMapNotFound error by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/805
    • revert: downgrade github.com/aquasecurity/libbpfgo to v0.3.0-libbpf-0.8.0 by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/827
    • pkg/debuginfo: Add debug info dirs as CLI argument by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/837
    • pkg/metrics: Add license header by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/859
    • cmd/parca-agent: add component pprof label by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/846
    • .eh_frame: Add DWARF unwind information parser by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/863
    • Add system metadata by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/858
    • pkg/objectfile: Add lint ignore for dup word by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/868
    • go.mod: Update delve by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/870
    • .eh_frame: Unwind table generation by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/867
    • Remove Rust/Aya-based toolchain by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/869
    • main: Do not exit if feature detection fails by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/875
    • fix(discovery): ensure systemd units which have disappeared are accounted for by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/834
    • kconfig: Add tried paths to the error message by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/877
    • build(eh-frame): build with osusergo by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/879
    • feat(ui): bring back target list by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/767
    • feat: support relabeling by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/887
    • Handle multiple .shstrtab sections in a file by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/894
    • test: Re-enable profiler/tests by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/895
    • pkg/agent: add writeRaw retries and overall latency metrics by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/888
    • kconfig: Mount required directories for kubernetes config by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/892
    • symbolizer: Allow partial symbolization by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/898
    • libbpf: Upgrade to libbpf v1.0.1 by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/901
    • Adjust snap package to use classic confinement by @jnsgruk in https://github.com/parca-dev/parca-agent/pull/918
    • .eh_frame: Add unwinding table tests by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/917
    • .eh_frame: Bubble up DWARF expressions and value registers by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/922
    • pkg/stack: Add benchmark for unwind table generation by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/925
    • pkg/metadata: Cache compiler metadata output by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/902
    • pkg/discovery: fix discovery manager startProvider log mistake by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/912
    • pkg/profiler/cpu: check if bpf program and map type are supported by @heylongdacoder in https://github.com/parca-dev/parca-agent/pull/930
    • pkg/ksym: Add benchmarks for the kernel symbolizer by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/931
    • pkg/metadata: add 'comm' label for process by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/932
    • feat(deploy): support agent config by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/907
    • feat: auto-reload configuration by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/906
    • feat: add simple health HTTP endpoints by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/963
    • feat: set default node name by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/972
    • elfwriter: Add test to check the preservation of links by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/980
    • refactor(discovery): use systemd D-Bus API by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/971
    • feat(metadata): cache label sets by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/960
    • elfwriter_test: Add all types in the symbol table by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/988
    • ui: Round time duration in Next Profile Started by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/989
    • *: Add ability to set memlock rlimit by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/990
    • .eh_frame: Reduce size of the stack aggregation key by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/996
    • .eh_frame: Initial ASLR support by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/997
    • .eh_frame: Shard unwind table by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/999
    • .eh_frame: Improve RBP handling by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1004
    • elfwriter-test: Clean the files by @v-thakkar in https://github.com/parca-dev/parca-agent/pull/1005
    • *: Add flag to allow skipping stripping of binaries by @brancz in https://github.com/parca-dev/parca-agent/pull/1007
    • ci(e2e): simplify setup by @maxbrunet in https://github.com/parca-dev/parca-agent/pull/1000
    • Improve the agent metrics and add native histograms by @metalmatze in https://github.com/parca-dev/parca-agent/pull/1010
    • metadata: Add missing container labels back by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1013
    • Reintroduce local temp state by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1017
    • debuginfo: Make debuginfo upload cache configurable by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1019
    • metadata: Refactor metadata provider by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1014
    • .eh_frame: Pass the right pidtgid to add_stacks by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1021
    • bpf: Ensure that the hashing code is unrolled by @javierhonduco in https://github.com/parca-dev/parca-agent/pull/1023
    • debuginfo: Add bounded concurrency for debuginfo uploads by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/1020

    Changelog

    • 5593e45037e621fe1172e58f2ccd59da6e888b51: *: Add ability to set memlock rlimit (#990) (@kakkoyun)
    • d7cd2c5a1cb9a74e0da49378dd87e584f11ef2e5: *: Add flag to allow skipping stripping of binaries (#1007) (@brancz)
    • 6aeeb38cf9563e662d482af45fa3b62a9be91e80: .eh_frame/bpf: Add native stack unwinder in BPF for executables without (@javierhonduco)
    • 24d66f717970ae5a6a479f2261c93e4d785397df: .eh_frame/docs: Add eh_frame stack unwinding hacking docs (@javierhonduco)
    • f08143954a663c2e7d116adb611e83fb637b2de5: .eh_frame: Add .eh_frame/.debug_frame parser (@kakkoyun)
    • d6beafbd940d8466a201dc2b7e81f9c0de4911cc: .eh_frame: Add DWARF utilities (@javierhonduco)
    • 500650fdfa49fb23c0388e49937f47aa809bc115: .eh_frame: Add program to debug unwind tables (@javierhonduco)
    • d6c8535bae0f122d09f6b7ddb05294c20885aef3: .eh_frame: Add stack unwinding test data and test (#917) (@javierhonduco)
    • d83e33cb7c5e348cd37e86078a397392ee2e27a0: .eh_frame: Add the infrastructure for native stack unwinding with unwind (@javierhonduco)
    • 53eca1cfabdbb9be2cadfc8c999da747ad3af0cf: .eh_frame: Add unwind table implementation (@javierhonduco)
    • 3731aaeba9900668db686398003dfe3bc0090e81: .eh_frame: Bubble up DWARF expressions and value registers (#922) (@javierhonduco)
    • 143298255547cb8d4638f37d4a281bbfba9a0d62: .eh_frame: Carry over state in all advancelocations (@javierhonduco)
    • e15e026b9d82e77690a010befd1e8627847f711a: .eh_frame: Evaluate DWARF unwind instructions (@v-thakkar)
    • 853e782f641a28b5c3df40c3485a316d6d5c8786: .eh_frame: Fix remember and restore state (@javierhonduco)
    • 0cbd2f82e07fa534565e27c6f16d33a95f8f7324: .eh_frame: Fixes for the dwarf unwind information parser (@javierhonduco)
    • 76b5ca7764e5c5fbe23db56925a4db2ba02cb169: .eh_frame: Improve RBP handling (@javierhonduco)
    • 579a7de2de043e252e6bbe90fd189e27c5e57acf: .eh_frame: Pass the right pidtgid to add_stacks (@javierhonduco)
    • 5e51e930551d25f28809926ec99d84cef437c15f: .eh_frame: Reduce size of the stack aggregation key (@javierhonduco)
    • 03495a09be453e06b81ddfca8df4c9a5a8eb8834: .eh_frame: Reduce unwind table's row size (@javierhonduco)
    • ecb3924c1670d1f94e292f751284a83a3072c094: .eh_frame: Remove bpf_loop (@javierhonduco)
    • 507138d3da175f3429b4ddc75a90e3f5f95d4012: .eh_frame: Shard unwind table (#999) (@javierhonduco)
    • 217812b882926088347e4fa68fab83fb811cd0c1: .eh_frame: Store unwind information for every instruction (@javierhonduco)
    • 7346b3dd137bf305286cd872c52a213b175d3a0a: .eh_frame: Table generation fixes (@javierhonduco)
    • 07732ee957d103509a9220fc4dc5fbbb9af5a6eb: Add API for the kernel config checks (#686) (@v-thakkar)
    • 99d1c7927379775e328c9db0222dd6169db6a116: Add bounded concurrecy for debuginfo uploads (#1020) (@kakkoyun)
    • d3dcd97439e7dc3618de2441b337a79e410537c6: Add codeowners (#698) (@kakkoyun)
    • 8fa730659d58f068d5019953c7133df3d4ff8355: Add metadata provider for compilers (#695) (@kakkoyun)
    • 4d7c4e8de2141225afa7acb27968f8e527c50bf5: Add missing target groups for the process (@kakkoyun)
    • fc3fc001cffa22c2f100ce368cee026082b89258: Add native histograms for profiler attempts and symbolize durations (@metalmatze)
    • 0f2c9834ff151b45acc87d128062339edead2664: Add system metadata (@javierhonduco)
    • e23fb9b138934daca55e24bf91fb843a21f05abf: Add time expiration on debuginfo cache (#721) (@Pryz)
    • 3ad2cd570abdc66053dccbee568a4e5c01fb93d0: Add tried paths to kernel config check (#877) (@kakkoyun)
    • b3138d8abe2a1a4bf2a6fb02824bb1cdf8ddfe86: Added a missing host path to the agent psp (@manojVivek)
    • b1162cf6dc24c4b1b0dc7802dc36e1e5a497175b: Adjust snap package to use classic confinement (#918) (@jnsgruk)
    • 41c7a15ddd6d8a676cf897323f9c44ce1e4dbfe4: Allow partial symbolization (#898) (@kakkoyun)
    • 1698f26ba866804f980a01c0d65f71f5ccbd5daf: Close k8s resources (#596) (@kakkoyun)
    • 6eabe98f8718763dfc3737edbb210f81adb021d6: Combine profiler metrics into parca_agent_profiler_attempts_total (@metalmatze)
    • 1e9a07e5ab28b9f1c3ba1f4dbabe8111d30f8d7d: Fix (@maxbrunet)
    • dabf039d1e4f8cc3e10ae67456d23ff3365973f2: Fix docker socket issue (#595) (#598) (@kakkoyun)
    • de92bb657e968f2558638e9704508585d0e1b338: Fix linter issues (@kakkoyun)
    • 22277c3c9522f39e833f91602ccf1e5775bcf1bd: Handle multiple shstrtabs (#894) (@kakkoyun)
    • 1af24d4da32cc20a5262cdfba0929b1acb5d3a86: Local dev fixes (#626) (@manojVivek)
    • f5f241bbd17cb96482a605a24846fe6a1b443a10: Make sure profiles are merged by PID (@kakkoyun)
    • 4772d95145c9c15c02cf988359c04d516cbba9c7: Migrate from cgroup profiling to system-wide profiling (#627) (@javierhonduco)
    • 1ce2d9ac8796622d4059fc05887231c8e22ceab5: Mount required directories for kubernetes config (#892) (@kakkoyun)
    • 06a7ee9fa92a3fa14ee9d85857f267c250ce8a7b: Re-enable profiler/tests (#895) (@kakkoyun)
    • 0e07172cf5f53e2a6b0e087d5f4fb80ab6a60bf6: Refactor after and cleanup system-wide profiling changes (#663) (@kakkoyun)
    • 78481954d3087681b422bfc178f9a3ebbc41ddb6: Reintroduce local temp state and extract stripped debug info into filesystem (@kakkoyun)
    • 4ba5c0a1a0360294900d3f0854ff0f3452450ca8: Remove Rust/Aya-based toolchain (#869) (@kakkoyun)
    • b75e877710bcd2cab1b6fd8a3b62c23145237779: Remove debug-info (#653) (@kakkoyun)
    • 9490c39063333e824e5461e6c3d34371d5ffb6ff: Remove deprecated tmpdir flag (@javierhonduco)
    • 51a1008e3873d4d14150b300939468c176b067b2: Remove force type asserts linter exclusions (#713) (@javierhonduco)
    • 148d394c5b2c243b5b6cf15733d873024068e6ea: Unify naming of debuginfo (@kakkoyun)
    • ccf305a525fd3c3604eb6a6c968de5a6525f45ec: Update jsonnet dependencies (#636) (@kakkoyun)
    • fc13e6d7201af7535d5c2cd3b21b2580ca913a0a: Upgrade golangci-lint to 1.47.1 (#610) (@kakkoyun)
    • 3e23e94a6bf62b3961c200910b44bac4e3da3a48: pkg/metadata: add 'comm' label for process (#932) (@Sylfrena)
    • 5cefae0383a03e9e8448ac10ff7833fe18bb8b16: bpf: Ensure that hashing code is unrolled (@javierhonduco)
    • b3317c9ead4152d8289f1926935891328219e3fb: build(eh-frame): build with osusergo (#879) (@maxbrunet)
    • cbada34ca378fa3fc7b2acce84b0d43e7d9bdb51: chore(nix-shell): fix llvm (#468) (@maxbrunet)
    • edf9dfe6b6e9bcd78736e365dd16074035ec535c: cmd/parca-agent: Fix bearer token handling (@brancz)
    • 4ed0d979099cf8207d1bcdb4dbc5c42e34f4e614: cmd/parca-agent: add component pprof label (#846) (@heylongdacoder)
    • 8cb7469003cf8e41ab36b9f19da7067a912a70c4: debuginfo: Increase exists cache size (#662) (@javierhonduco)
    • 4e51a6d9f0ee65b7f351edc6d3392df288c45d05: debuginfo: Make debuginfo upload cache configurable (#1019) (@kakkoyun)
    • cc194674e539a30af3a807bbec02ae260ec377ed: deploy: Remove kubernetes arch label restriction (#607) (@brancz)
    • bcee23d8c036d9923d8d3c4b1e2f434403bcaa53: deploy: Tolerate any taint (#632) (@brancz)
    • d8fa44bd632e44c541872da672cf94623958fbdc: elfwriter-test: Clean the files (#1005) (@v-thakkar)
    • 4c452a6fb3752025b7c76014982f221b11633e8d: elfwriter: Add test to check the preservation of links (#980) (@v-thakkar)
    • be49dd15b966cd1d7a425274d6be5193f6b32174: elfwriter_test: Add all types in the symbol table (@v-thakkar)
    • c0ab79ade26f5f172dc1a8d6671f12376e87e0fe: feat(deploy): support agent config (#907) (@maxbrunet)
    • 7121d0dc5af836eba9a58173ae9333292f25a4d4: feat(metadata): cache label sets (#960) (@maxbrunet)
    • c869910ebe3ceb7e7f3d86062cf213031f2ab6a8: feat(ui): bring back target list (#767) (@maxbrunet)
    • 616aa75da66025b1da91ca0ed150126519695168: feat: add simple health HTTP endpoints (#963) (@maxbrunet)
    • 66839c0fe804ef65fbea21279988ad26dc806e82: feat: add snap packaging (#689) (@jnsgruk)
    • 91a6fa3959374c3899240d715f47d9c78211280d: feat: auto-reload configuration (#906) (@maxbrunet)
    • f1fa49c5f6a52222503af5d125c99164e78aadfe: feat: set default node name (#972) (@maxbrunet)
    • 62fda67e3f58ed4a58d315a845d8884ad2c93e59: feat: support relabeling (#887) (@maxbrunet)
    • 22d25e75e2e14c6f349dac3181d71d82cbaa9f1a: fix(discovery): ensure systemd units which have disappeared are accounted for (#834) (@maxbrunet)
    • e57c9d87ac845932cfbbe55c5e5b5c2650a8c8c1: fix(file-writer): prefix file name with PID (#804) (@maxbrunet)
    • 78837cd2d067b25c6b76c8e7dfc1b564784b6f98: fix(symbol): ignore ErrPerfMapNotFound error (#805) (@maxbrunet)
    • 33d38c8ca64ecdfbc46845d314fbbfefce285cfe: fix: ability to specify alt kernel config options (@jnsgruk)
    • 8590862a570471e1c98828481de07d2ec01d12da: fix: add more context to profile log messages (#755) (@maxbrunet)
    • d5d0fe41cf47db2d249ef631005dd78c67b110c0: fix: replace CONFIG_BPF_JIT_DEFAULT_ON (@jnsgruk)
    • 1ba7f87d8ab8ccdd17d87899b98aa2b4fc5a6b60: go.mod: Update delve (@javierhonduco)
    • dde0fc826e4262a56087ae7b3ab79bcab80c7c59: ksym: Use a bounded cache (@javierhonduco)
    • df55becc5d4e167969a11fb0e90fb9819346f1a5: libbpf: Upgrade to libbpf v1.0.1 (#901) (@javierhonduco)
    • d913c3cc10738b27bb903ef61280f07da01bf787: main: Do not exit if feature detection fails (#875) (@javierhonduco)
    • f66bb89155e1656d294d034e1abcb73997ff7fdc: metadata: Refactor metadata provider (#1014) (@kakkoyun)
    • 5d97b4fc7ae94a0e07cf0d7cd779b3be6d6e2dd3: perf: split perf-map and proc status not found errors (#756) (@Pryz)
    • 3b449db912c815d4cadcc27e2fde741d523f7dc7: pkg/agent: add writeRaw retries and overall latency metrics (#888) (@heylongdacoder)
    • 9141a5b901ab30252f48cacda89b30ba927e41a1: pkg/debuginfo: Add debug info dirs as CLI argument (@heylongdacoder)
    • 65d1a4588176bf4f72a5077cf89406a4fdb849bf: pkg/discovery: fix discovery manager startProvider log mistake (#912) (@heylongdacoder)
    • 13532d488a090cd021a16743a499dedfb53b5aa2: pkg/elfwriter: Update tests due to elfutils API changes (#797) (@marselester)
    • 8500b343b0a3fae45b8e2eef9e0c9efa032892ce: pkg/executable: Add ASLR check for PIE executables (@javierhonduco)
    • c6e205ad64f35a822ca2298c06607c4077617dda: pkg/kconfig: Check for BPF_JIT_DEFAULT_ON (@v-thakkar)
    • 04e2042436afe05bc5f76cbc58e50267a3d99c02: pkg/ksym: Add benchmarks for the kernel symbolizer (#931) (@javierhonduco)
    • 80c9a4ff6fe243cec42c3d00e450983ff87b9bfd: pkg/metadata: Cache compiler metadata output (#902) (@javierhonduco)
    • 48933a44165bd075b4ca0fbe53f5d0c048859fdd: pkg/metrics: Add license header (#859) (@javierhonduco)
    • 93deede1d4883c9a4632b5516919d9ff4863f2da: pkg/objectfile: Add lint ignore for dup word (@javierhonduco)
    • dd5e40d5969d3d0104294ebcc4a5a9ab36d964de: pkg/perf: Clarify the not found error is about perf-maps (@brancz)
    • df2214d8f2c9573e816613a3afbba497d73ce90b: pkg/profiler/cpu: Lower log level when failing to symbolize (#716) (@brancz)
    • 4ab2341857de53c935191775a9bf8a8214b00ba8: pkg/profiler/cpu: check if bpf program and map type are supported (#930) (@heylongdacoder)
    • 03ca59b60a1f4b6e49dd6f7a8ef6b602778ad05f: pkg/stack: Add benchmark unwind table generation (#925) (@javierhonduco)
    • 0d4f3102f590577d9145a0718f6cd409f92d22b4: profiler/cpu: Preallocate samples slice (@javierhonduco)
    • 2e115f73a71f003a006196f5df5c302b39d9c1ff: profiler/cpu: Reenable tests (@javierhonduco)
    • adb19eb92b5c089f9bfc3bb57e9d7f2d9a72fb9b: profiler: Add cgroup name to the process metadata (@javierhonduco)
    • c3308e2cf2a22b0af0b4bb0864f2dfd3dc2f9a11: profiler: Fix race condition in the profile's buffer (#641) (@javierhonduco)
    • 1e00bb8992e6282763ad8e492613fe9b3d610247: profiler: Minor documentation fixes (@javierhonduco)
    • 461f3286297be5a49eb8efca326143759cc86acb: profiler: Remove BPF stack helper error logging (#643) (@javierhonduco)
    • 63590da23bcdd03c93f80c9b690c4c1f0a984723: refactor(discovery): use systemd D-Bus API (#971) (@maxbrunet)
    • 125f2765a60e1465cd1a2070b550386d70f410ff: symbolizer: Fix Kernel symbolication and improve performance (#708) (@javierhonduco)
    • b5b0873c98219203201483f43789991195171500: ui:Round time duration in Next Profile Started (#989) (@Sylfrena)

    Docker images

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

    Thanks!

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

    New Contributors

    • @manojVivek made their first contribution in https://github.com/parca-dev/parca-agent/pull/612
    • @jnsgruk made their first contribution in https://github.com/parca-dev/parca-agent/pull/689
    • @Pryz made their first contribution in https://github.com/parca-dev/parca-agent/pull/721
    • @marselester made their first contribution in https://github.com/parca-dev/parca-agent/pull/797
    • @heylongdacoder made their first contribution in https://github.com/parca-dev/parca-agent/pull/837

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

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(219 bytes)
    kubernetes-manifest.yaml(5.78 KB)
    manifests.tar.gz(2.16 KB)
    openshift-manifest.yaml(5.51 KB)
    parca-agent_0.10.0-rc.0_Linux_arm64.tar.gz(24.29 MB)
    parca-agent_0.10.0-rc.0_Linux_x86_64.tar.gz(26.41 MB)
  • 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(Jun 9, 2022)

  • 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.8.0(May 13, 2022)

    Changelog

    • ec1c9555e17b5252d96a482e1b062d5d8122bf86: *: Enable more linters (#361) (@kakkoyun)
    • cd505c930a513fd0456352b9d9dfa3ed2e643621: .gitattributes: Mark some files as gen / 3rd party (@javierhonduco)
    • 71029b5d18e46e42caadc02e68db3d1622bc512b: Add Golang build information (#341) (@javierhonduco)
    • 955219848a4c0dbabe80ba1302e2197953069f11: Add an action to build dynamically (@kakkoyun)
    • 8f7bb91e457dae01fbcc74d45ae8c976d20121f8: Add delve to dev container (@kakkoyun)
    • 22a5b3fd874401630d7650b24982e182a3897190: Add maintainers doc (@kakkoyun)
    • a475d90eaf9f23f044d1ae150e8b993de302a93b: Address review issues (@kakkoyun)
    • 14fc8ba8ab121d4f5ad0bacfe25f301916ee9b25: Address review issues (@kakkoyun)
    • 9881214c65e8b689e9245cceaf3d83cdeaf7e959: Avoid double freeing BPF resources (@javierhonduco)
    • 6a65eba36cee342524c02e186acafaa07da01bbb: Configure goreleaser (@kakkoyun)
    • 7d9639b55a5f2acfbf5792e88ef5bb89de6547ac: Documentation: Update outdated links (@v-thakkar)
    • e7cc74503f11e7f77682fa0828e30d72c526e9b8: Fix data write issue (@kakkoyun)
    • 2677ab1e236ef2c4232cdaf677a6bd8e41903374: Fix error handling (@kakkoyun)
    • 6d8c3164dd12244d6a6569b5addc7581eee2eb44: Fix linter issues (@kakkoyun)
    • 664b455e636b783870dd15adc8bbc0a1203463ea: Fix typo (@kakkoyun)
    • 31253527651ebebb74c6200eb68fe9251479ed6b: Format our C code (@javierhonduco)
    • c81003de395ed72e257710c37f388b20f607b674: Increase rlimit (@kakkoyun)
    • 37b0cd01dfb436ee2857853cf384ebbde3dd52fa: Keep track of stack unwinding failures (@kakkoyun)
    • 0d9abc14a1b4c7d634f06b7992a761c5918092ca: Makefile: add asan build flag (@javierhonduco)
    • 369062a874ee137c857722e8009a7dcb80904f63: Makefile: remove unused GOPKGS variable (@javierhonduco)
    • 67603dfa45872a32b5b01982840c03965eae450d: Merge branch 'ebpf_batch' of github.com:parca-dev/parca-agent into ebpf_batch (@kakkoyun)
    • e9e0ac5821d1d501b2ab29e1ff0f078feeeafd5a: Merge branch 'main' into ebpf_batch (@kakkoyun)
    • ff69ca1e5ed9b22ee37bf48b11a8412489991630: Merge branch 'main' into ebpf_batch (@kakkoyun)
    • f95f89e69e2904d0bb813cecf9221dc486f6275c: Merge branch 'main' into ebpf_batch (@kakkoyun)
    • bbafe10412a384b64d252f24fdec90d6e3a1e1e2: Merge pull request #327 from javierhonduco/make-clean-do-not-fail-on-rm (@kakkoyun)
    • 6a2791b73d18e70fb13c8fb94c4be3659cb2f7e6: Merge pull request #329 from v-thakkar/deprecated_api (@kakkoyun)
    • 6b92f56c63fa315366dca46c747819584d0f67cc: Merge pull request #330 from v-thakkar/doc_update (@kakkoyun)
    • e9e7118425099f627791126d8a146cdb1467f3be: Merge pull request #335 from parca-dev/dependabot/github_actions/actions/upload-artifact-3 (@kakkoyun)
    • 65dcc3e4823462987478d36e753edf6d75b00b33: Merge pull request #336 from parca-dev/dependabot/github_actions/actions/setup-go-3 (@kakkoyun)
    • bcde06bb0e69ee76c8c06013d28f3aae78ce1dd2: Merge pull request #340 from kakkoyun/upgrade_backoff (@kakkoyun)
    • fa2861ccce611df0ec34f1cd97d3affbe1f74756: Merge pull request #342 from javierhonduco/run-clang-format (@kakkoyun)
    • a512db9cb7ca069e105e81aaf23cfe67b032025f: Merge pull request #343 from kakkoyun/clean_bpf_resources (@kakkoyun)
    • a02cbe2ed3087dd9797854ba3679089843990fc4: Merge pull request #344 from kakkoyun/use_buffer_pool (@kakkoyun)
    • 1e935f4d5f7b4484f6cf3d4ee26340f3718ff37d: Merge pull request #345 from kakkoyun/increase_rlimit (@kakkoyun)
    • 64b003e6921fbc4bb924cce58b284a2e93032218: Merge pull request #347 from javierhonduco/add-metadata-to-bpf (@kakkoyun)
    • b5b04b60769fa5843ca3e465542ac0377b2f4145: Merge pull request #348 from kakkoyun/add_delve_docker_dev (@kakkoyun)
    • d26f948252add68346e0c95afac1a3b126a1175f: Merge pull request #349 from javierhonduco/make-containers-go-1.18 (@kakkoyun)
    • ac3870adfd6b397458eb163543956a06c98cf032: Merge pull request #351 from kakkoyun/statically_linked_bins (@kakkoyun)
    • 45c8c57249cf567fb6f9688b25cc9d8b8a6aa859: Merge pull request #352 from kakkoyun/read_write_bin (@kakkoyun)
    • 0c05f0048b6773011bcbeeb26221e6e8cadb5e0e: Merge pull request #353 from parca-dev/dependabot/docker/golang-1.18.1-bullseye (@kakkoyun)
    • 8e48635876d16ff846c1fa32f3bbb340fb67b2fd: Merge pull request #354 from kakkoyun/keep_track_of_stack_unwinding (@kakkoyun)
    • 56dfc4c1633452baced2eaa88eea6dc462de286c: Merge pull request #357 from javierhonduco/rm-make-gopkgs (@kakkoyun)
    • 8f589289bb432e0dd64b85750af95d4f72c09fe1: Merge pull request #358 from kakkoyun/upgrade_prom_common (@kakkoyun)
    • cec09cbd15e4819c253818f9f9f09cf0da8d4dd2: Merge pull request #367 from javierhonduco/double-freeing-of-resources (@kakkoyun)
    • e7fb679ee96e85a9fcc32aa65f2d333d0c498465: Merge pull request #369 from javierhonduco/fix-index-out-of-range (@kakkoyun)
    • d2e701c26706dd8b8460753044104bc259ec9e1e: Merge pull request #370 from javierhonduco/dev-asan (@kakkoyun)
    • 3c363fe468532c5bd116cda021063a0ca6227126: Merge pull request #371 from parca-dev/dependabot/go_modules/google.golang.org/grpc-1.46.0 (@kakkoyun)
    • 235c0617746aab5fb7909c7d17af1559a54ef6f2: Merge pull request #372 from parca-dev/dependabot/github_actions/github/codeql-action-2 (@kakkoyun)
    • 80e9cb0df9ae987900b85f8e41150af7ade275cb: Merge pull request #373 from javierhonduco/clean-debuginfo-stripped (@kakkoyun)
    • e119451254077c1bdf32ed0b191cadb9b9dea53b: Merge pull request #374 from parca-dev/dependabot/go_modules/github.com/containerd/containerd-1.6.3 (@kakkoyun)
    • 040daf400406a7b38321789d4f5d2efa4f6f6a18: Merge pull request #376 from kakkoyun/faster_go_tester (@metalmatze)
    • d9d4bd0bea961ff242aa591fcbc2ed3cf94c0e9c: Merge pull request #378 from javierhonduco/linguist-exclude-gen-paths (@kakkoyun)
    • 3c502dcce1ad6bcf83663b4b6a57d4b845572c75: Merge pull request #381 from javierhonduco/bump-libbpfgo (@kakkoyun)
    • 0451df207d0c50ba1f97f2e64849ea2bec97cc19: Merge pull request #382 from parca-dev/dependabot/go_modules/k8s.io/client-go-0.24.0 (@kakkoyun)
    • 74257c6b42286ac47154537e961005ecc89d0f4e: Merge pull request #383 from parca-dev/dependabot/go_modules/k8s.io/cri-api-0.24.0 (@kakkoyun)
    • 057a85b926592f4412d6590928cf9eebf2ae0e04: Merge pull request #386 from parca-dev/dependabot/go_modules/github.com/containerd/containerd-1.6.4 (@kakkoyun)
    • d462035f236d4b7e8341a912973bd2eb12a09a75: Merge pull request #387 from javierhonduco/ksym-cache-hit-rate-stats (@brancz)
    • e56ee06a1d9df941081a30f25cbc0373430b6912: Merge pull request #389 from javierhonduco/remove-extra-word-in-debug-log (@kakkoyun)
    • adde72187ed097ce0379097da6c8a371b167beee: Merge pull request #392 from kakkoyun/governance (@kakkoyun)
    • b29cdb47eba7e3d7e1346665c2538f2c1991e798: Merge pull request #394 from parca-dev/ebpf_batch (@kakkoyun)
    • 70590cccf98de5d5e721d2d557f1eb9650d5bf6a: Merge pull request #395 from javierhonduco/ebpf_batch (@kakkoyun)
    • 3e168add8a57dbb67cb788292e20b1feaa11ed3d: Merge pull request #396 from parca-dev/dependabot/go_modules/github.com/docker/docker-20.10.15incompatible (@kakkoyun)
    • 4c45b9ffead9480b7ded03db7009d5c3d5edaf51: Merge pull request #401 from javierhonduco/update-cgroup-discovery-naming (@kakkoyun)
    • 28544aca36680d3ed0f05e9e1ec9cd89062ccedd: Merge pull request #403 from parca-dev/revert-394-ebpf_batch (@kakkoyun)
    • 71bf0c8c0011e37c11f66838a5a7c574783b9172: Produce statically linked binaries (@kakkoyun)
    • 16eee2a717e27126333a212bee8b1c7fa81ee5db: Properly free and clean resources (@kakkoyun)
    • 72dd9ae440679f11ac84bed7a7b962187e453e09: Refactor profileLoop (@kakkoyun)
    • cb505501278fc28493ccc8c319789a355ef25da4: Remove dynamically linked libraries from the container (@kakkoyun)
    • d13a525cf7aac429e23b08cfeb83941641af5312: Remove the use of deprecated bpf_map_def (@v-thakkar)
    • a9cc68593fde797bb4a859c0c09d7d9c251a62e3: Revert "profiler: Use BPF batch operations " (@kakkoyun)
    • 527497c1ef07a5fdf1593d8b1f8257af7753e034: Run c/fmt as part of make format and installclang-format` in CI (@javierhonduco)
    • 166f5ca3aa5383fe4b13ff8519113cdbc3c833e7: Update to Go 1.18 (#360) (@javierhonduco)
    • aca9f5da0c65e3bb60d37dd93bad6ea3e180bbeb: Upgrade Parca version for dev (@kakkoyun)
    • 24da26162a78c6c747b61a9263acb059ae7deb64: Upgrade backoff package (@kakkoyun)
    • 477c5be478fc3c569a2987d5ebe84b44d8cf0a93: Upgrade parca (@kakkoyun)
    • 72db4e7c77413580cb4338586c7b8226d0630864: Upgrade prometheus/common (@kakkoyun)
    • 6c74e9f2217ebdeaa06b6877dc083bd947121b38: Use a buffer pool for write profiles (@kakkoyun)
    • 4e80b0231a7798e54a3bdc7a8de31c26f22491f7: Use the constant for the resource identifier (@kakkoyun)
    • a0558dd7b88600481330bf09cb55621bc56a34e7: Utilize libbpf batch APIs (@kakkoyun)
    • a64c4bb2732cb5fcd47ba37ee7cf696dc240d9ad: bpf: Add some basic metadata (@javierhonduco)
    • 7dbcce35e076ae3642e98916354e1298ee8d0e76: build(deps): bump actions/setup-go from 2 to 3 (@dependabot[bot])
    • ed7493620b96c8c6241cfe40a0faa1904be240c6: build(deps): bump actions/upload-artifact from 2 to 3 (@dependabot[bot])
    • 8e5248d2cb2d96863c3517c6866c6612044fcb35: build(deps): bump github.com/containerd/containerd from 1.6.2 to 1.6.3 (@dependabot[bot])
    • 8ae6ab095e3c182763432ea9dc0b7e7fb8d47a5f: build(deps): bump github.com/containerd/containerd from 1.6.3 to 1.6.4 (@dependabot[bot])
    • d1d90aa02110a2af202c3837fb7f1f8ee479e12a: build(deps): bump github.com/docker/docker (@dependabot[bot])
    • c9171087433ad303f1a0c87f55a66c59e8c616fe: build(deps): bump github/codeql-action from 1 to 2 (@dependabot[bot])
    • 8571f1ba8acf924a0ace1e412f8edad7bd9ea27a: build(deps): bump golang from 1.18.0-bullseye to 1.18.1-bullseye (@dependabot[bot])
    • 5e64c9a25dc4cccfe26eefbde51b803cdbd8fa4d: build(deps): bump google.golang.org/grpc from 1.45.0 to 1.46.0 (@dependabot[bot])
    • 35c4a3ad24393bab5bdc635ea50e915631d2b931: build(deps): bump k8s.io/client-go from 0.23.5 to 0.23.6 (#365) (@dependabot[bot])
    • 06c376d4d39d0673cd7b4a5cbcae852e48b5c46a: build(deps): bump k8s.io/client-go from 0.23.6 to 0.24.0 (@dependabot[bot])
    • 06b6c3de502db1e5b74f79ca256d0f5d2f20c91e: build(deps): bump k8s.io/cri-api from 0.23.5 to 0.23.6 (#363) (@dependabot[bot])
    • e2891dc6da059336e39b731e3b684b52b128b847: build(deps): bump k8s.io/cri-api from 0.23.6 to 0.24.0 (@dependabot[bot])
    • b1898ced0ef10c95c0dab89aa4e16c85d652a646: cmd/parca-agent: SystemD => Cgroup (@javierhonduco)
    • f47861be6dad3e7554f47f3fdfbd3a01a414d433: debuginfo: Remove extra word in log message (@javierhonduco)
    • 91af04c151d7904efaad0376b88bd672737d4cad: debuginfo: remove .debuginfo.stripped binaries (@javierhonduco)
    • 98b929b0803c3588f93102c178eb0da34535b94a: ksym: Calculate cache hit rate (@javierhonduco)
    • c9c0801baf7887df29d21398eea0b72112abc639: libbpfgo: Bump to latest version (@javierhonduco)
    • 22407b0331578b7b2dffeecaf57a2fcd2f1e9fb4: make-containers.sh: Update images to go v1.18.1 (@javierhonduco)
    • 95abc369307d89bd3e1ae7319c1ab429025bc648: makefile: do not show errors while removing bpf files (@javierhonduco)
    • ee705fb468e2413f0f10514e6055a5b376fd0a50: profiler: Add libbpfgo map tests (@javierhonduco)
    • bc0e1297f73f0e9ac48bf9cb0f8ebca27e770b2a: profiler: Batch API fixes (@javierhonduco)
    • 9a3d30f8ead5de39a14eea8ef7a7897a61c6fa30: profiler: Fix index out of range (@javierhonduco)

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.8.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.05 KB)
    openshift-manifest.yaml(5.00 KB)
    parca-agent_0.8.0_Linux_x86_64.tar.gz(34.07 MB)
  • v0.7.0(Mar 31, 2022)

    Highlights

    • go.*: Update to lastest Parca to sync debuginfo client changes by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/322
    • debuginfo/find: Improve separate debug file discovery by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/321
    • debuginfo: Fix minor issues by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/324

    Changelog

    • a785b806e3f237ae9d494d60acc77e265c1d1890: Add additional look up directories for separate debug files (@kakkoyun)
    • a6f30eca2e532541967df2b308592e86f545c14c: Add checksum checking for gnu_debuglink (@kakkoyun)
    • 95a145495bed063f4452e1bb191945360338be26: Add support for .gnu_debuglink section (@kakkoyun)
    • e8d5ead69ec11d6c478e13e9e6ccdf6edd93fa84: Fix jsonnet action (@kakkoyun)
    • 0c75dc960f9046d1e49bedc3a09d07504dcf580f: Fix minor logging inconsistency (@kakkoyun)
    • b5f7dbf0479d9813d60c1901b01e256ea538a989: Fix temp dir issues (@kakkoyun)
    • 1ad5182c8301d294fa52997d42380ba10fd12ef2: Update local tilt manifests (@kakkoyun)
    • f9bdf4fb094a7aa18f46ec8b52a891c93ff48712: Update the latest parca (@kakkoyun)
    • 5577c9b83c00c17c3b4afd4472708e934cbde6cd: Update to lastest Parca to sync debuginfo client changes (@kakkoyun)
    • c9a2649604d5705eb1f569da0ba38062e29be935: Upgrade prometheus/common (@kakkoyun)

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.6.1...v0.7.0

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.7.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.05 KB)
    openshift-manifest.yaml(5.00 KB)
    parca-agent_0.7.0_Linux_x86_64.tar.gz(31.61 MB)
  • v0.6.1(Mar 29, 2022)

    Highlights

    • pkg/discovery: Sanitize kubernetes pod label names by @brancz in https://github.com/parca-dev/parca-agent/pull/316
    • pkg/target: Add functionality for using specified sampling ratio by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/299
    • discovery: Sanitize Kubernetes label names by @brancz in https://github.com/parca-dev/parca-agent/pull/318

    Changelog

    • abf05dc18a8073b114a3afd843c931dd9f7ec5a0: Merge pull request #299 from parca-dev/add-sampling-ratio (@brancz)
    • 30f81b1520b50a1520e34fa28266d5bdaf95a219: Merge pull request #316 from parca-dev/sanitize-label-names (@kakkoyun)
    • 3b825ad3f73b308094f6db760891422d7db9b847: Merge pull request #318 from parca-dev/sanitize-label-names-v2 (@brancz)
    • ac6398ffbad7f62886a5429401bd7a3e6d7684e5: discovery: Sanitize Kubernetes label names (@brancz)
    • 5410fd5547d6758407850bb2ff9a164a21f8cd88: pkg/discovery: Sanitize kubernetes pod label names (@brancz)
    • 8b4a72a66e87332bf44e4a10780c5d0d67434589: pkg/target: Add functionality for using specified sampling ratio (@Sylfrena)

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.6.0...v0.6.1

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.6.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.6.1_Linux_x86_64.tar.gz(31.62 MB)
  • v0.6.0(Mar 25, 2022)

    Highlights

    • Upgrade to libbpf 0.6.1 and libbpfgo v0.2.4 by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/224
    • Add exponential backoff to profile writes and debuginfo upload by @metalmatze in https://github.com/parca-dev/parca-agent/pull/247
    • deploy: Version bump parca by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/258
    • jsonnet: Fix pod label selector config by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/259
    • Add multiarch container builds by @brancz in https://github.com/parca-dev/parca-agent/pull/261
    • pkg/profiler: add deregistration for counter metric by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/262
    • pkg/maps: Skip more pseudo-paths and anonymous mappings by @mrueg in https://github.com/parca-dev/parca-agent/pull/266
    • Add support for Position Independent Code by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/252
    • discovery: Support systems without systemd by @xiu in https://github.com/parca-dev/parca-agent/pull/269
    • Upgrade libbpf to 7.0.0 by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/272
    • Add a flag to disable sending debug info to Parca server by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/274
    • Add TTL to exists response cache by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/282
    • Fix local debuginfo file discovery by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/291
    • debuginfo: Fix cache configuration issue by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/300
    • debuginfo: Change the order of debuginfo file discovery by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/305
    • debuginfo: Implement file hash to debug info API calls by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/312
    • feat: add configurable ticker duration by @me-diru in https://github.com/parca-dev/parca-agent/pull/309
    • pkg/discovery: Expose shared labels by @Sylfrena in https://github.com/parca-dev/parca-agent/pull/311

    New Contributors

    • @mrueg made their first contribution in https://github.com/parca-dev/parca-agent/pull/225
    • @xiu made their first contribution in https://github.com/parca-dev/parca-agent/pull/269
    • @me-diru made their first contribution in https://github.com/parca-dev/parca-agent/pull/309

    Full Changelog: https://github.com/parca-dev/parca-agent/compare/v0.5.0...v0.6.0

    Changelog

    • 5128f509753c6ae999a989543e567c16fa088f89: *: Enable revive and gofumpt linters (#251) (@kakkoyun)
    • 9fc64176e2630371d00d922ff29ecc72422ae227: .github: Fix container registry login (@brancz)
    • 551a70f3fda7502b528251a758ebc25f3cb8c856: Add Object File (@kakkoyun)
    • f1fc5a4cb02fb56fe0c7068d4d61157a2eaeda44: Add TTL to exists response cache (#282) (@kakkoyun)
    • 6828acd93ccef1e46af18b944e4b64e653118608: Add a flag to disable sending debug info to Parca server (@kakkoyun)
    • 77c25dd08dfab03bfb636704cca85d6a6cf71a03: Add exponential backoff to profile writes and debuginfo upload (@metalmatze)
    • e37ccfb2bc762943c11f1371bb33b324156e3887: Add multiarch container builds (@brancz)
    • 5f5bdd1ac1a5fa76366271f1589375e3724f2d14: Add normalized to the batch client (@kakkoyun)
    • e92a9f64e927f97254d7a3ffcbd87adcae0edc54: Add tests (@kakkoyun)
    • df16bb4630baba1ad5bb271678fb9b6a3d48c911: Apply suggestions from code review (@Sylfrena)
    • d4d4c10fb189591ee1ed205ab45e4be2c5f9f9b5: Change C format styling to LLVM (@kakkoyun)
    • 44aea2b91c5067795ed5e87ce80ba3280f67b843: Change the order of debuginfo file discovery (@kakkoyun)
    • 3a451b1d4db12d4ffb5dc5bb62a12d6606c75099: Clean up (@kakkoyun)
    • 0823b3baa275d35e925a9d77d550d5e6d44ed1ea: Conform the changes in the WriteRaw API (@kakkoyun)
    • 94c51bb95aeacc4331b806366ca96c8664089374: Dockerfile: Use --no-install-recommends (@mrueg)
    • 70466463d300e9f3870bc81322924f49d002c2e6: Exclude vendored dependencies from licence check (@kakkoyun)
    • 1973e853c9696754e814d2ffdf62f296b4f7961a: Fix cache configuration issue (@kakkoyun)
    • da4ed60a67193af7a7bad40b68863e61ea048de0: Fix failing jsonnet actions (@kakkoyun)
    • a07d3b0ef076d2bb2bf0f47ac6fbd2fca55116db: Fix go modules (@kakkoyun)
    • ff872f449ea39ae9d37988bbc4162e905f955db0: Fix goreleaser (@kakkoyun)
    • 06c49632968d822e902836a119108d0983f6673d: Fix issues (@kakkoyun)
    • ecfc16ae698fb857bc41c061be30e6fb86888243: Fix local debuginfo file discovery (@kakkoyun)
    • 5261a30260503447ee1c2f5b41291bca37c0fa20: Fix login issue for release action (@kakkoyun)
    • 5f20aebfbeca5b2b3acadb81335cd1bfdada88cd: Fix minor issues (@kakkoyun)
    • 96ed03030eed4f3bffb5e6a97b818f1d1f7d4d9c: Fix object file cache key issue (@kakkoyun)
    • 032bd8f54906d63920e07784276e3652919c64b4: Fix pod label selector config (@kakkoyun)
    • 286a19299a1cd333adf13c492fb8b44a578fe20f: Implement file hash to debug info API calls (@kakkoyun)
    • 081486bbb86c7c94e9f98628ac1ec0a3a6d09522: Integrate object file (@kakkoyun)
    • b469b53d25e91a9bd8b68c74b4ba71090c477b15: Makefile: Ensure pushing all images of manifest with podman (@brancz)
    • e56bc3b81066259432a8a79f5ff34c267ff62e68: Makefile: Fix pushing container manifests (@mrueg)
    • 9896582d42c6d15a10380e3e474b9fe5c52ef04d: Makefile: use -C instead of cd (@mrueg)
    • 8a9a0e85ca7984a033519f345f046548b4eebd82: Only run jsonnet task when needed (@kakkoyun)
    • e8afc39e6c19f9cb1fa2684a150ae85068d3de6b: Reduce noisy logging (@kakkoyun)
    • dd829a68b569f40119412f1ca40326580db68895: Refactor code for readability (@kakkoyun)
    • d0a63dc1fcdbf7bf8793cbfb4e38cfe9e58daf5e: Refactor debuginfo package (@kakkoyun)
    • c8868c8d5edf2be0d85e9da566f87d7320326fc4: Set minikube resources slightly more reasonable (@metalmatze)
    • 65afdb4dd253e0980a12c60163e88782b9523430: Tiltfile: Add new internal/ folder to list of Docker dependencies (@metalmatze)
    • 8c5bdb9371f2dc28faf32af983143fbc2dd40d9d: Trigger github (@kakkoyun)
    • 45c06f256a7a792e9b807104b55b67485fcc5af7: Try to address review issues (@kakkoyun)
    • 142a52dca94dc4a65ab6bd065f04589852bb91c8: Upgrade dependencies (@kakkoyun)
    • 3ff4a8905762715b04e55c7bc94f1675380e4d23: Upgrade golangci-lint (@kakkoyun)
    • 02adcdac1a88f8ecf11aa5f42c94184f372b0f32: Upgrade libbpf to 7.0.0 (@kakkoyun)
    • fcad50cc571c6fdc967259ef87edb155b278ed0a: Upgrade pprof (@kakkoyun)
    • 28ebf66b226693164c3fef6d9dc30554bf2746ce: Upgrade to latest Parca (@kakkoyun)
    • 7c2443c86b449a637137a12134a8f0ac4e8c2a3a: Upgrade to latest Parca (@kakkoyun)
    • 946bf8b0021ef2de4efb2fceb5ed7e913c77792e: Upgrade to libbpf 0.6.1 and libbpfgo v0.2.4 (#224) (@kakkoyun)
    • c68cb739d71bdc44dbd080430cf9d963a60cb93f: Use correct go version for actions (@kakkoyun)
    • 5a2d35a2aa66ce277d71c2d76d0bdfb51280d48b: Version bump parca (@kakkoyun)
    • b8d222107e57aa170123e9c8377081a7ad46d9a1: build(deps): bump actions/cache from 2 to 3 (@dependabot[bot])
    • 20cf96c23630b1c2408236f0132161c636b73908: build(deps): bump actions/checkout from 2 to 3 (@dependabot[bot])
    • 9a9a96ed4257f17c75c9d97fd1b1dccf23b5bd8a: build(deps): bump github.com/alecthomas/kong from 0.3.0 to 0.4.0 (@dependabot[bot])
    • d529b0fd2e8b2d29a81a423b4c5660f8c28162f5: build(deps): bump github.com/alecthomas/kong from 0.4.0 to 0.4.1 (@dependabot[bot])
    • 3e8d643f271181a0ac9ba3446ebddf3fceb9aeb6: build(deps): bump github.com/alecthomas/kong from 0.4.1 to 0.5.0 (@dependabot[bot])
    • 8dc65678c2275bd73e5bf202b445215afb406b64: build(deps): bump github.com/containerd/cgroups from 1.0.2 to 1.0.3 (@dependabot[bot])
    • 6d7bac77df7f645a4a5649fe5f06d415a3ca33af: build(deps): bump github.com/containerd/containerd from 1.6.0 to 1.6.1 (@dependabot[bot])
    • 9acb3023a5542df659320a3fd6cae7ae8a03f583: build(deps): bump github.com/containerd/containerd from 1.6.0 to 1.6.1 (@dependabot[bot])
    • 965d08174dc0ad9acd3b9a9ae833221ac75bc9e2: build(deps): bump github.com/docker/docker (@dependabot[bot])
    • 6ab2adaa0332c4825b879723ef49a8cc6ab28a99: build(deps): bump github.com/docker/docker (@dependabot[bot])
    • 06afeb36c96e49071c6ad13e96b143a00d4cfd99: build(deps): bump github.com/prometheus/client_golang (@dependabot[bot])
    • 97c845961a09c69fb2cc941d3464f2fe2384c9e1: build(deps): bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (@dependabot[bot])
    • 3f8befd5d8c43785c2d1c2b809f17eb5b10c2c9e: build(deps): bump golang from 1.17.6-bullseye to 1.17.7-bullseye (@dependabot[bot])
    • a568f1f84a5fd26349c0b8681291c367af8c931d: build(deps): bump golang from 1.17.7-bullseye to 1.17.8-bullseye (@dependabot[bot])
    • 1efec3ae398ed76b99af97461e2a7c74e25a589f: build(deps): bump golang from 1.17.8-bullseye to 1.18.0-bullseye (@dependabot[bot])
    • 71e2de0c1843a186d3fa001c487b98eb1ae25f58: build(deps): bump google.golang.org/grpc from 1.43.0 to 1.44.0 (#226) (@dependabot[bot])
    • 8e957984e7242b199bd28c47662a7682d11aabdc: build(deps): bump google.golang.org/grpc from 1.44.0 to 1.45.0 (@dependabot[bot])
    • 2955d26df5b813e70de083925937d0f504d8008c: build(deps): bump k8s.io/api from 0.23.2 to 0.23.3 (#230) (@dependabot[bot])
    • 216eeb06b8ab79b00d3fad600623ab240d461ec3: build(deps): bump k8s.io/apimachinery from 0.23.4 to 0.23.5 (@dependabot[bot])
    • a0be1a71861806629bb1f2e0cc2c91548e4183c4: build(deps): bump k8s.io/client-go from 0.23.2 to 0.23.3 (#228) (@dependabot[bot])
    • c1ca46c6018cfab27b3c9d69ff888f328fa933a7: build(deps): bump k8s.io/client-go from 0.23.3 to 0.23.4 (@dependabot[bot])
    • a749cf565bea5af5dc80f5f5cef10a577decbddb: build(deps): bump k8s.io/client-go from 0.23.4 to 0.23.5 (@dependabot[bot])
    • b69d886e85d3251ba7300955f9fa8c13f081146c: build(deps): bump k8s.io/cri-api from 0.23.2 to 0.23.3 (#229) (@dependabot[bot])
    • b86e8c52ce548545fcac643931119e71c34270a9: build(deps): bump k8s.io/cri-api from 0.23.3 to 0.23.4 (@dependabot[bot])
    • dcdc16d0375c6f8fac38cdf05d563ce9e0de0915: build(deps): bump k8s.io/cri-api from 0.23.4 to 0.23.5 (@dependabot[bot])
    • b1f73df609fcc1a686db37573113489c37249d3f: contributing.md: Add Parca discord link (@Sylfrena)
    • 069b49dd51494909cfece5213642b9420215246c: discovery: Support systems without systemd (@xiu)
    • d3262cd470a62ff09b7f05c6f50745d3908f9e9b: feat: add configurable ticker duration (@me-diru)
    • ab711edcb80983753550c763d0f63637d08bd73b: pkg/discovery: Expose shared labels (#311) (@Sylfrena)
    • 8b20676af50c0d887e00a208c935a6b95ff63426: pkg/maps: Skip more pseudo-paths and anonymous mappings (@mrueg)
    • 9d37ad7eff5c71d519e3b111679b68e645c586f7: pkg/profiler: Change metric description (#253) (@Sylfrena)
    • e94c36799a313324dbe4fb680ec4b519659a2e14: pkg/profiler: unregister counter metric (@Sylfrena)
    • 1401dd86cf21c686f925aea289b16a6d68671bd6: profiler: Add labels for stack type (@Sylfrena)
    • 54d8842bcb9a3a0ab688f9a7b9db3fd9a39eb810: profiler: Expose missing profile stacks count as a prometheus metric (@Sylfrena)
    • 0815626232fe0e6222d105c7b62594b0f355a434: profiler: Pass registry to constructor (@Sylfrena)

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.6.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.05 KB)
    openshift-manifest.yaml(5.00 KB)
    parca-agent_0.6.0_Linux_x86_64.tar.gz(31.61 MB)
  • v0.5.0(Jan 20, 2022)

    Higlights

    • pkg/containerutils/containerd: Automatically discover k3s containerd by @brancz in https://github.com/parca-dev/parca-agent/pull/210
    • pkg/agent: Fix accidental infinite retry by @brancz in https://github.com/parca-dev/parca-agent/pull/212
    • Downgrade libbpf-go by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/221

    Changelog

    • 8194f69526c0e47b86fe4e858724d4d27c664dbe: Clean unintentionally checked in file (@kakkoyun)
    • 272d7a720b2c1d0c9da3a4930819f020013c29ab: Downgrade libbpf-go (#221) (@kakkoyun)
    • 303f63832f1d92c6a102714349589bd8249b8c3d: Merge pull request #212 from parca-dev/fix-accidental-retry (@brancz)
    • 103a791d0fb71124742b4445e4415fb69bb7fa36: Merge pull request #218 from kakkoyun/clean_obj (@brancz)
    • 7d0864da65375b9c8c4fffa815da75179dc0f18b: Merge pull request #219 from kakkoyun/pin_libbpf (@brancz)
    • c02edadbf6aab72cc9d9a8e465bfa1265a623987: Merge pull request #220 from kakkoyun/upgrad_parca_ver_tilt (@brancz)
    • 3e67f13b38bfcb8d960fc9feca3350497dcb4b3f: Pin libbpf version (@kakkoyun)
    • d9f4fd53a4ce98cc8c4b36a9aba304c433fdb1f8: Upgrade local env manifests (@kakkoyun)
    • cdef63a6bad991e1fe1e990731e090e980fb84d6: build(deps): bump 3rdparty/libbpf from 7c382f0 to be89b28 (#209) (@dependabot[bot])
    • e63575539b93ef55048929e2126b83c506685da6: build(deps): bump github.com/prometheus/client_golang (#211) (@dependabot[bot])
    • 1a3b0fbc74355a003a72aa8abb42d329b91e854b: build(deps): bump k8s.io/apimachinery from 0.23.1 to 0.23.2 (#217) (@dependabot[bot])
    • 433779305d362e617d587fed7a73ce3e7ab32740: build(deps): bump k8s.io/client-go from 0.23.1 to 0.23.2 (#214) (@dependabot[bot])
    • acd6607411f1947edf4d3d80a6276e245f217ad4: build(deps): bump k8s.io/cri-api from 0.23.1 to 0.23.2 (#215) (@dependabot[bot])
    • 43b1cd28012ec84279b3a453d194354c534aa18a: pkg/agent: Fix accidental infinite retry (@brancz)
    • cc28f621a81c9b0a887c9d7b33c45dd122f5ad52: pkg/containerutils/containerd: Automatically discover k3s containerd (#210) (@brancz)

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

    Docker images

    docker pull ghcr.io/parca-dev/parca-agent:v0.5.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.05 KB)
    openshift-manifest.yaml(5.00 KB)
    parca-agent_0.5.0_Linux_x86_64.tar.gz(29.96 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.5(Sep 29, 2021)

    What's Changed

    • pkg/template: Fix title in the templates by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/46
    • *: Upload generated manifests as artifacts/assets without checking them in VC by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/45
    • .github/actions: Fix typo by @kakkoyun in https://github.com/parca-dev/parca-agent/pull/47

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

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(112 bytes)
    kubernetes-manifest.yaml(3.01 KB)
    manifests.tar.gz(1.48 KB)
    openshift-manifest.yaml(3.60 KB)
    parca-agent_0.0.1-alpha.5_Linux_x86_64.tar.gz(19.24 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)
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 13 Oct 24, 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 113 Nov 23, 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 291 Dec 30, 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 665 Dec 29, 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 1.1k Dec 28, 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 15 Nov 9, 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++ 6k Jan 4, 2023
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 133 Dec 29, 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 79 Dec 18, 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 113 Nov 28, 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.7k Jan 9, 2023
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 168 Jan 8, 2023
skbtracer on ebpf

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

DavadDi 54 Dec 30, 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 11 Aug 4, 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 8 Nov 19, 2022
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 54 Jan 3, 2023