back to home

prymitive / karma

Alert dashboard for Prometheus Alertmanager

2,631 stars
196 forks
39 issues
TypeScriptGoSCSS

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing prymitive/karma in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/prymitive/karma)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

karma Alert dashboard for Prometheus Alertmanager. --- Alertmanager is required. --- See GitHub Releases for release changelog. Feature overview Alertmanager UI is useful for browsing alerts and managing silences, but it's lacking as a dashboard tool - karma aims to fill this gap. Alert aggregation and deduplication Starting with the release it can aggregate alerts from multiple Alertmanager instances, running either in HA mode or separate. Unique alerts are displayed by filtering duplicates. Each alert is tagged with the names of all Alertmanager instances it was found at and can be filtered based on those tags ( ). Note that tags will be visible only if karma is configured with multiple Alertmanager instances. If alertmanger is configured to use HA clusters then will be available as well, to set a custom name for each cluster see CONFIGURATION.md. Alert visualization Alert groups Alerts are displayed grouped preserving group_by configuration option in Alertmanager. Note that a unique alert group will be created for each receiver it uses in alertmanager as they can have different settings. If a group contains multiple alerts only the first few alerts will be presented. Alerts are expanded or hidden using - / + buttons. The default number of alerts can be configured in the UI settings module. Each group can be collapsed to only show the title bar using top right toggle icon. Each individual alert will show unique labels and annotations. Labels and annotations that are shared between all alerts are moved to the footer. Active alerts will show recently expired silences, to allow re-silincing if needed. This is controlled via setting. value would show silences expired in the last 10 minutes but only for alerts that started firing more than 10 minutes ago. Alert history Alertmanager doesn't currently provide any long term storage of alert events or a way to query for historical alerts, but each Prometheus server sending alerts stores metrics related to triggered alerts. When is karma will use fields from each alert to try querying alert related metrics on remote Prometheus servers. The result is the number of times given alert group triggered an alert per hour in the last 24h, displayed as 24 blocks. The darker the color the more alerts were triggered in that hour, as compared by all other hours. For this feature to work karma must be able to connect to all Prometheus servers sending alerts. Be sure to set Prometheus flag to a publicly reachable URL of each server. Inhibited alerts Inhibited alerts (suppressed by other alerts, see Alertmanager docs) will have a "muted" button. Clicking on that button will bring a modal with a list of inhibiting alerts. Silence deduplication If all alerts in a group were suppressed by the same silence then, to save screen space, the silence will also be moved to the footer. Label based multi-grid To help separate alerts from different environments or with different level of severity multi-grid mode can be enabled, which adds another layer of visually grouping alert groups. To enable this mode go to the configuration modal and select a label name, all alerts will be grouped by that label, each label value will have a dedicated grid, including an extra grid for alerts without that label present. Silence management Silence modal allows to create new silences and manage all silences already present in Alertmanager. Silence ACL rules can be used to control silence creation and editing, see ACLs docs for more details. Alert overview Clicking on the alert counter in the top left corner will open the overview modal, which allows to quickly get an overview of the top label values for all current alerts. Alert acknowledgement Starting with karma can create short lived silences to acknowledge alerts with a single button click. To create silences that will resolve itself only after all alerts are resolved you can use kthxbye. See configuration docs for details. Dead Man’s Switch support Starting with karma can be configured to check for Dead Man’s Switch style alerts (alert that is always firing). If no alert is found in given alertmanager karma will show an error in the UI. See option on configuration docs for details. Dark mode Starting with release karma includes both light and dark themes. By default it will follow browser preference using prefers-color-scheme media queries. Demo Online demo is running latest main branch. It might include features that are experimental and not yet ready to be included. Release notes Release notes can be found on GitHub Release Page. To get notifications about new karma releases go to GitHub karma page, click and select . This requires GitHub user account. To subscribe to email notifications without GitHub account you can subscribe to the RSS feed that GitHub provides. To get email notifications from those feeds use one of the free services providing _RSS to email_ notifications, like Blogtrottr. History I created karma while working for Cloudflare, originally it was called unsee. This project is based on that code but the UI part was rewritten from scratch using React. New UI required changes to the backend so the API is also incompatible. Given that the React rewrite resulted in roughly 50% of new code and to avoid confusion for user I've decided to rename it to karma, especially that the original project wasn't being maintained anymore. Supported Alertmanager versions Alertmanager's API isn't stable yet and can change between releases, see in internal/mock/Makefile for list of all Alertmanager releases that are tested and supported by karma. Due to API differences between those releases some features will work differently or be missing, it's recommended to use the latest supported Alertmanager version. Security karma doesn't in any way alter alerts in any Alertmanager instance it collects data from. This is true for both the backend and the web UI. The web UI allows to manage silences by…