{"id":21185585,"url":"https://github.com/raystack/siren","last_synced_at":"2025-09-07T03:37:36.186Z","repository":{"id":36963395,"uuid":"339373604","full_name":"raystack/siren","owner":"raystack","description":"Siren provides an easy-to-use universal alert, notification, channels management framework for the entire observability infrastructure.","archived":false,"fork":false,"pushed_at":"2024-07-10T15:25:25.000Z","size":7373,"stargazers_count":79,"open_issues_count":6,"forks_count":16,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-07-06T23:11:54.452Z","etag":null,"topics":["alerting","dataops","influx","monitoring","prometheus"],"latest_commit_sha":null,"homepage":"https://odpf.github.io/siren/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raystack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-16T11:16:58.000Z","updated_at":"2025-05-04T22:50:16.000Z","dependencies_parsed_at":"2025-04-13T07:27:39.401Z","dependency_job_id":null,"html_url":"https://github.com/raystack/siren","commit_stats":{"total_commits":200,"total_committers":10,"mean_commits":20.0,"dds":0.51,"last_synced_commit":"3c073a684d2c3b80309f7320f7270a505da23b5d"},"previous_names":["raystack/siren","odpf/siren"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/raystack/siren","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raystack%2Fsiren","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raystack%2Fsiren/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raystack%2Fsiren/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raystack%2Fsiren/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raystack","download_url":"https://codeload.github.com/raystack/siren/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raystack%2Fsiren/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273993026,"owners_count":25203792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alerting","dataops","influx","monitoring","prometheus"],"created_at":"2024-11-20T18:17:12.447Z","updated_at":"2025-09-07T03:37:36.160Z","avatar_url":"https://github.com/raystack.png","language":"Go","readme":"# Siren\n\n![test workflow](https://github.com/odpf/siren/actions/workflows/test.yaml/badge.svg)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?logo=apache)](LICENSE)\n[![Version](https://img.shields.io/github/v/release/odpf/siren?logo=semantic-release)](Version)\n[![Coverage Status](https://coveralls.io/repos/github/odpf/siren/badge.svg?branch=main)](https://coveralls.io/github/odpf/siren?branch=main)\n\nSiren provides alerting on metrics of your applications using [Cortex metrics](https://cortexmetrics.io/) in a simple\nDIY configuration. With Siren, you can define templates(using go templates standard), and create/edit/enable/disable\nprometheus rules on demand. It also gives flexibility to manage bulk of rules via YAML files. Siren can be integrated\nwith any client such as CI/CD pipelines, Self-Serve UI, microservices etc.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"./docs/static/img/overview.svg\" /\u003e\u003c/p\u003e\n\n## Key Features\n\n- **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.\n- **Subscriptions:** Siren can be used to subscribe to notifications (with desired matching conditions) via the channel of your choice.\n- **Multi-tenancy:** Rules created with Siren are by default multi-tenancy aware.\n- **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.\n- **Managing bulk rules:** Siren enables users to manage bulk alerting rules using YAML files in specified format with simple CLI.\n- **Receivers:** Siren can be used to send out notifications to several channels (slack, pagerduty, email etc).\n- **Alert History:** Siren can store alerts triggered by monitoring \u0026 alerting provider e.g. Cortex Alertmanager, which can be used for audit purposes.\nTo know more, follow the detailed [documentation](docs)\n\n## Usage\n\nExplore the following resources to get started with Siren:\n\n- [Guides](docs/guides/overview.md) provides guidance on usage.\n- [Concepts](docs/concepts/overview.md) describes all important Siren concepts including system architecture.\n- [Reference](docs/reference) contains the details about configurations and other aspects of Siren.\n- [Contribute](docs/contribute/contribution.md) contains resources for anyone who wants to contribute to Siren.\n\n## Run with Kubernetes\n\n- Create a siren deployment using the helm chart available [here](https://github.com/odpf/charts/tree/main/stable/siren)\n\n## Running locally\n\nSiren requires the following dependencies:\n\n- Docker\n- Golang (version 1.18 or above)\n- Git\n\nRun the application dependencies using Docker:\n\n```sh\n$ docker-compose up\n```\n\nUpdate the configs(db credentials etc.) as per your dev machine and docker configs.\n\nRun the following commands to compile from source\n\n```sh\n$ git clone git@github.com:odpf/siren.git\n$ cd siren\n$ go build main.go\n```\n\n## Running tests\n\n```sh\n# To run tests locally\n$ make test\n\n# To run tests locally with coverage\n$ make test-coverage\n```\n## Generate Server Configuration\n\n```sh\n# To generate server configuration\n$ go run main.go server init\n```\n\nThis will generate a file `./config.yaml`.\n\n## Running Server\n\n```sh\n# To run server locally\n$ go run main.go server start\n```\n\nTo view swagger docs of HTTP APIs visit `/documentation` route on the server.\ne.g. [http://localhost:3000/documentation](http://localhost:3000/documentation)\n\n## Contribute\n\nDevelopment of Siren happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and\nimprovements. Read below to learn how you can take part in improving Siren.\n\nRead our [contributing guide](docs/contribute/contribution.md) to learn about our development process, how to propose\nbugfixes and improvements, and how to build and test your changes to Siren.\n\nTo help you get your feet wet and get you familiar with our contribution process, we have a list of\n[good first issues](https://github.com/odpf/siren/labels/good%20first%20issue) that contain bugs which have a relatively\nlimited scope. This is a great place to get started.\n\nThis project exists thanks to all the [contributors](https://github.com/odpf/siren/graphs/contributors).\n\n## License\n\nSiren is [Apache 2.0](LICENSE) licensed.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraystack%2Fsiren","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraystack%2Fsiren","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraystack%2Fsiren/lists"}