pyroscope-rs
trippy
pyroscope-rs | trippy | |
---|---|---|
6 | 18 | |
129 | 3,030 | |
5.4% | - | |
7.5 | 9.8 | |
19 days ago | 5 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pyroscope-rs
- Show HN: Pyroscope-rs, a multi-language profiler built with Rust
-
Ask HN: What Are You Working On? (August 2022)
A general purpose profiler: https://github.com/pyroscope-io/pyroscope-rs
If someone is interested in this space, feel free to reach me!
-
Rust Is Portable
I feel some of the OP points. I was working on a profiling agent lately, and one of the issues was running it on multiple platforms (just the four big ones linux/mac-x86/arm) on FFI (because it'll be run directly from python/ruby/etc...) and preferably having the thing just work without having to install or configure any dependencies.
Like OP I hit two walls: libunwind, and linking. For libunwind, I ended up downloading/compiling manually; and for linking there is auditwheel[1]. Although it is a Python tool, I did actually end up using for Ruby (by creating a "fake python package", and then copying the linked dependencies).
It was at that time that I learned about linking for dynamic libraries, patchelf and there is really no single/established tool to do this. I thought there should be something but most people seem to install the dependencies with any certain software. I also found, the hard way, that you still have to deal with gcc/c when working with Rust. It does isolate you from many stuff, but for many things there is no work around.
There is a performance hit to this strategy, however, since shared dynamic libraries will be used by all the running programs that need them; whereas my solution will run its own instance. It made me wonder if wasm will come up with something similar without affecting portability.
Finally, the project is open source and you can browse the code here: https://github.com/pyroscope-io/pyroscope-rs
[1]: https://github.com/pypa/auditwheel
-
Pyroscope Profiler 0.5 released
Version 0.5 is now live!: https://github.com/pyroscope-io/pyroscope-rs
-
What's everyone working on this week (17/2022)?
Working on https://github.com/pyroscope-io/pyroscope-rs A profiling solution for Rust and other languages.
-
Rust support for continuous profiling added in Pyroscope v0.10.2
Thanks to the maintainers at pprof-rs for helping us figure out how we can modify their profiler to create our rust agent (https://github.com/pyroscope-io/pyroscope-rs).
trippy
-
Apnic: Cgnat is harming internet innovation (2022)
[3] https://github.com/fujiapple852/trippy/issues/1104
- FLaNK Stack Weekly 11 Dec 2023
-
Trippy – A Network Diagnostic Tool
You are right that showing packet loss for intermediate hops is a frequent source of confusion.
Rather than leave it out, I added a status column which shows different statuses for intermediate hops (blue if the hop responds to less than 100% of probes and brown if it responds to 0%) vs the target hop (amber and red).
Where this breaks down is when dealing with ECMP for UDP & TCP tracing, as a given hop (ttl) may represent the target for a given round of tracing but not for the next. The mistake, imho, is to associate _any_ data with a hop (ttl) rather than the hop in the context of a tracing flow.
That is why Trippy had a number of features aimed at helping with ECMP, such as Paris and Dublin tracing, and the ability to filter tracing by unique flow id. I've covered these quite a bit in the 0.8.0 [0] and 0.9.0 [1] release notes if you want to know more.
[0] https://github.com/fujiapple852/trippy/releases/tag/0.8.0
- Trippy: A Network Diagnostic Tool
- Trippy: Network Diagnostic Tool
-
Trippy 0.9.0 Release
Tracing flows: breakdown complex UDP/TCP ECMP traces into individual flows (i.e. common network path); render a chart of flows in GraphViz DOT format (example)
-
[Media] Introducing Trippy: A Network Diagnostic Tool
u/queiss_ the 0.8.0 release note has a section covering this, but the TL;DR is:
What are some alternatives?
pprof-rs - A Rust CPU profiler implemented with the help of backtrace-rs
mtr - Official repository for mtr, a network diagnostic tool
weaver - API tool,but egui style and rusty
pingapi - Ping API for piracy.moe
bazel-buildfarm - Bazel remote caching and execution service
bongo - A cross-platform MongoDB dashboard CLI Viewer
oxide - Teach your PostgreSQL database how to speak MongoDB Wire Protocol
mezura - A fairly fast, fairly accurate and very customizable stats generator and growth tracker, for programming projects, in the form of a CLI executable, written in Rust.
reframe - LeapTable 🦘- The fastest way to build, deploy, and manage LLM-powered agents on tabular data (dataframes, SQL tables and Spreadsheets). [Moved to: https://github.com/peterwnjenga/leaptable]
DIIS-rs - Minimal Rust library for the Direct Inversion in the Iterative Subspace (DIIS) algorithm and its variants
ratatui - Rust library that's all about cooking up terminal user interfaces (TUIs) 👨🍳🐀