Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Luajit stack unwinder #2784

Closed
wants to merge 32 commits into from
Closed

Luajit stack unwinder #2784

wants to merge 32 commits into from

Conversation

gnurizen
Copy link
Contributor

No description provided.

@gnurizen gnurizen force-pushed the lua-proto branch 3 times, most recently from e5be82d to 092587d Compare May 15, 2024 14:14
@gnurizen gnurizen changed the title lua wip luajit stack unwinder May 15, 2024
@gnurizen gnurizen force-pushed the lua-proto branch 12 times, most recently from ca8be6e to eeec130 Compare May 22, 2024 15:09
@gnurizen gnurizen force-pushed the lua-proto branch 6 times, most recently from 7cfe2d8 to dbbcf60 Compare June 12, 2024 19:31
@gnurizen gnurizen force-pushed the lua-proto branch 4 times, most recently from 4fb0f28 to 80d6c59 Compare June 22, 2024 23:48
@gnurizen gnurizen changed the title luajit stack unwinder Luajit stack unwinder Jul 1, 2024
brancz added a commit that referenced this pull request Aug 8, 2024
#2958)

As discussed on the maintainers mailing list, this is the Parca Agent
based on the
[open-telemetry/opentelemetry-ebpf-profiler](https://github.com/open-telemetry/opentelemetry-ebpf-profiler).

The projects have identical goals, so it makes sense to just have
everyone pull on the same string and keep the tight integration and
extensions that are special to the Parca project as a thick wrapper
around it.

This change includes several large changes, most prominently:

* **Apache Arrow-based protocol**: A new Parca-native Apache Arrow-based
protocol that is significantly more efficient than what was previously
used. It is cheaper to produce, cheaper to consume by a server, and less
bytes on the wire.
* **Metadata relabeling**: It introduces Prometheus-style relabeling for
metadata. Parca Agent no longer adds all metadata it can find, which
previously resulted in overwhelming amounts of metadata automatically
being attached to profiling data. Using relabeling users can choose
exactly what metadata is valuable to them, and also use relabeling to
selectively choose which profiling data to potentially drop.

While the Parca Agent already supported native unwinding with
[DWARF](https://www.polarsignals.com/blog/posts/2022/11/29/dwarf-based-stack-walking-using-ebpf)
(x86 and
[arm64](https://www.polarsignals.com/blog/posts/2023/10/17/profiling-arm64-with-ebpf-in-parca-agent)),
[Python,
Ruby](https://www.polarsignals.com/blog/posts/2023/10/04/profiling-python-and-ruby-with-ebpf),
and many more, by using the opentelemetry-ebpf-profiler under the hood,
it gains JVM, PHP, Perl, and .NET support. We've also been working on
[LuaJIT support](#2784),
which we plan to upstream to the opentelemetry-ebpf-profiler. We're also
working on upstreaming our custom labels support, which among other
things, [allows correlating with distributed tracing
data](https://www.polarsignals.com/blog/posts/2024/03/05/correlating-tracing-with-profiling-using-ebpf).

Since this has already been discussed on the maintainers mailing list,
I'm going to merge this right away, and then we'll work on finishing
everything up for a release.
@gnurizen gnurizen closed this Oct 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant