Balerter alternatives and similar packages
Based on the "DevOps Tools" category.
Alternatively, view balerter alternatives based on common mentions on social networks and blogs.
-
Moby
The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems -
Gitea
Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD -
Packer
Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. -
kubeshark
The API traffic analyzer for Kubernetes providing real-time K8s protocol-level visibility, capturing and monitoring all traffic and payloads going in, out and across containers, pods, nodes and clusters. Inspired by Wireshark, purposely built for Kubernetes -
Ddosify
Anteon (formerly Ddosify) - Effortless Kubernetes Monitoring and Performance Testing. Available on CLI, Self-Hosted, and Cloud -
dasel
Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package. -
Mizu
DISCONTINUED. The API traffic viewer for Kubernetes providing deep visibility into all API traffic and payloads going in, out and across containers and pods inside a Kubernetes cluster. Think TCPDump and Wireshark re-invented for Kubernetes [Moved to: https://github.com/kubeshark/kubeshark] -
Pomerium
Pomerium is an identity and context-aware reverse proxy for zero-trust access to web applications and services. -
Fleet device management
Open-source platform for IT, security, and infrastructure teams. (Linux, macOS, Chrome, Windows, cloud, data center) -
StatusOK
Monitor your Website and APIs from your Computer. Get Notified through Slack, E-mail when your server is down or response time is more than expected. -
s3gof3r
Fast, concurrent, streaming access to Amazon S3, including gof3r, a CLI. http://godoc.org/github.com/rlmcpherson/s3gof3r -
uTask
µTask is an automation engine that models and executes business processes declared in yaml. ✏️📋
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of Balerter or a related project?
Popular Comparisons
README
[logo.png](logo.png)
A Project in active development. Features may have breaking changes at any time before v1.0.0 version
Balerter is a scripts based alerting system.
In your script you may:
- obtain needed data from different data sources (prometheus, clickhouse, postgres, external HTTP API etc.)
- analyze data and make a decision about alert status
- change Alerts statuses and receive notifications about it
In the example bellow we create one Clickhouse datasource, one scripts source and one alert channel. In the script we run query to clickhouse, check the value and fire the alert (or switch off it)
Notification channels
- Slack
- Telegram
- Syslog
- Desktop Notify
- Discord
- Webhook
- Prometheus Alertmanager
- Prometheus AlertmanagerReceiver
- Twilio Voice (phone calls)
Datasources
- Clickhouse
- Prometheus
- Postgres
- MySQL
- Loki
- Any external API with
http
lua module
Full documentation available on https://balerter.com
Example
docker pull balerter/balerter
docker run \
-v /path/to/config.yml:/opt/config.yml \
-v /path/to/scripts:/opt/scripts \
-v /path/to/cert.crt:/home/user/db.crt \
balerter/balerter -config=/opt/config.yml
Config file config.yml
scripts:
folder:
- name: debug-folder
path: /opt/scripts
mask: '*.lua'
datasources:
clickhouse:
- name: ch1
host: localhost
port: 6440
username: default
password: secret
database: default
sslMode: verified_full
sslCertPath: /home/user/db.crt
channels:
slack:
- name: slack1
url: https://hooks.slack.com/services/hash
Sample script rps.lua
-- @cron */10 * * * * *
-- @name script1
local minRequestsRPS = 100
local log = require("log")
local ch1 = require("datasource.clickhouse.ch1")
local res, err = ch1.query("SELECT sum(requests) AS rps FROM some_table WHERE date = now()")
if err ~= nil then
log.error("clickhouse 'ch1' query error: " .. err)
return
end
local resultRPS = res[1].rps
if resultRPS < minResultRPS then
alert.error("rps-min-limit", "Requests RPS are very small: " .. tostring(resultRPS))
else
alert.success("rps-min-limit", "Requests RPS ok")
end
Also, you can to write tests!
An example:
-- @test script1
-- @name script1-test
test = require('test')
local resp = {
{
rps = 10
}
}
test.datasource('clickhouse.ch1').on('query', 'SELECT sum(requests) AS rps FROM some_table WHERE date = now()').response(resp)
test.alert().assertCalled('error', 'rps-min-limit', 'Requests RPS are very small: 10')
test.alert().assertNotCalled('success', 'rps-min-limit', 'Requests RPS ok')
See a documentation on https://balerter.com