mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-18 01:25:59 +08:00
chore: make send resolved notifs configurable (#4833)
This commit is contained in:
parent
a9464de62d
commit
fc2bdb610f
@ -15,6 +15,7 @@
|
|||||||
"button_test_channel": "Test",
|
"button_test_channel": "Test",
|
||||||
"button_return": "Back",
|
"button_return": "Back",
|
||||||
"field_channel_name": "Name",
|
"field_channel_name": "Name",
|
||||||
|
"field_send_resolved": "Send resolved alerts",
|
||||||
"field_channel_type": "Type",
|
"field_channel_type": "Type",
|
||||||
"field_webhook_url": "Webhook URL",
|
"field_webhook_url": "Webhook URL",
|
||||||
"field_slack_recipient": "Recipient",
|
"field_slack_recipient": "Recipient",
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
"button_test_channel": "Test",
|
"button_test_channel": "Test",
|
||||||
"button_return": "Back",
|
"button_return": "Back",
|
||||||
"field_channel_name": "Name",
|
"field_channel_name": "Name",
|
||||||
|
"field_send_resolved": "Send resolved alerts",
|
||||||
"field_channel_type": "Type",
|
"field_channel_type": "Type",
|
||||||
"field_webhook_url": "Webhook URL",
|
"field_webhook_url": "Webhook URL",
|
||||||
"field_slack_recipient": "Recipient",
|
"field_slack_recipient": "Recipient",
|
||||||
|
@ -12,7 +12,7 @@ const create = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
email_configs: [
|
email_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
to: props.to,
|
to: props.to,
|
||||||
html: props.html,
|
html: props.html,
|
||||||
headers: props.headers,
|
headers: props.headers,
|
||||||
|
@ -12,7 +12,7 @@ const create = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
msteams_configs: [
|
msteams_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
webhook_url: props.webhook_url,
|
webhook_url: props.webhook_url,
|
||||||
title: props.title,
|
title: props.title,
|
||||||
text: props.text,
|
text: props.text,
|
||||||
|
@ -12,7 +12,7 @@ const create = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
pagerduty_configs: [
|
pagerduty_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
routing_key: props.routing_key,
|
routing_key: props.routing_key,
|
||||||
client: props.client,
|
client: props.client,
|
||||||
client_url: props.client_url,
|
client_url: props.client_url,
|
||||||
|
@ -12,7 +12,7 @@ const create = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
slack_configs: [
|
slack_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
api_url: props.api_url,
|
api_url: props.api_url,
|
||||||
channel: props.channel,
|
channel: props.channel,
|
||||||
title: props.title,
|
title: props.title,
|
||||||
|
@ -30,7 +30,7 @@ const create = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
webhook_configs: [
|
webhook_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
url: props.api_url,
|
url: props.api_url,
|
||||||
http_config: httpConfig,
|
http_config: httpConfig,
|
||||||
},
|
},
|
||||||
|
@ -12,7 +12,7 @@ const editEmail = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
email_configs: [
|
email_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
to: props.to,
|
to: props.to,
|
||||||
html: props.html,
|
html: props.html,
|
||||||
headers: props.headers,
|
headers: props.headers,
|
||||||
|
@ -12,7 +12,7 @@ const editMsTeams = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
msteams_configs: [
|
msteams_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
webhook_url: props.webhook_url,
|
webhook_url: props.webhook_url,
|
||||||
title: props.title,
|
title: props.title,
|
||||||
text: props.text,
|
text: props.text,
|
||||||
|
@ -12,7 +12,7 @@ const editOpsgenie = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
opsgenie_configs: [
|
opsgenie_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
api_key: props.api_key,
|
api_key: props.api_key,
|
||||||
description: props.description,
|
description: props.description,
|
||||||
priority: props.priority,
|
priority: props.priority,
|
||||||
|
@ -12,7 +12,7 @@ const editPager = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
pagerduty_configs: [
|
pagerduty_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
routing_key: props.routing_key,
|
routing_key: props.routing_key,
|
||||||
client: props.client,
|
client: props.client,
|
||||||
client_url: props.client_url,
|
client_url: props.client_url,
|
||||||
|
@ -12,7 +12,7 @@ const editSlack = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
slack_configs: [
|
slack_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
api_url: props.api_url,
|
api_url: props.api_url,
|
||||||
channel: props.channel,
|
channel: props.channel,
|
||||||
title: props.title,
|
title: props.title,
|
||||||
|
@ -29,7 +29,7 @@ const editWebhook = async (
|
|||||||
name: props.name,
|
name: props.name,
|
||||||
webhook_configs: [
|
webhook_configs: [
|
||||||
{
|
{
|
||||||
send_resolved: true,
|
send_resolved: props.send_resolved,
|
||||||
url: props.api_url,
|
url: props.api_url,
|
||||||
http_config: httpConfig,
|
http_config: httpConfig,
|
||||||
},
|
},
|
||||||
|
@ -53,6 +53,7 @@ function CreateAlertChannels({
|
|||||||
EmailChannel
|
EmailChannel
|
||||||
>
|
>
|
||||||
>({
|
>({
|
||||||
|
send_resolved: true,
|
||||||
text: `{{ range .Alerts -}}
|
text: `{{ range .Alerts -}}
|
||||||
*Alert:* {{ .Labels.alertname }}{{ if .Labels.severity }} - {{ .Labels.severity }}{{ end }}
|
*Alert:* {{ .Labels.alertname }}{{ if .Labels.severity }} - {{ .Labels.severity }}{{ end }}
|
||||||
|
|
||||||
@ -119,7 +120,7 @@ function CreateAlertChannels({
|
|||||||
api_url: selectedConfig?.api_url || '',
|
api_url: selectedConfig?.api_url || '',
|
||||||
channel: selectedConfig?.channel || '',
|
channel: selectedConfig?.channel || '',
|
||||||
name: selectedConfig?.name || '',
|
name: selectedConfig?.name || '',
|
||||||
send_resolved: true,
|
send_resolved: selectedConfig?.send_resolved || false,
|
||||||
text: selectedConfig?.text || '',
|
text: selectedConfig?.text || '',
|
||||||
title: selectedConfig?.title || '',
|
title: selectedConfig?.title || '',
|
||||||
}),
|
}),
|
||||||
@ -158,7 +159,7 @@ function CreateAlertChannels({
|
|||||||
let request: WebhookChannel = {
|
let request: WebhookChannel = {
|
||||||
api_url: selectedConfig?.api_url || '',
|
api_url: selectedConfig?.api_url || '',
|
||||||
name: selectedConfig?.name || '',
|
name: selectedConfig?.name || '',
|
||||||
send_resolved: true,
|
send_resolved: selectedConfig?.send_resolved || false,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (selectedConfig?.username !== '' || selectedConfig?.password !== '') {
|
if (selectedConfig?.username !== '' || selectedConfig?.password !== '') {
|
||||||
@ -226,7 +227,7 @@ function CreateAlertChannels({
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
name: selectedConfig?.name || '',
|
name: selectedConfig?.name || '',
|
||||||
send_resolved: true,
|
send_resolved: selectedConfig?.send_resolved || false,
|
||||||
routing_key: selectedConfig?.routing_key || '',
|
routing_key: selectedConfig?.routing_key || '',
|
||||||
client: selectedConfig?.client || '',
|
client: selectedConfig?.client || '',
|
||||||
client_url: selectedConfig?.client_url || '',
|
client_url: selectedConfig?.client_url || '',
|
||||||
@ -274,7 +275,7 @@ function CreateAlertChannels({
|
|||||||
() => ({
|
() => ({
|
||||||
api_key: selectedConfig?.api_key || '',
|
api_key: selectedConfig?.api_key || '',
|
||||||
name: selectedConfig?.name || '',
|
name: selectedConfig?.name || '',
|
||||||
send_resolved: true,
|
send_resolved: selectedConfig?.send_resolved || false,
|
||||||
description: selectedConfig?.description || '',
|
description: selectedConfig?.description || '',
|
||||||
message: selectedConfig?.message || '',
|
message: selectedConfig?.message || '',
|
||||||
priority: selectedConfig?.priority || '',
|
priority: selectedConfig?.priority || '',
|
||||||
@ -312,7 +313,7 @@ function CreateAlertChannels({
|
|||||||
const prepareEmailRequest = useCallback(
|
const prepareEmailRequest = useCallback(
|
||||||
() => ({
|
() => ({
|
||||||
name: selectedConfig?.name || '',
|
name: selectedConfig?.name || '',
|
||||||
send_resolved: true,
|
send_resolved: selectedConfig?.send_resolved || false,
|
||||||
to: selectedConfig?.to || '',
|
to: selectedConfig?.to || '',
|
||||||
html: selectedConfig?.html || '',
|
html: selectedConfig?.html || '',
|
||||||
headers: selectedConfig?.headers || {},
|
headers: selectedConfig?.headers || {},
|
||||||
@ -350,7 +351,7 @@ function CreateAlertChannels({
|
|||||||
() => ({
|
() => ({
|
||||||
webhook_url: selectedConfig?.webhook_url || '',
|
webhook_url: selectedConfig?.webhook_url || '',
|
||||||
name: selectedConfig?.name || '',
|
name: selectedConfig?.name || '',
|
||||||
send_resolved: true,
|
send_resolved: selectedConfig?.send_resolved || false,
|
||||||
text: selectedConfig?.text || '',
|
text: selectedConfig?.text || '',
|
||||||
title: selectedConfig?.title || '',
|
title: selectedConfig?.title || '',
|
||||||
}),
|
}),
|
||||||
|
@ -72,7 +72,7 @@ function EditAlertChannels({
|
|||||||
api_url: selectedConfig?.api_url || '',
|
api_url: selectedConfig?.api_url || '',
|
||||||
channel: selectedConfig?.channel || '',
|
channel: selectedConfig?.channel || '',
|
||||||
name: selectedConfig?.name || '',
|
name: selectedConfig?.name || '',
|
||||||
send_resolved: true,
|
send_resolved: selectedConfig?.send_resolved || false,
|
||||||
text: selectedConfig?.text || '',
|
text: selectedConfig?.text || '',
|
||||||
title: selectedConfig?.title || '',
|
title: selectedConfig?.title || '',
|
||||||
id,
|
id,
|
||||||
@ -115,7 +115,7 @@ function EditAlertChannels({
|
|||||||
return {
|
return {
|
||||||
api_url: selectedConfig?.api_url || '',
|
api_url: selectedConfig?.api_url || '',
|
||||||
name: name || '',
|
name: name || '',
|
||||||
send_resolved: true,
|
send_resolved: selectedConfig?.send_resolved || false,
|
||||||
username,
|
username,
|
||||||
password,
|
password,
|
||||||
id,
|
id,
|
||||||
@ -284,7 +284,7 @@ function EditAlertChannels({
|
|||||||
() => ({
|
() => ({
|
||||||
webhook_url: selectedConfig?.webhook_url || '',
|
webhook_url: selectedConfig?.webhook_url || '',
|
||||||
name: selectedConfig?.name || '',
|
name: selectedConfig?.name || '',
|
||||||
send_resolved: true,
|
send_resolved: selectedConfig?.send_resolved || false,
|
||||||
text: selectedConfig?.text || '',
|
text: selectedConfig?.text || '',
|
||||||
title: selectedConfig?.title || '',
|
title: selectedConfig?.title || '',
|
||||||
id,
|
id,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { Form, FormInstance, Input, Select, Typography } from 'antd';
|
import { Form, FormInstance, Input, Select, Switch, Typography } from 'antd';
|
||||||
import { Store } from 'antd/lib/form/interface';
|
import { Store } from 'antd/lib/form/interface';
|
||||||
import UpgradePrompt from 'components/Upgrade/UpgradePrompt';
|
import UpgradePrompt from 'components/Upgrade/UpgradePrompt';
|
||||||
import { FeatureKeys } from 'constants/features';
|
import { FeatureKeys } from 'constants/features';
|
||||||
@ -95,6 +95,22 @@ function FormAlertChannels({
|
|||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
|
<Form.Item
|
||||||
|
label={t('field_send_resolved')}
|
||||||
|
labelAlign="left"
|
||||||
|
name="send_resolved"
|
||||||
|
>
|
||||||
|
<Switch
|
||||||
|
defaultChecked={initialValue?.send_resolved}
|
||||||
|
onChange={(value): void => {
|
||||||
|
setSelectedConfig((state) => ({
|
||||||
|
...state,
|
||||||
|
send_resolved: value,
|
||||||
|
}));
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
<Form.Item label={t('field_channel_type')} labelAlign="left" name="type">
|
<Form.Item label={t('field_channel_type')} labelAlign="left" name="type">
|
||||||
<Select disabled={editing} onChange={onTypeChangeHandler} value={type}>
|
<Select disabled={editing} onChange={onTypeChangeHandler} value={type}>
|
||||||
<Select.Option value="slack" key="slack">
|
<Select.Option value="slack" key="slack">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user