Được TopGit lập chỉ mục từ metadata GitHub: kubesphere/notification-manager có 240 sao, viết chủ yếu bằng Go. K8s native notification management with multi-tenancy support
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Notification Manager manages notifications in multi-tenant K8s environment. It receives alerts, cloud event, and others (such as auditing, k8s events)
from different senders and then send notifications to various tenant receivers based on tenant label like namespace or user.
Supported senders includes:
Prometheus Alertmanager
Custom sender
Prometheus (Coming soon)
Cloud Event (Coming soon)
Supported receivers includes:
DingTalk
Email
Feishu
Pushover
SMS (Short Message Service)
Slack
Webhook
WeChat
Discord
Architecture
Notification Manager uses Receiver and Config CRDs to store notification configs
like email, WeChat and slack. It also includes an operator to create and reconcile NotificationManager
CRD which watches all receivers and configs, updates notification settings accordingly and sends notifications to users.
Process
The incoming data (alert, cloud event and others) will cache in the cache firstly, then goes through steps such as silence, inhibit (coming soon), route,
filter, aggregation, etc. Notifications will generate from data using template,
then send to receivers and history webhook (if set).
Silence
Silence is a straightforward way to simply mute notifications for a given time. It uses Silence CRD to define
the silence policy. If incoming data matches an active silence, no notifications will be sent out for that data.
Route
Route find all receivers the notifications will send to.
There are two ways to determine which receivers the notifications will send to, one is via Router CRD,
and the other is auto-matching via the namespace label in the notification.
Usually the incoming data contains a namespace label, Notification Manager uses this label to decide which receiver to use for sending notifications:
For KubeSphere, Notification Manager will try to find tenants with the right to access the namespace from sidecar
and then find receivers with user = xxx label.
For Kubernetes, Notification Manager will try to find receivers with namespace = xxx label.
For data without a namespace label, for example alerts of node or kubelet, user can set up a receiver with type = global label to receive notifications without a namespace label. A global receiver sends notifications for all notifications received regardless any label. A global receiver usually set for an admin role.
How the two methods work together is determined by the routePolicy.
Filter
Filter filters the notifications sent to receivers. There are two ways to filter notifications. One is using alertSelector in the receiver,
the other is using tenant silence.
Aggregation
Aggregation groups notifications by groupLabels. Notifications in the same group will send together.
History
History is a webhook used to collect all notifications sent to receivers, it can be set via history.
QuickStart
Install
We assume you already have a Kubernetes cluster (v1.16+). You can install one using KubeKey if you haven't.
Install with yaml
# Deploy CRDs and the Notification Manager Operator:
kubectl apply -f https://github.com/kubesphere/notification-manager/releases/download/v2.6.0/bundle.yaml
# Deploy default template:
kubectl apply -f https://github.com/kubesphere/notification-manager/releases/download/v2.6.0/template.yaml
# Deploy built-in language packs.
kubectl apply -f https://github.com/kubesphere/notification-manager/releases/download/v2.6.0/zh-cn.yaml
NotificationManager CRD Defines the desired notification manager deployment. The Notification Manager Operator
ensures a deployment meeting the resource requirements is running.
We should create a NotificationManager CR first, skip this when using helm install.
A custom senders can send notifications using notification manager simply by sending data to http://notification-manager-svc.kubesphere-monitoring-system.svc:19093/api/v2/alerts.
Create receiver and config
Now it's time to create the receiver and config to receive notifications, you can find guides to create them in receiver and config.
Customize template
To customize the notification template, please refer to template.
Development
# Build notification-manager-operator and notification-manager docker images
make build
# Push built docker images to docker registry
make push
kubesphere/notification-manager thuộc nhóm Developer Tools trên TopGit, cùng 2 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về kubesphere/notification-manager ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/kubesphere/notification-manager là nguồn chính thức.
kubesphere/notification-manager có phải mã nguồn mở không?
Có — kubesphere/notification-manager phát hành theo license Apache-2.0, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/kubesphere/notification-manager.
kubesphere/notification-manager là gì?
kubesphere/notification-manager (kubesphere/notification-manager) là dự án Go trên GitHub. Theo mô tả gốc: K8s native notification management with multi-tenancy support
kubesphere/notification-manager so với các dự án Developer Tools khác thế nào?
kubesphere/notification-manager được TopGit xếp vào nhóm Developer Tools, với 240 sao GitHub và viết bằng Go. Xem trang chủ đề Developer Tools trên TopGit để so sánh với các dự án tương tự theo số sao và mức độ hoạt động.
Vì sao kubesphere/notification-manager được xếp vào nhóm Developer Tools?
TopGit xếp kubesphere/notification-manager vào nhóm Developer Tools dựa trên GitHub topics và mô tả của repo (gắn thẻ: "alertmanager", "kubernetes"). Việc phân loại dựa trên metadata thật của repo, không phải đoán theo cảm tính biên tập.
Đọc đầy đủ README ở tab phía trên.
Chưa chắc notification-manager có hợp với bạn?
Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về notification-manager.