monitor_schema.models.monitor#

Schema for configuring a monitor.

Module Contents#

Classes#

MonitorConfigMetadata

Metadata related to a monitor.

GlobalAction

Actions that are configured at the team/organization level.

SendEmail

Action to send an email.

SlackWebhook

Action to send a Slack webhook.

RawWebhook

Action to send a Slack webhook.

AnomalyFilter

Filter the anomalies based on certain criteria. If the alerts are filtered down to 0, the monitor won't fire.

EveryAnomalyMode

Config mode that indicates the monitor will send out individual messages per anomaly.

DigestModeGrouping

Enable the ability to group digest by various fields.

DigestMode

Config mode that indicates the monitor will send out a digest message.

Monitor

Customer specified monitor configs.

Attributes#

class monitor_schema.models.monitor.MonitorConfigMetadata(**data: Any)[source]#

Bases: monitor_schema.models.commons.NoExtrasBaseModel

Metadata related to a monitor.

revision :int#
update_timestamp :int#
update_author :str#
class monitor_schema.models.monitor.GlobalAction(**data: Any)[source]#

Bases: monitor_schema.models.commons.NoExtrasBaseModel

Actions that are configured at the team/organization level.

type :Literal[global]#
target :str#
class monitor_schema.models.monitor.SendEmail(**data: Any)[source]#

Bases: monitor_schema.models.commons.NoExtrasBaseModel

Action to send an email.

type :Literal[email]#
target :str#
class monitor_schema.models.monitor.SlackWebhook(**data: Any)[source]#

Bases: monitor_schema.models.commons.NoExtrasBaseModel

Action to send a Slack webhook.

type :Literal[slack]#
target :pydantic.HttpUrl#
class monitor_schema.models.monitor.RawWebhook(**data: Any)[source]#

Bases: monitor_schema.models.commons.NoExtrasBaseModel

Action to send a Slack webhook.

type :Literal[raw]#
target :pydantic.HttpUrl#
class monitor_schema.models.monitor.AnomalyFilter(**data: Any)[source]#

Bases: monitor_schema.models.commons.NoExtrasBaseModel

Filter the anomalies based on certain criteria. If the alerts are filtered down to 0, the monitor won’t fire.

includeColumns :Optional[List[monitor_schema.models.utils.COLUMN_NAME_TYPE]]#
excludeColumns :Optional[List[monitor_schema.models.utils.COLUMN_NAME_TYPE]]#
minWeight :Optional[float]#
maxWeight :Optional[float]#
minRankByWeight :Optional[int]#
maxRankByWeight :Optional[int]#
minTotalWeight :Optional[float]#
maxTotalWeight :Optional[float]#
minAlertCount :Optional[int]#
maxAlertCount :Optional[int]#
includeMetrics :Optional[List[monitor_schema.models.utils.METRIC_NAME_STR]]#
monitor_schema.models.monitor.excludeMetrics :Optional[List[monitor_schema.models.utils.METRIC_NAME_STR]]#
class monitor_schema.models.monitor.EveryAnomalyMode(**data: Any)[source]#

Bases: monitor_schema.models.commons.NoExtrasBaseModel

Config mode that indicates the monitor will send out individual messages per anomaly.

type :Literal[EVERY_ANOMALY]#
filter :Optional[AnomalyFilter]#
class monitor_schema.models.monitor.DigestModeGrouping[source]#

Bases: str, enum.Enum

Enable the ability to group digest by various fields.

byField = byColumn#
byDataset = byDataset#
byAnalyzer = byAnalyzer#
byDay = byDay#
byHour = byHour#
class monitor_schema.models.monitor.DigestMode(**data: Any)[source]#

Bases: monitor_schema.models.commons.NoExtrasBaseModel

Config mode that indicates the monitor will send out a digest message.

type :Literal[DIGEST]#
filter :Optional[AnomalyFilter]#
creationTimeOffset :Optional[str]#
datasetTimestampOffset :Optional[str]#
groupBy :Optional[List[DigestModeGrouping]]#
class monitor_schema.models.monitor.Monitor(**data: Any)[source]#

Bases: monitor_schema.models.commons.NoExtrasBaseModel

Customer specified monitor configs.

class Config[source]#

Updates JSON schema anyOf to oneOf.

static schema_extra(schema: Dict[str, Any], model: pydantic.BaseModel) None[source]#

Update specific fields here (for Union type, specifically).

metadata :Optional[monitor_schema.models.commons.Metadata]#
id :str#
displayName :Optional[str]#
tags :Optional[List[constr(min_length=3, max_length=32, regex='[0-9a-zA-Z\\-_]')]]#
analyzerIds :List[constr(regex='^[A-Za-z0-9_\\-]+$')]#
schedule :Union[monitor_schema.models.commons.FixedCadenceSchedule, monitor_schema.models.commons.CronSchedule, monitor_schema.models.commons.ImmediateSchedule]#
disabled :Optional[bool]#
severity :Optional[int]#
mode :Union[EveryAnomalyMode, DigestMode]#
actions :List[Union[GlobalAction, SendEmail, SlackWebhook, RawWebhook]]#