#error-reporting #incident #panic #service #back-end #alert #applications

airbag

Library for handling errors and panics using 3rd party services

19 releases (9 stable)

4.1.0 Nov 3, 2024
4.0.3 May 1, 2024
4.0.0 Jan 24, 2024
3.1.0 Jan 18, 2024
0.6.1 Jul 29, 2021

#631 in Rust patterns

Download history 41/week @ 2024-08-03 51/week @ 2024-08-10 42/week @ 2024-08-17 12/week @ 2024-08-24 50/week @ 2024-08-31 67/week @ 2024-09-07 37/week @ 2024-09-14 78/week @ 2024-09-21 60/week @ 2024-09-28 35/week @ 2024-10-05 5/week @ 2024-10-12 12/week @ 2024-10-19 31/week @ 2024-10-26 178/week @ 2024-11-02 24/week @ 2024-11-09 42/week @ 2024-11-16

275 downloads per month

MIT license

39KB
840 lines

Airbag

Airbag is a Rust library that aims to simplify incident reporting to various 3rd party services. Airbag exposes a simple interface to report incidents with various fields and metadata, as well as catch and report Rust panics. These get reported to a preconfigured backend that takes care of the actual alert/incident sending.

Features

  • Support for multiple configurable backends
  • Middleware support, allowing applications to customize emitted alerts before they are being sent
  • Supports shortcuts for handling Results with propagation to alerts
  • Catches and reports panics (only when configured globally)

Getting Started

You can configure Airbag on either a global scope (whole application), in which case it will also catch and report panics, or on a thread-level scope (in which case panics will not get automatically reported). This is done via the airbag::configure and airbag::configure_thread_local:

let _guard = airbag::configure(airbag::backends::SquadCast::builder().region("eu").token("token here").build());

Or

let _guard = airbag::configure_thread_local(airbag::backends::SquadCast::builder().region("eu").token("token here").build());

After configuring Airbag, you can emit an alert by:

airbag::alert::Alert::builder()
    .title("Alert title")
    .dedup_key("alert-dedup-key")
    .trigger();

Documentation

Head over to the full documentation hosted on docs.rs to find out more about Airbag's usage and API

Dependencies

~8–20MB
~296K SLoC