nature

nature

Nature_whistle v0.3.0 is out - telemetry driven alerting with recovery notifications

NatureWhistle v0.3.0 is out! :tada:

I’ve just released NatureWhistle v0.3.0, a significant update focused on making telemetry-based alerting more resilient, scalable, and easier to extend.

Some highlights include:

  • Asynchronous notification delivery using Task.Supervisor, keeping telemetry handlers lightweight and non-blocking.

  • Automatic background cleanup for stale alert state and resolution timers.

  • EventGuard for built-in rate limiting and sliding-window suppression to reduce noisy alerts.

  • A new Notification layer responsible for formatting, value rendering, and dispatching notifications.

  • Custom formatter support with safe fallbacks so formatter errors don’t break alert delivery.

  • Unified retry handling with exponential backoff across Slack, Microsoft Teams, generic webhooks, and console notifications.

  • Support for named notifier profiles, making it much easier to route alerts to multiple destinations.

  • Improved startup validation, better configuration normalization, and more robust test utilities for async workflows.

This release also lays the groundwork for future enhancements while maintaining compatibility with existing configurations.

For those who haven’t come across NatureWhistle before, it’s a lightweight telemetry-driven alerting library for Elixir applications that helps you monitor metrics, react to threshold breaches, and send notifications through multiple channels with minimal overhead.

As always, feedback, issues, and contributions are welcome. I’d love to hear what you think and what features you’d like to see next.

Happy monitoring! :herb:

Where Next?

Popular in News & Updates Top

bartblast
Great news for Hologram: the Erlang Ecosystem Foundation has awarded a stipend to support key development milestones! I’m deeply gratefu...
New
DominikWolek
Last Friday we released Membrane Core 0.11.0 :tada: A pipeline’s lifecycle has changed: pipeline is now spawned with a dedicated supervi...
New
fhunleth
It looks like it’s finally safe to announce that Nerves supports Erlang/OTP 26 and Elixir 1.15! We’ve updated dozens of Nerves and close...
New
lawik
It is my pleasure to announce the official release of the new generation of NervesHub with the v2.0.0 release. Containers are tagged. :p...
New
zachdaniel
Hey folks! We’ve just released the beta 0.1.0 version of ash_sqlite. Take a look at the guide here: https://hexdocs.pm/ash_sqlite/get-sta...
New
zachdaniel
Hey folks! AshEvents Release We’ve just released the first version of AshEvents, an Event Sourcing tool for Ash Framework apps. Check o...
New
mat-hek
I’m thrilled to announce that for the first time, we’re organizing RTC.ON - the conference about Membrane and multimedia streaming :tada:...
New
fhunleth
We’ve released Nerves v1.3.0 with support for Elixir 1.7 and Distillery 2.0! We encountered a few bumps over the past week, but it’s look...
New
fhunleth
Circuits.GPIO lets you read and write to I/O pins on embedded hardware like that used by Nerves. The new v2.0 version makes it possible t...
New
fhunleth
I wanted to let everyone know that the Erlang Ecosystem Foundation (EEF) has a working group dedicated to embedded systems and IoT. We ha...
New

Other popular topics Top

axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 48342 226
New
malloryerik
Hi, this is for people who, like me, have had some friction using .html.heex templates in VSCode. The solution seems to be, in a hyphena...
New
hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31013 112
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement