Sign inSign up

odpf/siren

By odpf

•Updated over 3 years ago

Image
0

3.7K

odpf/siren repository overview

⁠Siren

test workflow License Version

Siren provides alerting on metrics of your applications using cortexmetrics 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 prometheus Rule, which can be resued to create multiple instances of same rule with configurable thresholds.
  • Multitenancy: Rules created with Siren are by defualt multi tenancy aware.
  • DIY Interface: Siren can be used to easily create/edit prometheus rules. It also provides soft delete(disable) so that you can preserve thresholds in case you need to resue the same alert.
  • Managing bulk rules: Siren enables users to manage bulk alerts using YAML files in specified format using simple CLI.
  • Credentials Management: Siren can store slack and pagerduty credentials, sync them with Cortex alertmanager to deliver alerts on proper channels, in a multitenant fashion. It gives a simple interface to rotate the credentials on demand via HTTP API.
  • Alert History: Siren can store alerts triggered via Alertamanger, 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 details about configurations and other aspects of Siren.
  • Contribute⁠ contains resources for anyone who wants to contribute to Siren.

⁠Running locally

Siren requires the following dependencies:

  • Docker
  • Golang (version 1.16 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

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

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.

Tag summary

Content type

Image

Digest

sha256:c69328191…

Size

14.3 MB

Last updated

over 3 years ago

docker pull odpf/siren