mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-17 15:36:48 +00:00
194 lines
5.3 KiB
TypeScript
194 lines
5.3 KiB
TypeScript
import { Color } from '@signozhq/design-tokens';
|
|
import { UniversalYAxisUnit } from 'components/YAxisUnitSelector/types';
|
|
import { TIMEZONE_DATA } from 'container/CreateAlertV2/EvaluationSettings/constants';
|
|
import dayjs from 'dayjs';
|
|
import getRandomColor from 'lib/getRandomColor';
|
|
import { v4 } from 'uuid';
|
|
|
|
import {
|
|
AdvancedOptionsState,
|
|
AlertState,
|
|
AlertThresholdMatchType,
|
|
AlertThresholdOperator,
|
|
AlertThresholdState,
|
|
Algorithm,
|
|
EvaluationWindowState,
|
|
NotificationSettingsState,
|
|
Seasonality,
|
|
Threshold,
|
|
TimeDuration,
|
|
} from './types';
|
|
|
|
export const INITIAL_ALERT_STATE: AlertState = {
|
|
name: '',
|
|
labels: {},
|
|
yAxisUnit: undefined,
|
|
};
|
|
|
|
export const INITIAL_CRITICAL_THRESHOLD: Threshold = {
|
|
id: v4(),
|
|
label: 'critical',
|
|
thresholdValue: 0,
|
|
recoveryThresholdValue: null,
|
|
unit: '',
|
|
channels: [],
|
|
color: Color.BG_SAKURA_500,
|
|
};
|
|
|
|
export const INITIAL_WARNING_THRESHOLD: Threshold = {
|
|
id: v4(),
|
|
label: 'warning',
|
|
thresholdValue: 0,
|
|
recoveryThresholdValue: null,
|
|
unit: '',
|
|
channels: [],
|
|
color: Color.BG_AMBER_500,
|
|
};
|
|
|
|
export const INITIAL_INFO_THRESHOLD: Threshold = {
|
|
id: v4(),
|
|
label: 'info',
|
|
thresholdValue: 0,
|
|
recoveryThresholdValue: null,
|
|
unit: '',
|
|
channels: [],
|
|
color: Color.BG_ROBIN_500,
|
|
};
|
|
|
|
export const INITIAL_RANDOM_THRESHOLD: Threshold = {
|
|
id: v4(),
|
|
label: '',
|
|
thresholdValue: 0,
|
|
recoveryThresholdValue: null,
|
|
unit: '',
|
|
channels: [],
|
|
color: getRandomColor(),
|
|
};
|
|
|
|
export const INITIAL_ALERT_THRESHOLD_STATE: AlertThresholdState = {
|
|
selectedQuery: 'A',
|
|
operator: AlertThresholdOperator.IS_ABOVE,
|
|
matchType: AlertThresholdMatchType.AT_LEAST_ONCE,
|
|
evaluationWindow: TimeDuration.FIVE_MINUTES,
|
|
algorithm: Algorithm.STANDARD,
|
|
seasonality: Seasonality.HOURLY,
|
|
thresholds: [INITIAL_CRITICAL_THRESHOLD],
|
|
};
|
|
|
|
export const INITIAL_ADVANCED_OPTIONS_STATE: AdvancedOptionsState = {
|
|
sendNotificationIfDataIsMissing: {
|
|
toleranceLimit: 15,
|
|
timeUnit: UniversalYAxisUnit.MINUTES,
|
|
enabled: false,
|
|
},
|
|
enforceMinimumDatapoints: {
|
|
minimumDatapoints: 0,
|
|
enabled: false,
|
|
},
|
|
delayEvaluation: {
|
|
delay: 5,
|
|
timeUnit: UniversalYAxisUnit.MINUTES,
|
|
},
|
|
evaluationCadence: {
|
|
mode: 'default',
|
|
default: {
|
|
value: 1,
|
|
timeUnit: UniversalYAxisUnit.MINUTES,
|
|
},
|
|
custom: {
|
|
repeatEvery: 'day',
|
|
startAt: dayjs().format('HH:mm:ss'),
|
|
occurence: [],
|
|
timezone: TIMEZONE_DATA[0].value,
|
|
},
|
|
rrule: {
|
|
date: dayjs(),
|
|
startAt: dayjs().format('HH:mm:ss'),
|
|
rrule: '',
|
|
},
|
|
},
|
|
};
|
|
|
|
export const INITIAL_EVALUATION_WINDOW_STATE: EvaluationWindowState = {
|
|
windowType: 'rolling',
|
|
timeframe: '5m0s',
|
|
startingAt: {
|
|
time: dayjs().format('HH:mm:ss'),
|
|
number: '1',
|
|
timezone: TIMEZONE_DATA[0].value,
|
|
unit: UniversalYAxisUnit.MINUTES,
|
|
},
|
|
};
|
|
|
|
export const THRESHOLD_OPERATOR_OPTIONS = [
|
|
{ value: AlertThresholdOperator.IS_ABOVE, label: 'ABOVE' },
|
|
{ value: AlertThresholdOperator.IS_BELOW, label: 'BELOW' },
|
|
{ value: AlertThresholdOperator.IS_EQUAL_TO, label: 'EQUAL TO' },
|
|
{ value: AlertThresholdOperator.IS_NOT_EQUAL_TO, label: 'NOT EQUAL TO' },
|
|
];
|
|
|
|
export const ANOMALY_THRESHOLD_OPERATOR_OPTIONS = [
|
|
{ value: AlertThresholdOperator.IS_ABOVE, label: 'IS ABOVE' },
|
|
{ value: AlertThresholdOperator.IS_BELOW, label: 'IS BELOW' },
|
|
{ value: AlertThresholdOperator.ABOVE_BELOW, label: 'ABOVE/BELOW' },
|
|
];
|
|
|
|
export const THRESHOLD_MATCH_TYPE_OPTIONS = [
|
|
{ value: AlertThresholdMatchType.AT_LEAST_ONCE, label: 'AT LEAST ONCE' },
|
|
{ value: AlertThresholdMatchType.ALL_THE_TIME, label: 'ALL THE TIME' },
|
|
{ value: AlertThresholdMatchType.ON_AVERAGE, label: 'ON AVERAGE' },
|
|
{ value: AlertThresholdMatchType.IN_TOTAL, label: 'IN TOTAL' },
|
|
{ value: AlertThresholdMatchType.LAST, label: 'LAST' },
|
|
];
|
|
|
|
export const ANOMALY_THRESHOLD_MATCH_TYPE_OPTIONS = [
|
|
{ value: AlertThresholdMatchType.AT_LEAST_ONCE, label: 'AT LEAST ONCE' },
|
|
{ value: AlertThresholdMatchType.ALL_THE_TIME, label: 'ALL THE TIME' },
|
|
];
|
|
|
|
export const ANOMALY_TIME_DURATION_OPTIONS = [
|
|
{ value: TimeDuration.FIVE_MINUTES, label: '5 minutes' },
|
|
{ value: TimeDuration.TEN_MINUTES, label: '10 minutes' },
|
|
{ value: TimeDuration.FIFTEEN_MINUTES, label: '15 minutes' },
|
|
{ value: TimeDuration.ONE_HOUR, label: '1 hour' },
|
|
{ value: TimeDuration.THREE_HOURS, label: '3 hours' },
|
|
{ value: TimeDuration.FOUR_HOURS, label: '4 hours' },
|
|
{ value: TimeDuration.TWENTY_FOUR_HOURS, label: '24 hours' },
|
|
];
|
|
|
|
export const ANOMALY_ALGORITHM_OPTIONS = [
|
|
{ value: Algorithm.STANDARD, label: 'Standard' },
|
|
];
|
|
|
|
export const ANOMALY_SEASONALITY_OPTIONS = [
|
|
{ value: Seasonality.HOURLY, label: 'Hourly' },
|
|
{ value: Seasonality.DAILY, label: 'Daily' },
|
|
{ value: Seasonality.WEEKLY, label: 'Weekly' },
|
|
];
|
|
|
|
export const ADVANCED_OPTIONS_TIME_UNIT_OPTIONS = [
|
|
{ value: UniversalYAxisUnit.SECONDS, label: 'Seconds' },
|
|
{ value: UniversalYAxisUnit.MINUTES, label: 'Minutes' },
|
|
{ value: UniversalYAxisUnit.HOURS, label: 'Hours' },
|
|
];
|
|
|
|
export const NOTIFICATION_MESSAGE_PLACEHOLDER =
|
|
'This alert is fired when the defined metric (current value: {{$value}}) crosses the threshold ({{$threshold}})';
|
|
|
|
export const RE_NOTIFICATION_CONDITION_OPTIONS = [
|
|
{ value: 'firing', label: 'Firing' },
|
|
{ value: 'nodata', label: 'No Data' },
|
|
];
|
|
|
|
export const INITIAL_NOTIFICATION_SETTINGS_STATE: NotificationSettingsState = {
|
|
multipleNotifications: [],
|
|
reNotification: {
|
|
enabled: false,
|
|
value: 1,
|
|
unit: UniversalYAxisUnit.MINUTES,
|
|
conditions: [],
|
|
},
|
|
description: NOTIFICATION_MESSAGE_PLACEHOLDER,
|
|
routingPolicies: false,
|
|
};
|