autometrics-rs
criterion.rs
autometrics-rs | criterion.rs | |
---|---|---|
8 | 30 | |
770 | 4,170 | |
0.8% | - | |
8.3 | 6.5 | |
3 months ago | 7 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.
autometrics-rs
- Show HN: Autometrics – open-source observability stack
- Show HN: Autometrics Explorer – A Contextual UI for Prometheus
-
Ask HN: Are You Using OpenTelemetry?
I’ve been working on an open source project built on OpenTelemetry and Prometheus client libraries (https://autometrics.dev). The DX of the OTel libraries is pretty painful in all the languages we’ve used. Granted, we’re using them for metrics while traces are more common, but still.
I think the fundamental issue for the DX is that it’s trying to do everything everyone might want out of all of the observability signals. That’s a useful and laudable goal but it means that everything is configurable and relatively difficult to use.
-
What are good options for observability for tiny startup?
If you go with Prometheus, we’re building Autometrics to make producing and querying metrics easier for developers. It makes it trivial to instrument functions to track the request rate, error rate, and latency and then writes PromQL for you. The Autometrics libraries are thin layers on top of existing Prometheus and OpenTelemetry libraries.
-
Autometrics 0.4: Spot commits that introduce errors or slow down your application
Autometrics is an open source observability framework that makes it trivial to add useful metrics to your code and writes Prometheus queries for you to help you understand the data. This feature shows the power that comes from pairing code instrumentation with automatically writing queries (and the queries it writes are a whole lot more complicated than what you'd want to write by hand!).
-
Minimal, allocation-free OpenMetrics implementation for no-std/embedded Rust
How do people tend to get metrics off of embedded devices?
I’m working on https://github.com/autometrics-dev/autometrics-rs and people asked whether it could be used in embedded contexts but I wasn’t sure how you’d hook up the device to something like Prometheus.
-
autometrics: easily add metrics to any function -- and jump to live Prometheus charts directly from your IDE (links with automatically customized PromQL queries are inserted into each function's doc comments)
I just opened these two issues for [supporting `prometheus-client`](https://github.com/fiberplane/autometrics-rs/issues/25) and another for [supporting exemplars](https://github.com/fiberplane/autometrics-rs/issues/26).
criterion.rs
-
How to benchmark in Rust with libtest bench
The three popular options for benchmarking in Rust are: libtest bench, Criterion, and Iai.
-
Divan: Fast and Simple Benchmarking for Rust
Holy crap. I was just writing a blog to complain about the state of Rust benchmarking and I think this might address most of my points. The biggest one is the ability to have benchmarks collocated within the library like tests which is the biggest annoyance.
It’s also nice to see that it can report multiple counters in parallel. I put up a similar feature[1] for criterion recently but I fear the project isn’t being maintained anymore…
Haven’t looked deeply into divan yet but the other requirements I have for criterion’s power is to run tests with statistical guarantees on the results, terminate quickly when statistical significance is reached (—quick), provide a comparison of the delta from a previous benchmark, and to run async code. Wonder how this stacks up.
[1] https://github.com/bheisler/criterion.rs/pull/722
-
how expensive is an operation?
criterion for benchmarks,
- Autometrics 0.4: Spot commits that introduce errors or slow down your application
- Performance-related question
-
How can I further optimize this file parser? (std, serde, diesel)
For an extra optimization, you might look into techniques like branchless code, turning array of structs into struct of arrays for better cache utilization/lowering branch mispredictions. There is many talks on YouTube how to actually measure and improve performance of native code. And for rust there is a criterion.rs for benchmarking.
- making a virtual machine in rust
-
How much does Rust's bounds checking cost?
https://github.com/bheisler/criterion.rs is good for tests like that. It will give you much more than a single number and handle things like outliers. This makes identifying noisy tests simpler.
-
Tips in using criterion to properly benchmark a database?
I have tried many ways but I think is not possible. I put it on https://github.com/bheisler/criterion.rs/issues/631.
-
Rust 1.64 Became 10-20% Faster On Windows
Criterion is still the gold standard.
Pros for Criterion over the stdlib: https://github.com/bheisler/criterion.rs#features
Downsides of Criterion: https://bheisler.github.io/criterion.rs/book/user_guide/know...
What are some alternatives?
OpenMetrics - Evolving the Prometheus exposition format into a standard.
hyperfine - A command-line benchmarking tool
eclss - Environmental Controls and Life Support Systems
sqlglot - Python SQL Parser and Transpiler
minitrace-rust - Extremely fast tracing library for Rust
glassbench - A micro-benchmark framework to use with cargo bench
metrics - A metrics ecosystem for Rust.
sccache - Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.
tracing-indicatif - Tracing layer that automatically creates and manages progress bars for active spans.
tracing - Application level tracing for Rust.
hs-opentelemetry - OpenTelemetry support for the Haskell programming language
tungstenite-rs - Lightweight stream-based WebSocket implementation for Rust.