Alerters
Sending alerts through specified channels.
This is an older version of the ZenML documentation. To check the latest version please visit https://docs.zenml.io
Alerters allow you to send messages to chat services (like Slack, Discord, Mattermost, etc.) from within your pipeline. This is useful for immediately getting notified when failures happen, for general monitoring/reporting, and also for building human-in-the-loop ML.
Before reading this chapter, make sure that you are familiar with the concept of stacks, stack components and their flavors.
Base Abstraction
The base abstraction for alerters is very simple, as it only defines two abstract methods that subclasses should implement:
post()
takes a string, posts it to the desired chat service, and returnsTrue
if the operation succeeded, elseFalse
.ask()
does the same aspost()
, but after sending the message, it waits until someone approves or rejects the operation from within the chat service (e.g., by sending "approve" / "reject" to the bot as response).ask()
then only returnsTrue
if the operation succeeded and was approved, elseFalse
.
Then base abstraction looks something like this:
This is a slimmed-down version of the base implementation. To see the full docstrings and imports, please check the source code on GitHub.
List of available alerters
Currently, the only available alerter integration is Slack. The Slack alerter can be used to post/ask in a specified Slack channel via a dedicated bot account of a Slack app linked to the channel.
Flavor | Integration | |
---|---|---|
slack | slack |
If you would like to see the available flavors for alerters, you can use the command:
Build your own custom alerter
Creating your own custom alerter can be done in three simple steps:
Create a class that inherits from the
BaseAlerter
.Define the
FLAVOR
class variable in your class (e.g.,FLAVOR="discord"
)Implement the
post()
andask()
methods for your alerter.
Once you are done with the implementation, you can register it through the CLI as:
Last updated