Giter Club home page Giter Club logo

metrics's Introduction

Metrics - High-performance, protocol-agnostic instrumentation

Code of Conduct MIT licensed Documentation Discord chat last-commit-badge contributors-badge

code of conduct

NOTE: All conversations and contributions to this project shall adhere to the Code of Conduct.

what's it all about?

Running applications in production can be hard when you don't have insight into what the application is doing. We're lucky to have so many good system monitoring programs and services to show us how our servers are performing, but we still have to do the work of instrumenting our applications to gain deep insight into their behavior and performance.

metrics makes it easy to instrument your application to provide real-time insight into what's happening. It provides a number of practical features that make it easy for library and application authors to start collecting and exporting metrics from their codebase.

why would I collect metrics?

Some of the most common scenarios for collecting metrics from an application:

  • see how many times a codepath was hit
  • track the time it takes for a piece of code to execute
  • expose internal counters and values in a standardized way

Importantly, this works for both library authors and application authors. If the libraries you use are instrumented, you unlock the power of being able to collect those metrics in your application for free, without any extra configuration. Everyone wins, and learns more about their application performance at the end of the day.

project layout

The Metrics project provides a number of crates for both library and application authors.

If you're a library author, you'll only care about using metrics to instrument your library. If you're an application author, you'll likely also want to instrument your application, but you'll care about "exporters" as a means to take those metrics and ship them somewhere for analysis.

Overall, this repository is home to the following crates:

community integrations

As well, there are also some community-maintained exporters and other integrations:

MSRV and MSRV policy

Minimum supported Rust version (MSRV) is currently 1.61.0, enforced by CI.

metrics will always support at least the latest four versions of stable Rust, based on minor version releases, and excluding patch versions. Overall, we strive to support older versions where possible, which means that we generally try to avoid staying up-to-date with every single dependency (except for security/correctness reasons) and avoid bumping the MSRV just to get access to new helper methods in the standard library, and so on.

contributing

To those of you who have already contributed to metrics in some way, shape, or form: a big, and continued, "thank you!" โค๏ธ

To everyone else that we haven't had the pleasure of interacting with: we're always looking for thoughts on how to make metrics better, or users with interesting use cases. Of course, we're also happy to accept code contributions for outstanding feature requests directly. ๐Ÿ˜€

We'd love to chat about any of the above, or anything else related to metrics. Don't hesitate to file an issue on the repository, or come and chat with us over on Discord.

metrics's People

Contributors

tobz avatar dependabot[bot] avatar nobles5e avatar mozgiii avatar jean-airoldie avatar 0nkery avatar ashtonkem avatar jeromegn avatar kilpatty avatar bratsinot avatar flub avatar str4d avatar nilstrieb avatar twz123 avatar look avatar jmagnuson avatar hlbarber avatar fredr avatar nrxus avatar akhilles avatar lilymara-onesignal avatar rukai avatar mooso avatar nazar554 avatar robjtede avatar rodrigopandini avatar randers00 avatar wx-csy avatar tomgillen avatar timonpost avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.