All Projects → odpf → siren

odpf / siren

Licence: Apache-2.0 license
Siren provides an easy-to-use universal alert, notification, channels management framework for the entire observability infrastructure.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to siren

Tenderly Cli
CLI tool for Smart Contract error tracking, monitoring and alerting.
Stars: ✭ 138 (+97.14%)
Mutual labels:  alerting
Moira
Realtime Alerting for Graphite
Stars: ✭ 222 (+217.14%)
Mutual labels:  alerting
Alertmanager
Alertmanager for macOS.
Stars: ✭ 49 (-30%)
Mutual labels:  alerting
Dagger
Dagger 是一个基于 Loki 的日志查询和管理系统,它是由达闼科技( CloudMinds )云团队的`大禹基础设施平台`派生出来的一个项目。Dagger 运行在 Loki 前端,具备日志查询、搜索,保存和下载等特性,适用于云原生场景下的容器日志管理场景。
Stars: ✭ 149 (+112.86%)
Mutual labels:  alerting
Alertmanager2es
Receives HTTP webhook notifications from AlertManager and inserts them into an Elasticsearch index for searching and analysis
Stars: ✭ 173 (+147.14%)
Mutual labels:  alerting
Example Prometheus Nodejs
Prometheus monitoring example with Node.js
Stars: ✭ 249 (+255.71%)
Mutual labels:  alerting
Prom2teams
prom2teams is an HTTP server built with Python that receives alert notifications from a previously configured Prometheus Alertmanager instance and forwards it to Microsoft Teams using defined connectors
Stars: ✭ 122 (+74.29%)
Mutual labels:  alerting
guardian
Guardian is a tool for extensible and universal data access with automated access workflows and security controls across data stores, analytical systems, and cloud products.
Stars: ✭ 127 (+81.43%)
Mutual labels:  dataops
Awesome Prometheus Alerts
🚨 Collection of Prometheus alerting rules
Stars: ✭ 3,323 (+4647.14%)
Mutual labels:  alerting
raccoon
Raccoon is a high-throughput, low-latency service to collect events in real-time from your web, mobile apps, and services using multiple network protocols.
Stars: ✭ 159 (+127.14%)
Mutual labels:  dataops
Opbeat Node
DEPRECATED - See Elastic APM instead: https://github.com/elastic/apm-agent-nodejs
Stars: ✭ 155 (+121.43%)
Mutual labels:  alerting
Sensu Puppet
Sensu Puppet module.
Stars: ✭ 167 (+138.57%)
Mutual labels:  alerting
Netdata
Real-time performance monitoring, done right! https://www.netdata.cloud
Stars: ✭ 57,056 (+81408.57%)
Mutual labels:  alerting
Hollowtrees
A ruleset based watchguard to keep spot/preemptible instance based clusters safe, with plugins for VMs, Kubernetes, Prometheus and Pipeline
Stars: ✭ 141 (+101.43%)
Mutual labels:  alerting
gansoi
👽 Awesome Infrastructure Monitoring and Alerting
Stars: ✭ 31 (-55.71%)
Mutual labels:  alerting
Alerting Kibana Plugin
📟 Open Distro for Elasticsearch Kibana Alerting Plugin
Stars: ✭ 131 (+87.14%)
Mutual labels:  alerting
Hawkular Metrics
Time Series Metrics Engine based on Cassandra
Stars: ✭ 225 (+221.43%)
Mutual labels:  alerting
cli
Polyaxon Core Client & CLI to streamline MLOps
Stars: ✭ 18 (-74.29%)
Mutual labels:  dataops
dagger
Dagger is an easy-to-use, configuration over code, cloud-native framework built on top of Apache Flink for stateful processing of real-time streaming data.
Stars: ✭ 238 (+240%)
Mutual labels:  dataops
terraform-aws-influxdb
Deploys InfluxDB Enterprise to AWS
Stars: ✭ 29 (-58.57%)
Mutual labels:  influx

Siren

test workflow License Version Coverage Status

Siren provides alerting on metrics of your applications using Cortex metrics in a simple DIY configuration. With Siren, you can define templates(using go templates standard), and create/edit/enable/disable prometheus rules on demand. It also gives flexibility to manage bulk of rules via YAML files. Siren can be integrated with any client such as CI/CD pipelines, Self-Serve UI, microservices etc.

Key Features

  • Rule Templates: Siren provides a way to define templates over alerting rule which can be reused to create multiple instances of the same rule with configurable thresholds.
  • Subscriptions: Siren can be used to subscribe to notifications (with desired matching conditions) via the channel of your choice.
  • Multi-tenancy: Rules created with Siren are by default multi-tenancy aware.
  • DIY Interface: Siren can be used to easily create/edit alerting rules. It also provides soft-delete (disable) so that you can preserve thresholds in case you need to reuse the same alert.
  • Managing bulk rules: Siren enables users to manage bulk alerting rules using YAML files in specified format with simple CLI.
  • Receivers: Siren can be used to send out notifications to several channels (slack, pagerduty, email etc).
  • Alert History: Siren can store alerts triggered by monitoring & alerting provider e.g. Cortex Alertmanager, which can be used for audit purposes. To know more, follow the detailed documentation

Usage

Explore the following resources to get started with Siren:

  • Guides provides guidance on usage.
  • Concepts describes all important Siren concepts including system architecture.
  • Reference contains the details about configurations and other aspects of Siren.
  • Contribute contains resources for anyone who wants to contribute to Siren.

Run with Kubernetes

  • Create a siren deployment using the helm chart available here

Running locally

Siren requires the following dependencies:

  • Docker
  • Golang (version 1.18 or above)
  • Git

Run the application dependencies using Docker:

$ docker-compose up

Update the configs(db credentials etc.) as per your dev machine and docker configs.

Run the following commands to compile from source

$ git clone [email protected]:odpf/siren.git
$ cd siren
$ go build main.go

Running tests

# To run tests locally
$ make test

# To run tests locally with coverage
$ make test-coverage

Generate Server Configuration

# To generate server configuration
$ go run main.go server init

This will generate a file ./config.yaml.

Running Server

# To run server locally
$ go run main.go server start

To view swagger docs of HTTP APIs visit /documentation route on the server. e.g. http://localhost:3000/documentation

Contribute

Development of Siren happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving Siren.

Read our contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Siren.

To help you get your feet wet and get you familiar with our contribution process, we have a list of good first issues that contain bugs which have a relatively limited scope. This is a great place to get started.

This project exists thanks to all the contributors.

License

Siren is Apache 2.0 licensed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].