Create a monitor

POST https://api.ap1.datadoghq.com/api/v1/monitorhttps://api.ap2.datadoghq.com/api/v1/monitorhttps://api.datadoghq.eu/api/v1/monitorhttps://api.ddog-gov.com/api/v1/monitorhttps://api.us2.ddog-gov.com/api/v1/monitorhttps://api.uk1.datadoghq.com/api/v1/monitorhttps://api.datadoghq.com/api/v1/monitorhttps://api.us3.datadoghq.com/api/v1/monitorhttps://api.us5.datadoghq.com/api/v1/monitor

概要

指定されたオプションを使用してモニターを作成します。

モニタータイプ

次から選択したモニターのタイプ:

  • 異常検知: query alert
  • APM: query alert または trace-analytics alert
  • 複合条件: composite
  • カスタム: service check
  • 予測: query alert
  • ホスト: service check
  • インテグレーション: query alert または service check
  • ライブプロセス: process alert
  • ログ: log alert
  • メトリクス: query alert
  • ネットワーク: service check
  • 外れ値: query alert
  • プロセス: service check
  • rum: rum alert
  • SLO: slo alert
  • watchdog: event-v2 alert
  • event-v2: event-v2 alert
  • 監査: audit alert
  • エラー追跡: error-tracking alert
  • データベースモニタリング: database-monitoring alert
  • ネットワークパフォーマンス: network-performance alert
  • クラウドコスト: cost alert

:

  • Synthetic モニターは Synthetics API を使って作成します。詳しくは、Synthetics API ドキュメントを参照してください。
  • ログモニターには、スコープされていないアプリキーが必要です。

クエリタイプ

メトリクスアラートクエリ

例: time_aggr(time_window):space_aggr:metric{tags} [by {key}] operator #

  • time_aggr: avg、sum、max、min、change、または pct_change
  • time_window: last_#m (モニタータイプに応じて、1〜10080 の #) または last_#h(モニタータイプに応じて、1〜168 の #) または last_1d、または last_1w
  • space_aggr: avg、sum、min、または max
  • tags: 1 つまたは複数のタグ (カンマ区切り)、または *
  • key: key:value タグ構文における ‘key’、グループ内の各タグに対して個別のアラートを定義します (マルチアラート)
  • operator: <、<=、>、>=、==、または !=
  • #: しきい値の設定に用いる整数または 10 進数

_change_ または _pct_change_ の時間アグリゲータを使用している場合は、代わりに change_aggr(time_aggr(time_window), timeshift):space_aggr:metric{tags} [by {key}] operator # を使用します。

  • change_aggr change、pct_change
  • time_aggr avg、sum、max、min 詳細
  • time_window last_#m (モニタータイプに応じて、1〜2880)、last_#h (モニタータイプに応じて、1〜48)、または last_#d (1 or 2)
  • timeshift #m_ago (5、10、15、または 30)、#h_ago (1、2、または 4)、または 1d_ago

これを利用して、以下のクエリで外れ値モニターを作成します。 avg(last_30m):outliers(avg:system.cpu.user{role:es-events-data} by {host}, 'dbscan', 7) > 0

サービスチェッククエリ

例: "check".over(tags).last(count).by(group).count_by_status()

  • check チェックの名前。例: datadog.agent.up
  • tags 1 つ以上の引用符付きタグ (カンマ区切り)、または “*"。 例: .over("env:prod", "role:db")over を空白にすることはできません。
  • count 最大しきい値 (options で定義) 以上でなければなりません。最大値は 100 です。 例えば、1 つの critical、3 つの ok、2 つの warn のステータスに対して通知するように指定した場合、count は最低でも 3 でなければなりません。
  • group チェックモニターに指定する必要があります。一部のサービスチェックでは、チェックごとのグループ化がすでに明示的に知られています。 例えば、Postgres インテグレーションモニターは dbhostport でタグ付けされ、ネットワークモニターは hostinstanceurl でタグ付けされます。詳しくは サービスチェックのドキュメントを参照してください。
イベントアラートクエリ

イベントアラートクエリは、イベント V2 アラートクエリに置き換わりました。詳細については、イベント移行ガイドを参照してください。

イベント V2 アラートクエリ

例: events(query).rollup(rollup_method[, measure]).last(time_window) operator #

  • query 検索クエリ - ログ検索構文に従います。
  • rollup_method 統計情報のロールアップの方法 - countavgcardinality をサポートします。
  • measure avg とカーディナリティ rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1〜2880)、#h (1〜48).
  • operator <<=>>===、または !=
  • # しきい値の設定に使用する整数または 10 進数。
プロセスアラートクエリ

例: processes(search).over(tags).rollup('count').last(timeframe) operator #

  • search プロセスをクエリするためのフリーテキスト検索文字列。 一致したプロセスは、Live Processes ページの結果と一致します。
  • tags 1 つ以上のタグ (カンマ区切り)
  • timeframe カウントをロールアップする時間枠。例: 10m、4h。サポートされているタイムフレーム: S、M、H、D
  • operator <、<=、>、>=、==、または !=
  • # しきい値の設定に用いる整数または 10 進数。
ログアラートクエリ

例: logs(query).index(index_name).rollup(rollup_method[, measure]).last(time_window) operator #

  • query 検索クエリ - ログ検索構文に従います。
  • index_name 複数インデックスの組織の場合、リクエストが実行されるログインデックス。
  • rollup_method 統計情報のロールアップの方法 - countavgcardinality をサポートします。
  • measure avg とカーディナリティ rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1〜2880)、#h (1〜48)。
  • operator <<=>>===、または !=
  • # しきい値の設定に用いる整数または 10 進数。
複合条件クエリ

例: 12345 && 67890、ここで 1234567890 は非複合条件モニターの ID

  • name [必須デフォルト = 動的、クエリに基づく]: アラートの名前。
  • message [必須デフォルト = 動的、クエリに基づく]: このモニターに対する通知に含めるメッセージ。 イベントと同じ「@ユーザー名」表記で、特定のユーザーに対してメール通知を行うことができます。
  • tags [オプションデフォルト = 空リスト]: モニターに関連付けるタグの一覧。 API 経由ですべてのモニターの詳細を取得する場合、monitor_tags 引数を使用して、これらのタグで結果をフィルタリングします。 これは、API 経由でのみ利用可能で、Datadog UI では表示も編集もできません。
SLO アラートクエリ

例: error_budget("slo_id").over("time_window") operator #

  • slo_id: 警告を構成する SLO の英数字の SLO ID。
  • time_window: 警告したい SLO ターゲットのタイムウィンドウ。有効なオプション: 7d30d90d`。
  • operator: >= または >
監査アラートクエリ

例: audits(query).rollup(rollup_method[, measure]).last(time_window) operator #

  • query 検索クエリ - ログ検索構文に従います。
  • rollup_method 統計情報のロールアップの方法 - countavgcardinality をサポートします。
  • measure avg とカーディナリティ rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1〜2880)、#h (1〜48)。
  • operator <<=>>===、または !=
  • # しきい値の設定に用いる整数または 10 進数。
CI パイプラインのアラートクエリ

例: ci-pipelines(query).rollup(rollup_method[, measure]).last(time_window) operator #

  • query 検索クエリ - ログ検索構文に従います。
  • rollup_method 統計情報のロールアップの方法 - countavgcardinality をサポートします。
  • measure avg とカーディナリティ rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1〜2880)、#h (1〜48)。
  • operator <<=>>===、または !=
  • # しきい値の設定に用いる整数または 10 進数。
CI テストアラートクエリ

例: ci-tests(query).rollup(rollup_method[, measure]).last(time_window) operator #

  • query 検索クエリ - ログ検索構文に従います。
  • rollup_method 統計情報のロールアップメソッド - countavgcardinality をサポートします。
  • measure avg とカーディナリティ rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1〜2880)、#h (1〜48)
  • operator <<=>>===、または !=
  • # しきい値の設定に使用する整数または 10 進数。
エラー追跡アラートクエリ

“New issue” の 例: error-tracking(query).source(issue_source).new().rollup(rollup_method[, measure]).by(group_by).last(time_window) operator # “High impact issue” の 例: error-tracking(query).source(issue_source).impact().rollup(rollup_method[, measure]).by(group_by).last(time_window) operator #

  • query は 検索クエリで、ログ検索構文に従います。
  • issue_source はイシューソースです、allbrowsermobilebackend をサポートし、省略された場合は all が デフォルトになります。
  • rollup_method は 統計ロールアップメソッドです。countavgcardinality を サポートし、省略された場合は count がデフォルトになります。
  • measureavg および cardinalityrollup_method に対して使用するメジャーまたは利用したいファセット名を指定します。
  • group by はグループ化する属性のカンマ区切りリストで、少なくとも issue.id を含める必要があります。
  • time_window は #m (1 から 2880 の間) 、 #h (1 から 48 の間) です。
  • operator<<=>>===!= の いずれかを指定します。
  • # はしきい値を設定するために使用する整数または小数値です。

データベースモニタリングアラートクエリ

例: database-monitoring(query).rollup(rollup_method[, measure]).last(time_window) operator #

  • query 検索クエリ - ログ検索構文に従います。
  • rollup_method 統計情報のロールアップの方法 - countavgcardinality をサポートします。
  • measure avg とカーディナリティ rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1〜2880)、#h (1〜48)。
  • operator <<=>>===、または !=
  • # しきい値の設定に用いる整数または 10 進数。

ネットワークパフォーマンスアラートクエリ

例: network-performance(query).rollup(rollup_method[, measure]).last(time_window) operator #

  • query 検索クエリ -ログ検索構文に従います。
  • rollup_method 統計ロールアップ方法 - countavgcardinality をサポートしています。
  • measure avg およびカーディナリティ rollup_method 用 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1〜2880)、#h (1〜48)
  • operator <<=>>===、または !=
  • # しきい値を設定するための整数または 10 進数。
This endpoint requires the monitors_write permission.

OAuth apps require the monitors_write authorization scope to access this endpoint.

リクエスト

Body Data (required)

モニターのリクエスト本文を作成します。

Expand All

フィールド

種類

説明

assets

[object]

The list of monitor assets tied to a monitor, which represents key links for users to take action on monitor alerts (for example, runbooks).

category [required]

enum

Indicates the type of asset this entity represents on a monitor. Allowed enum values: runbook

name [required]

string

Name for the monitor asset

resource_key

string

Represents the identifier of the internal Datadog resource that this asset represents. IDs in this field should be passed in as strings.

resource_type

enum

Type of internal Datadog resource associated with a monitor asset. Allowed enum values: notebook

url [required]

string

URL link for the asset. For links with an internal resource type set, this should be the relative path to where the Datadog domain is appended internally. For external links, this should be the full URL path.

created

date-time

Timestamp of the monitor creation.

creator

object

Object describing the creator of the shared element.

email

string

Email of the creator.

handle

string

Handle of the creator.

name

string

Name of the creator.

deleted

date-time

Whether or not the monitor is deleted. (Always null)

draft_status

enum

Indicates whether the monitor is in a draft or published state.

draft: The monitor appears as Draft and does not send notifications. published: The monitor is active and evaluates conditions and notify as configured.

This field is in preview. The draft value is only available to customers with the feature enabled. Allowed enum values: draft,published

default: published

id

int64

ID of this monitor.

matching_downtimes

[object]

A list of active v1 downtimes that match this monitor.

end

int64

POSIX timestamp to end the downtime.

id [required]

int64

The downtime ID.

scope

[string]

The scope(s) to which the downtime applies. Must be in key:value format. For example, host:app2. Provide multiple scopes as a comma-separated list like env:dev,env:prod. The resulting downtime applies to sources that matches ALL provided scopes (env:dev AND env:prod).

start

int64

POSIX timestamp to start the downtime.

message

string

A message to include with notifications for this monitor.

modified

date-time

Last timestamp when the monitor was edited.

multi

boolean

Whether or not the monitor is broken down on different groups.

name

string

The monitor name.

options

object

List of options associated with your monitor.

aggregation

object

Type of aggregation performed in the monitor query.

group_by

string

Group to break down the monitor on.

metric

string

Metric name used in the monitor.

type

string

Metric type used in the monitor.

device_ids

[string]

DEPRECATED: IDs of the device the Synthetics monitor is running on.

enable_logs_sample

boolean

Whether or not to send a log sample when the log monitor triggers.

enable_samples

boolean

Whether or not to send a list of samples when the monitor triggers. This is only used by CI Test and Pipeline monitors.

escalation_message

string

We recommend using the is_renotify, block in the original message instead. A message to include with a re-notification. Supports the @username notification we allow elsewhere. Not applicable if renotify_interval is None.

evaluation_delay

int64

Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the value is set to 300 (5min), the timeframe is set to last_5m and the time is 7:00, the monitor evaluates data from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor always has data during evaluation.

group_retention_duration

string

The time span after which groups with missing data are dropped from the monitor state. The minimum value is one hour, and the maximum value is 72 hours. Example values are: "60m", "1h", and "2d". This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.

groupby_simple_monitor

boolean

DEPRECATED: Whether the log alert monitor triggers a single alert or multiple alerts when any group breaches a threshold. Use notify_by instead.

include_tags

boolean

A Boolean indicating whether notifications from this monitor automatically inserts its triggering tags into the title.

Examples

  • If True, [Triggered on {host:h1}] Monitor Title
  • If False, [Triggered] Monitor Title

default: true

locked

boolean

DEPRECATED: Whether or not the monitor is locked (only editable by creator and admins). Use restricted_roles instead.

min_failure_duration

int64

How long the test should be in failure before alerting (integer, number of seconds, max 7200).

min_location_failed

int64

The minimum number of locations in failure at the same time during at least one moment in the min_failure_duration period (min_location_failed and min_failure_duration are part of the advanced alerting rules - integer, >= 1).

default: 1

new_group_delay

int64

Time (in seconds) to skip evaluations for new groups.

For example, this option can be used to skip evaluations for new hosts while they initialize.

Must be a non negative integer.

new_host_delay

int64

DEPRECATED: Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor results. Should be a non negative integer.

Use new_group_delay instead.

default: 300

no_data_timeframe

int64

The number of minutes before a monitor notifies after data stops reporting. Datadog recommends at least 2x the monitor timeframe for query alerts or 2 minutes for service checks. If omitted, 2x the evaluation timeframe is used for query alerts, and 24 hours is used for service checks.

notification_preset_name

enum

Toggles the display of additional content sent in the monitor notification. Allowed enum values: show_all,hide_query,hide_handles,hide_all,hide_query_and_handles,show_only_snapshot,hide_handles_and_footer

default: show_all

notify_audit

boolean

A Boolean indicating whether tagged users is notified on changes to this monitor.

notify_by

[string]

Controls what granularity a monitor alerts on. Only available for monitors with groupings. For instance, a monitor grouped by cluster, namespace, and pod can be configured to only notify on each new cluster violating the alert conditions by setting notify_by to ["cluster"]. Tags mentioned in notify_by must be a subset of the grouping tags in the query. For example, a query grouped by cluster and namespace cannot notify on region. Setting notify_by to ["*"] configures the monitor to notify as a simple-alert.

notify_no_data

boolean

A Boolean indicating whether this monitor notifies when data stops reporting. Defaults to false.

on_missing_data

enum

Controls how groups or monitors are treated if an evaluation does not return any data points. The default option results in different behavior depending on the monitor query type. For monitors using Count queries, an empty monitor evaluation is treated as 0 and is compared to the threshold conditions. For monitors using any query type other than Count, for example Gauge, Measure, or Rate, the monitor shows the last known status. This option is available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors. It is also required for metric monitors that use scheduling_options.custom_schedule. Allowed enum values: default,show_no_data,show_and_notify_no_data,resolve

renotify_interval

int64

The number of minutes after the last notification before a monitor re-notifies on the current status. It only re-notifies if it’s not resolved.

renotify_occurrences

int64

The number of times re-notification messages should be sent on the current status at the provided re-notification interval.

renotify_statuses

[string]

The types of monitor statuses for which re-notification messages are sent. Default: null if renotify_interval is null. If renotify_interval is set, defaults to renotify on Alert and No Data.

require_full_window

boolean

A Boolean indicating whether this monitor needs a full window of data before it’s evaluated. We highly recommend you set this to false for sparse metrics, otherwise some evaluations are skipped. Default is false. This setting only applies to metric monitors.

scheduling_options

object

Configuration options for scheduling.

custom_schedule

object

Configuration options for the custom schedule. This feature is in private beta.

recurrences

[object]

Array of custom schedule recurrences.

rrule

string

Defines the recurrence rule (RRULE) for a given schedule.

start

string

Defines the start date and time of the recurring schedule.

timezone

string

Defines the timezone the schedule runs on.

evaluation_window

object

Configuration options for the evaluation window. If hour_starts is set, no other fields may be set. Otherwise, day_starts and month_starts must be set together.

day_starts

string

The time of the day at which a one day cumulative evaluation window starts.

hour_starts

int32

The minute of the hour at which a one hour cumulative evaluation window starts.

month_starts

int32

The day of the month at which a one month cumulative evaluation window starts.

timezone

string

The timezone of the time of the day of the cumulative evaluation window start.

silenced

object

DEPRECATED: Information about the downtime applied to the monitor. Only shows v1 downtimes.

<any-key>

int64

UTC epoch timestamp in seconds when the downtime for the group expires.

synthetics_check_id

string

DEPRECATED: ID of the corresponding Synthetic check.

threshold_windows

object

Alerting time window options.

recovery_window

string

Describes how long an anomalous metric must be normal before the alert recovers.

trigger_window

string

Describes how long a metric must be anomalous before an alert triggers.

thresholds

object

List of the different monitor threshold available.

critical

double

The monitor CRITICAL threshold.

critical_query

string

Query evaluated as a dynamic CRITICAL threshold. Only supported on metric monitors with a formula query and options['variables']. Cannot be combined with static thresholds. This field is in preview.

critical_recovery

double

The monitor CRITICAL recovery threshold.

critical_recovery_query

string

Query evaluated as a dynamic CRITICAL recovery threshold. Only supported on metric monitors with a formula query and options['variables']. Cannot be combined with static thresholds. This field is in preview.

ok

double

The monitor OK threshold.

unknown

double

The monitor UNKNOWN threshold.

warning

double

The monitor WARNING threshold.

warning_recovery

double

The monitor WARNING recovery threshold.

timeout_h

int64

The number of hours of the monitor not reporting data before it automatically resolves from a triggered state. The minimum allowed value is 0 hours. The maximum allowed value is 24 hours.

variables

[ <oneOf>]

List of requests that can be used in the monitor query. This feature is currently in beta.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A formula and functions cost query.

aggregator

enum

Aggregation methods for metric queries. Allowed enum values: avg,sum,max,min,last,area,l2norm,percentile,stddev

data_source [required]

enum

Data source for cost queries. Allowed enum values: metrics,cloud_cost,datadog_usage

name [required]

string

Name of the query for use in formulas.

query [required]

string

The monitor query.

Option 3

object

A formula and functions data quality query.

data_source [required]

enum

Data source for data quality queries. Allowed enum values: data_quality_metrics

filter [required]

string

Filter expression used to match on data entities. Uses Aastra query syntax.

group_by

[string]

Optional grouping fields for aggregation.

measure [required]

string

The data quality measure to query. Common values include: bytes, cardinality, custom, freshness, max, mean, min, nullness, percent_negative, percent_zero, row_count, stddev, sum, uniqueness. Additional values may be supported.

monitor_options

object

Monitor configuration options for data quality queries.

crontab_override

string

Crontab expression to override the default schedule.

custom_sql

string

Custom SQL query for the monitor.

custom_where

string

Custom WHERE clause for the query.

group_by_columns

[string]

Columns to group results by.

model_type_override

enum

Override for the model type used in anomaly detection. Allowed enum values: freshness,percentage,any

name [required]

string

Name of the query for use in formulas.

schema_version

string

Schema version for the data quality query.

scope

string

Optional scoping expression to further filter metrics. Uses metrics filter syntax. This is useful when an entity has been configured to emit metrics with additional tags.

Option 4

object

A formula and functions data jobs query.

job_type [required]

string

The type of job being monitored. Valid values include: databricks.job, spark.application, airflow.dag, dbt.job, dbt.model, dbt.test, glue.job. Custom job types are supported with the custom.ol. prefix.

jobs_query [required]

string

Filter expression used to select the jobs to monitor.

name [required]

string

Name of the query for use in formulas. Must be run_query.

query_dialect [required]

string

Query dialect for data jobs queries. Currently only metric is supported.

Option 5

object

A formula and functions aggregate augmented query. Used to enrich base query results with data from a reference table.

augment_query [required]

 <oneOf>

Augment query for aggregate augmented queries. Can be an events query or a reference table query.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A reference table query for use in aggregate queries.

columns

[object]

List of columns to retrieve from the reference table.

alias

string

Optional alias for the column.

name [required]

string

Name of the column.

data_source [required]

enum

Data source for reference table queries. Allowed enum values: reference_table

name

string

Name of the query.

query_filter

string

Optional filter expression for the reference table query.

table_name [required]

string

Name of the reference table.

base_query [required]

 <oneOf>

Base query for aggregate queries. Can be an events query or a metrics query.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A formula and functions metrics query for use in aggregate queries.

aggregator

enum

Aggregator for metrics queries. Allowed enum values: avg,min,max,sum,last,mean,area,l2norm,percentile,stddev

Show 1 more,count_unique

data_source [required]

enum

Data source for metrics queries. Allowed enum values: metrics,cloud_cost,datadog_usage

name

string

Name of the query for use in formulas.

query [required]

string

The metrics query definition.

compute [required]

[object]

Compute options for the query.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for aggregate augmented queries. Allowed enum values: aggregate_augmented_query

group_by [required]

[object]

Group by options for the query.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

join_condition [required]

object

Join condition for aggregate augmented queries.

augment_attribute [required]

string

Attribute from the augment query to join on.

base_attribute [required]

string

Attribute from the base query to join on.

join_type [required]

enum

Join type for aggregate query join conditions. Allowed enum values: inner,left

name

string

Name of the query for use in formulas.

Option 6

object

A formula and functions aggregate filtered query. Used to filter base query results using data from another source.

base_query [required]

 <oneOf>

Base query for aggregate queries. Can be an events query or a metrics query.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A formula and functions metrics query for use in aggregate queries.

aggregator

enum

Aggregator for metrics queries. Allowed enum values: avg,min,max,sum,last,mean,area,l2norm,percentile,stddev

Show 1 more,count_unique

data_source [required]

enum

Data source for metrics queries. Allowed enum values: metrics,cloud_cost,datadog_usage

name

string

Name of the query for use in formulas.

query [required]

string

The metrics query definition.

compute

[object]

Compute options for the query.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for aggregate filtered queries. Allowed enum values: aggregate_filtered_query

filter_query [required]

 <oneOf>

Filter query for aggregate filtered queries. Can be an events query or a reference table query.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A reference table query for use in aggregate queries.

columns

[object]

List of columns to retrieve from the reference table.

alias

string

Optional alias for the column.

name [required]

string

Name of the column.

data_source [required]

enum

Data source for reference table queries. Allowed enum values: reference_table

name

string

Name of the query.

query_filter

string

Optional filter expression for the reference table query.

table_name [required]

string

Name of the reference table.

filters [required]

[object]

Filter conditions for the query.

base_attribute [required]

string

Attribute from the base query to filter on.

exclude

boolean

Whether to exclude matching records instead of including them.

filter_attribute [required]

string

Attribute from the filter query to match against.

group_by

[object]

Group by options for the query.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

name

string

Name of the query for use in formulas.

overall_state

enum

The different states your monitor can be in. Allowed enum values: Alert,Ignored,No Data,OK,Skipped,Unknown,Warn

priority

int64

Integer from 1 (high) to 5 (low) indicating alert severity.

query [required]

string

The monitor query.

restricted_roles

[string]

A list of unique role identifiers to define which roles are allowed to edit the monitor. The unique identifiers for all roles can be pulled from the Roles API and are located in the data.id field. Editing a monitor includes any updates to the monitor configuration, monitor deletion, and muting of the monitor for any amount of time. You can use the Restriction Policies API to manage write authorization for individual monitors by teams and users, in addition to roles.

state

object

Wrapper object with the different monitor states.

groups

object

Dictionary where the keys are groups (comma separated lists of tags) and the values are the list of groups your monitor is broken down on.

<any-key>

object

Monitor state for a single group.

last_nodata_ts

int64

Latest timestamp the monitor was in NO_DATA state.

last_notified_ts

int64

Latest timestamp of the notification sent for this monitor group.

last_resolved_ts

int64

Latest timestamp the monitor group was resolved.

last_triggered_ts

int64

Latest timestamp the monitor group triggered.

name

string

The name of the monitor.

status

enum

The different states your monitor can be in. Allowed enum values: Alert,Ignored,No Data,OK,Skipped,Unknown,Warn

tags

[string]

Tags associated to your monitor.

type [required]

enum

The type of the monitor. For more information about type, see the monitor options docs. Allowed enum values: composite,event alert,log alert,metric alert,process alert,query alert,rum alert,service check,synthetics alert,trace-analytics alert

Show 12 more,slo alert,event-v2 alert,audit alert,ci-pipelines alert,ci-tests alert,error-tracking alert,database-monitoring alert,network-performance alert,cost alert,data-quality alert,network-path alert,data-jobs alert

{
  "name": "Example Monitor",
  "type": "cost alert",
  "query": "formula(\"exclude_null(query1)\").last(\"7d\").anomaly(direction=\"above\", threshold=10) >= 5",
  "message": "some message Notify: @hipchat-channel",
  "tags": [
    "test:examplemonitor",
    "env:ci"
  ],
  "priority": 3,
  "options": {
    "thresholds": {
      "critical": 5,
      "warning": 3
    },
    "variables": [
      {
        "data_source": "cloud_cost",
        "query": "sum:aws.cost.net.amortized.shared.resources.allocated{aws_product IN (amplify ,athena, backup, bedrock ) } by {aws_product}.rollup(sum, 86400)",
        "name": "query1",
        "aggregator": "sum"
      }
    ],
    "include_tags": true
  }
}
{
  "name": "Example-Monitor",
  "type": "data-jobs alert",
  "query": "formula(\"failed_runs(run_query)\").by(job_name,workspace_name).last(10d) > 0",
  "message": "Data jobs alert triggered",
  "tags": [
    "test:examplemonitor",
    "env:ci"
  ],
  "options": {
    "thresholds": {
      "critical": 0
    },
    "variables": [
      {
        "name": "run_query",
        "jobs_query": "job_name:*",
        "job_type": "databricks.job",
        "query_dialect": "metric"
      }
    ]
  }
}
{
  "name": "Example-Monitor",
  "type": "data-quality alert",
  "query": "formula(\"query1\").last(\"5m\") > 100",
  "message": "Data quality alert triggered",
  "tags": [
    "test:examplemonitor",
    "env:ci"
  ],
  "priority": 3,
  "options": {
    "thresholds": {
      "critical": 100
    },
    "variables": [
      {
        "name": "query1",
        "data_source": "data_quality_metrics",
        "measure": "row_count",
        "filter": "search for column where `database:production AND table:users`",
        "group_by": [
          "entity_id"
        ]
      }
    ]
  }
}

応答

OK

Object describing a monitor.

Expand All

フィールド

種類

説明

assets

[object]

The list of monitor assets tied to a monitor, which represents key links for users to take action on monitor alerts (for example, runbooks).

category [required]

enum

Indicates the type of asset this entity represents on a monitor. Allowed enum values: runbook

name [required]

string

Name for the monitor asset

resource_key

string

Represents the identifier of the internal Datadog resource that this asset represents. IDs in this field should be passed in as strings.

resource_type

enum

Type of internal Datadog resource associated with a monitor asset. Allowed enum values: notebook

url [required]

string

URL link for the asset. For links with an internal resource type set, this should be the relative path to where the Datadog domain is appended internally. For external links, this should be the full URL path.

created

date-time

Timestamp of the monitor creation.

creator

object

Object describing the creator of the shared element.

email

string

Email of the creator.

handle

string

Handle of the creator.

name

string

Name of the creator.

deleted

date-time

Whether or not the monitor is deleted. (Always null)

draft_status

enum

Indicates whether the monitor is in a draft or published state.

draft: The monitor appears as Draft and does not send notifications. published: The monitor is active and evaluates conditions and notify as configured.

This field is in preview. The draft value is only available to customers with the feature enabled. Allowed enum values: draft,published

default: published

id

int64

ID of this monitor.

matching_downtimes

[object]

A list of active v1 downtimes that match this monitor.

end

int64

POSIX timestamp to end the downtime.

id [required]

int64

The downtime ID.

scope

[string]

The scope(s) to which the downtime applies. Must be in key:value format. For example, host:app2. Provide multiple scopes as a comma-separated list like env:dev,env:prod. The resulting downtime applies to sources that matches ALL provided scopes (env:dev AND env:prod).

start

int64

POSIX timestamp to start the downtime.

message

string

A message to include with notifications for this monitor.

modified

date-time

Last timestamp when the monitor was edited.

multi

boolean

Whether or not the monitor is broken down on different groups.

name

string

The monitor name.

options

object

List of options associated with your monitor.

aggregation

object

Type of aggregation performed in the monitor query.

group_by

string

Group to break down the monitor on.

metric

string

Metric name used in the monitor.

type

string

Metric type used in the monitor.

device_ids

[string]

DEPRECATED: IDs of the device the Synthetics monitor is running on.

enable_logs_sample

boolean

Whether or not to send a log sample when the log monitor triggers.

enable_samples

boolean

Whether or not to send a list of samples when the monitor triggers. This is only used by CI Test and Pipeline monitors.

escalation_message

string

We recommend using the is_renotify, block in the original message instead. A message to include with a re-notification. Supports the @username notification we allow elsewhere. Not applicable if renotify_interval is None.

evaluation_delay

int64

Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the value is set to 300 (5min), the timeframe is set to last_5m and the time is 7:00, the monitor evaluates data from 6:50 to 6:55. This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor always has data during evaluation.

group_retention_duration

string

The time span after which groups with missing data are dropped from the monitor state. The minimum value is one hour, and the maximum value is 72 hours. Example values are: "60m", "1h", and "2d". This option is only available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors.

groupby_simple_monitor

boolean

DEPRECATED: Whether the log alert monitor triggers a single alert or multiple alerts when any group breaches a threshold. Use notify_by instead.

include_tags

boolean

A Boolean indicating whether notifications from this monitor automatically inserts its triggering tags into the title.

Examples

  • If True, [Triggered on {host:h1}] Monitor Title
  • If False, [Triggered] Monitor Title

default: true

locked

boolean

DEPRECATED: Whether or not the monitor is locked (only editable by creator and admins). Use restricted_roles instead.

min_failure_duration

int64

How long the test should be in failure before alerting (integer, number of seconds, max 7200).

min_location_failed

int64

The minimum number of locations in failure at the same time during at least one moment in the min_failure_duration period (min_location_failed and min_failure_duration are part of the advanced alerting rules - integer, >= 1).

default: 1

new_group_delay

int64

Time (in seconds) to skip evaluations for new groups.

For example, this option can be used to skip evaluations for new hosts while they initialize.

Must be a non negative integer.

new_host_delay

int64

DEPRECATED: Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of monitor results. Should be a non negative integer.

Use new_group_delay instead.

default: 300

no_data_timeframe

int64

The number of minutes before a monitor notifies after data stops reporting. Datadog recommends at least 2x the monitor timeframe for query alerts or 2 minutes for service checks. If omitted, 2x the evaluation timeframe is used for query alerts, and 24 hours is used for service checks.

notification_preset_name

enum

Toggles the display of additional content sent in the monitor notification. Allowed enum values: show_all,hide_query,hide_handles,hide_all,hide_query_and_handles,show_only_snapshot,hide_handles_and_footer

default: show_all

notify_audit

boolean

A Boolean indicating whether tagged users is notified on changes to this monitor.

notify_by

[string]

Controls what granularity a monitor alerts on. Only available for monitors with groupings. For instance, a monitor grouped by cluster, namespace, and pod can be configured to only notify on each new cluster violating the alert conditions by setting notify_by to ["cluster"]. Tags mentioned in notify_by must be a subset of the grouping tags in the query. For example, a query grouped by cluster and namespace cannot notify on region. Setting notify_by to ["*"] configures the monitor to notify as a simple-alert.

notify_no_data

boolean

A Boolean indicating whether this monitor notifies when data stops reporting. Defaults to false.

on_missing_data

enum

Controls how groups or monitors are treated if an evaluation does not return any data points. The default option results in different behavior depending on the monitor query type. For monitors using Count queries, an empty monitor evaluation is treated as 0 and is compared to the threshold conditions. For monitors using any query type other than Count, for example Gauge, Measure, or Rate, the monitor shows the last known status. This option is available for APM Trace Analytics, Audit Trail, CI, Error Tracking, Event, Logs, and RUM monitors. It is also required for metric monitors that use scheduling_options.custom_schedule. Allowed enum values: default,show_no_data,show_and_notify_no_data,resolve

renotify_interval

int64

The number of minutes after the last notification before a monitor re-notifies on the current status. It only re-notifies if it’s not resolved.

renotify_occurrences

int64

The number of times re-notification messages should be sent on the current status at the provided re-notification interval.

renotify_statuses

[string]

The types of monitor statuses for which re-notification messages are sent. Default: null if renotify_interval is null. If renotify_interval is set, defaults to renotify on Alert and No Data.

require_full_window

boolean

A Boolean indicating whether this monitor needs a full window of data before it’s evaluated. We highly recommend you set this to false for sparse metrics, otherwise some evaluations are skipped. Default is false. This setting only applies to metric monitors.

scheduling_options

object

Configuration options for scheduling.

custom_schedule

object

Configuration options for the custom schedule. This feature is in private beta.

recurrences

[object]

Array of custom schedule recurrences.

rrule

string

Defines the recurrence rule (RRULE) for a given schedule.

start

string

Defines the start date and time of the recurring schedule.

timezone

string

Defines the timezone the schedule runs on.

evaluation_window

object

Configuration options for the evaluation window. If hour_starts is set, no other fields may be set. Otherwise, day_starts and month_starts must be set together.

day_starts

string

The time of the day at which a one day cumulative evaluation window starts.

hour_starts

int32

The minute of the hour at which a one hour cumulative evaluation window starts.

month_starts

int32

The day of the month at which a one month cumulative evaluation window starts.

timezone

string

The timezone of the time of the day of the cumulative evaluation window start.

silenced

object

DEPRECATED: Information about the downtime applied to the monitor. Only shows v1 downtimes.

<any-key>

int64

UTC epoch timestamp in seconds when the downtime for the group expires.

synthetics_check_id

string

DEPRECATED: ID of the corresponding Synthetic check.

threshold_windows

object

Alerting time window options.

recovery_window

string

Describes how long an anomalous metric must be normal before the alert recovers.

trigger_window

string

Describes how long a metric must be anomalous before an alert triggers.

thresholds

object

List of the different monitor threshold available.

critical

double

The monitor CRITICAL threshold.

critical_query

string

Query evaluated as a dynamic CRITICAL threshold. Only supported on metric monitors with a formula query and options['variables']. Cannot be combined with static thresholds. This field is in preview.

critical_recovery

double

The monitor CRITICAL recovery threshold.

critical_recovery_query

string

Query evaluated as a dynamic CRITICAL recovery threshold. Only supported on metric monitors with a formula query and options['variables']. Cannot be combined with static thresholds. This field is in preview.

ok

double

The monitor OK threshold.

unknown

double

The monitor UNKNOWN threshold.

warning

double

The monitor WARNING threshold.

warning_recovery

double

The monitor WARNING recovery threshold.

timeout_h

int64

The number of hours of the monitor not reporting data before it automatically resolves from a triggered state. The minimum allowed value is 0 hours. The maximum allowed value is 24 hours.

variables

[ <oneOf>]

List of requests that can be used in the monitor query. This feature is currently in beta.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A formula and functions cost query.

aggregator

enum

Aggregation methods for metric queries. Allowed enum values: avg,sum,max,min,last,area,l2norm,percentile,stddev

data_source [required]

enum

Data source for cost queries. Allowed enum values: metrics,cloud_cost,datadog_usage

name [required]

string

Name of the query for use in formulas.

query [required]

string

The monitor query.

Option 3

object

A formula and functions data quality query.

data_source [required]

enum

Data source for data quality queries. Allowed enum values: data_quality_metrics

filter [required]

string

Filter expression used to match on data entities. Uses Aastra query syntax.

group_by

[string]

Optional grouping fields for aggregation.

measure [required]

string

The data quality measure to query. Common values include: bytes, cardinality, custom, freshness, max, mean, min, nullness, percent_negative, percent_zero, row_count, stddev, sum, uniqueness. Additional values may be supported.

monitor_options

object

Monitor configuration options for data quality queries.

crontab_override

string

Crontab expression to override the default schedule.

custom_sql

string

Custom SQL query for the monitor.

custom_where

string

Custom WHERE clause for the query.

group_by_columns

[string]

Columns to group results by.

model_type_override

enum

Override for the model type used in anomaly detection. Allowed enum values: freshness,percentage,any

name [required]

string

Name of the query for use in formulas.

schema_version

string

Schema version for the data quality query.

scope

string

Optional scoping expression to further filter metrics. Uses metrics filter syntax. This is useful when an entity has been configured to emit metrics with additional tags.

Option 4

object

A formula and functions data jobs query.

job_type [required]

string

The type of job being monitored. Valid values include: databricks.job, spark.application, airflow.dag, dbt.job, dbt.model, dbt.test, glue.job. Custom job types are supported with the custom.ol. prefix.

jobs_query [required]

string

Filter expression used to select the jobs to monitor.

name [required]

string

Name of the query for use in formulas. Must be run_query.

query_dialect [required]

string

Query dialect for data jobs queries. Currently only metric is supported.

Option 5

object

A formula and functions aggregate augmented query. Used to enrich base query results with data from a reference table.

augment_query [required]

 <oneOf>

Augment query for aggregate augmented queries. Can be an events query or a reference table query.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A reference table query for use in aggregate queries.

columns

[object]

List of columns to retrieve from the reference table.

alias

string

Optional alias for the column.

name [required]

string

Name of the column.

data_source [required]

enum

Data source for reference table queries. Allowed enum values: reference_table

name

string

Name of the query.

query_filter

string

Optional filter expression for the reference table query.

table_name [required]

string

Name of the reference table.

base_query [required]

 <oneOf>

Base query for aggregate queries. Can be an events query or a metrics query.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A formula and functions metrics query for use in aggregate queries.

aggregator

enum

Aggregator for metrics queries. Allowed enum values: avg,min,max,sum,last,mean,area,l2norm,percentile,stddev

Show 1 more,count_unique

data_source [required]

enum

Data source for metrics queries. Allowed enum values: metrics,cloud_cost,datadog_usage

name

string

Name of the query for use in formulas.

query [required]

string

The metrics query definition.

compute [required]

[object]

Compute options for the query.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for aggregate augmented queries. Allowed enum values: aggregate_augmented_query

group_by [required]

[object]

Group by options for the query.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

join_condition [required]

object

Join condition for aggregate augmented queries.

augment_attribute [required]

string

Attribute from the augment query to join on.

base_attribute [required]

string

Attribute from the base query to join on.

join_type [required]

enum

Join type for aggregate query join conditions. Allowed enum values: inner,left

name

string

Name of the query for use in formulas.

Option 6

object

A formula and functions aggregate filtered query. Used to filter base query results using data from another source.

base_query [required]

 <oneOf>

Base query for aggregate queries. Can be an events query or a metrics query.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A formula and functions metrics query for use in aggregate queries.

aggregator

enum

Aggregator for metrics queries. Allowed enum values: avg,min,max,sum,last,mean,area,l2norm,percentile,stddev

Show 1 more,count_unique

data_source [required]

enum

Data source for metrics queries. Allowed enum values: metrics,cloud_cost,datadog_usage

name

string

Name of the query for use in formulas.

query [required]

string

The metrics query definition.

compute

[object]

Compute options for the query.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for aggregate filtered queries. Allowed enum values: aggregate_filtered_query

filter_query [required]

 <oneOf>

Filter query for aggregate filtered queries. Can be an events query or a reference table query.

Option 1

object

A formula and functions events query.

compute [required]

object

Compute options.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

interval

int64

A time interval in milliseconds.

metric

string

Measurable attribute to compute.

name

string

The name assigned to this aggregation, when multiple aggregations are defined for a query.

source

string

Source reference for composite query payloads.

data_source [required]

enum

Data source for event platform-based queries. Allowed enum values: rum,ci_pipelines,ci_tests,audit,events,logs,spans,database_queries,network,network_path

group_by

[object]

Group by options.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

indexes

[string]

An array of index names to query in the stream. Omit or use [] to query all indexes at once.

name [required]

string

Name of the query for use in formulas.

search

object

Search options.

query [required]

string

Events search string.

Option 2

object

A reference table query for use in aggregate queries.

columns

[object]

List of columns to retrieve from the reference table.

alias

string

Optional alias for the column.

name [required]

string

Name of the column.

data_source [required]

enum

Data source for reference table queries. Allowed enum values: reference_table

name

string

Name of the query.

query_filter

string

Optional filter expression for the reference table query.

table_name [required]

string

Name of the reference table.

filters [required]

[object]

Filter conditions for the query.

base_attribute [required]

string

Attribute from the base query to filter on.

exclude

boolean

Whether to exclude matching records instead of including them.

filter_attribute [required]

string

Attribute from the filter query to match against.

group_by

[object]

Group by options for the query.

facet [required]

string

Event facet.

limit

int64

Number of groups to return.

sort

object

Options for sorting group by results.

aggregation [required]

enum

Aggregation methods for event platform queries. Allowed enum values: count,cardinality,median,pc75,pc90,pc95,pc98,pc99,sum,min

Show 2 more,max,avg

metric

string

Metric used for sorting group by results.

order

enum

Direction of sort. Allowed enum values: asc,desc

default: desc

source

string

Source reference for composite query payloads.

name

string

Name of the query for use in formulas.

overall_state

enum

The different states your monitor can be in. Allowed enum values: Alert,Ignored,No Data,OK,Skipped,Unknown,Warn

priority

int64

Integer from 1 (high) to 5 (low) indicating alert severity.

query [required]

string

The monitor query.

restricted_roles

[string]

A list of unique role identifiers to define which roles are allowed to edit the monitor. The unique identifiers for all roles can be pulled from the Roles API and are located in the data.id field. Editing a monitor includes any updates to the monitor configuration, monitor deletion, and muting of the monitor for any amount of time. You can use the Restriction Policies API to manage write authorization for individual monitors by teams and users, in addition to roles.

state

object

Wrapper object with the different monitor states.

groups

object

Dictionary where the keys are groups (comma separated lists of tags) and the values are the list of groups your monitor is broken down on.

<any-key>

object

Monitor state for a single group.

last_nodata_ts

int64

Latest timestamp the monitor was in NO_DATA state.

last_notified_ts

int64

Latest timestamp of the notification sent for this monitor group.

last_resolved_ts

int64

Latest timestamp the monitor group was resolved.

last_triggered_ts

int64

Latest timestamp the monitor group triggered.

name

string

The name of the monitor.

status

enum

The different states your monitor can be in. Allowed enum values: Alert,Ignored,No Data,OK,Skipped,Unknown,Warn

tags

[string]

Tags associated to your monitor.

type [required]

enum

The type of the monitor. For more information about type, see the monitor options docs. Allowed enum values: composite,event alert,log alert,metric alert,process alert,query alert,rum alert,service check,synthetics alert,trace-analytics alert

Show 12 more,slo alert,event-v2 alert,audit alert,ci-pipelines alert,ci-tests alert,error-tracking alert,database-monitoring alert,network-performance alert,cost alert,data-quality alert,network-path alert,data-jobs alert

{
  "assets": [
    {
      "category": "runbook",
      "name": "Monitor Runbook",
      "resource_key": "12345",
      "resource_type": "string",
      "url": "/notebooks/12345"
    }
  ],
  "created": "2019-09-19T10:00:00.000Z",
  "creator": {
    "email": "string",
    "handle": "string",
    "name": "string"
  },
  "deleted": "2019-09-19T10:00:00.000Z",
  "draft_status": "string",
  "id": "integer",
  "matching_downtimes": [
    {
      "end": 1412792983,
      "id": 1625,
      "scope": [
        "env:staging"
      ],
      "start": 1412792983
    }
  ],
  "message": "string",
  "modified": "2019-09-19T10:00:00.000Z",
  "multi": false,
  "name": "My monitor",
  "options": {
    "aggregation": {
      "group_by": "host",
      "metric": "metrics.name",
      "type": "count"
    },
    "device_ids": [],
    "enable_logs_sample": false,
    "enable_samples": false,
    "escalation_message": "string",
    "evaluation_delay": "integer",
    "group_retention_duration": "string",
    "groupby_simple_monitor": false,
    "include_tags": false,
    "locked": false,
    "min_failure_duration": "integer",
    "min_location_failed": "integer",
    "new_group_delay": "integer",
    "new_host_delay": "integer",
    "no_data_timeframe": "integer",
    "notification_preset_name": "string",
    "notify_audit": false,
    "notify_by": [],
    "notify_no_data": false,
    "on_missing_data": "string",
    "renotify_interval": "integer",
    "renotify_occurrences": "integer",
    "renotify_statuses": [],
    "require_full_window": false,
    "scheduling_options": {
      "custom_schedule": {
        "recurrences": [
          {
            "rrule": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR",
            "start": "2023-08-31T16:30:00",
            "timezone": "Europe/Paris"
          }
        ]
      },
      "evaluation_window": {
        "day_starts": "04:00",
        "hour_starts": 0,
        "month_starts": 1,
        "timezone": "Europe/Paris"
      }
    },
    "silenced": {
      "<any-key>": "integer"
    },
    "synthetics_check_id": "string",
    "threshold_windows": {
      "recovery_window": "string",
      "trigger_window": "string"
    },
    "thresholds": {
      "critical": "number",
      "critical_query": "formula(\"2 * query1\").rollup(\"avg\").last(\"6mo\")",
      "critical_recovery": "number",
      "critical_recovery_query": "formula(\"1.5 * query1\").rollup(\"avg\").last(\"3mo\")",
      "ok": "number",
      "unknown": "number",
      "warning": "number",
      "warning_recovery": "number"
    },
    "timeout_h": "integer",
    "variables": [
      {
        "compute": {
          "aggregation": "avg",
          "interval": 60000,
          "metric": "@duration",
          "name": "compute_result",
          "source": "filter_query"
        },
        "data_source": "rum",
        "group_by": [
          {
            "facet": "status",
            "limit": 10,
            "sort": {
              "aggregation": "avg",
              "metric": "string",
              "order": "asc"
            },
            "source": "filter_query"
          }
        ],
        "indexes": [
          "days-3",
          "days-7"
        ],
        "name": "query_errors",
        "search": {
          "query": "service:query"
        }
      }
    ]
  },
  "overall_state": "string",
  "priority": "integer",
  "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100",
  "restricted_roles": [],
  "state": {
    "groups": {
      "<any-key>": {
        "last_nodata_ts": "integer",
        "last_notified_ts": "integer",
        "last_resolved_ts": "integer",
        "last_triggered_ts": "integer",
        "name": "string",
        "status": "string"
      }
    }
  },
  "tags": [],
  "type": "query alert"
}

Bad Request

Error response object.

Expand All

フィールド

種類

説明

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

Error response object.

Expand All

フィールド

種類

説明

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

Too many requests

Error response object.

Expand All

フィールド

種類

説明

errors [required]

[string]

Array of errors returned by the API.

{
  "errors": [
    "Bad Request"
  ]
}

コード例

                          ## default
# 

# Curl command
curl -X POST "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v1/monitor" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "options": { "no_data_timeframe": 20, "notify_no_data": true }, "priority": 3, "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} \u003e 100", "tags": [ "app:webserver", "frontend" ], "type": "query alert" } EOF
                          ## default
# 

# Curl command
curl -X POST "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v1/monitor" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "options": { "no_data_timeframe": 20, "notify_no_data": true }, "priority": 3, "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} \u003e 100", "tags": [ "app:webserver", "frontend" ], "type": "query alert" } EOF
                          ## default
# 

# Curl command
curl -X POST "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v1/monitor" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "message": "You may need to add web hosts if this is consistently high.", "name": "Bytes received on host0", "options": { "no_data_timeframe": 20, "notify_no_data": true }, "priority": 3, "query": "avg(last_5m):sum:system.net.bytes_rcvd{host:host0} \u003e 100", "tags": [ "app:webserver", "frontend" ], "type": "query alert" } EOF
// Create a Cost Monitor returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV1"
)

func main() {
	body := datadogV1.Monitor{
		Name:    datadog.PtrString("Example Monitor"),
		Type:    datadogV1.MONITORTYPE_COST_ALERT,
		Query:   `formula("exclude_null(query1)").last("7d").anomaly(direction="above", threshold=10) >= 5`,
		Message: datadog.PtrString("some message Notify: @hipchat-channel"),
		Tags: []string{
			"test:examplemonitor",
			"env:ci",
		},
		Priority: *datadog.NewNullableInt64(datadog.PtrInt64(3)),
		Options: &datadogV1.MonitorOptions{
			Thresholds: &datadogV1.MonitorThresholds{
				Critical: datadog.PtrFloat64(5),
				Warning:  *datadog.NewNullableFloat64(datadog.PtrFloat64(3)),
			},
			Variables: []datadogV1.MonitorFormulaAndFunctionQueryDefinition{
				datadogV1.MonitorFormulaAndFunctionQueryDefinition{
					MonitorFormulaAndFunctionCostQueryDefinition: &datadogV1.MonitorFormulaAndFunctionCostQueryDefinition{
						DataSource: datadogV1.MONITORFORMULAANDFUNCTIONCOSTDATASOURCE_CLOUD_COST,
						Query:      "sum:aws.cost.net.amortized.shared.resources.allocated{aws_product IN (amplify ,athena, backup, bedrock ) } by {aws_product}.rollup(sum, 86400)",
						Name:       "query1",
						Aggregator: datadogV1.MONITORFORMULAANDFUNCTIONCOSTAGGREGATOR_SUM.Ptr(),
					}},
			},
			IncludeTags: datadog.PtrBool(true),
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV1.NewMonitorsApi(apiClient)
	resp, r, err := api.CreateMonitor(ctx, body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `MonitorsApi.CreateMonitor`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `MonitorsApi.CreateMonitor`:\n%s\n", responseContent)
}
// Create a Data Jobs monitor returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV1"
)

func main() {
	body := datadogV1.Monitor{
		Name:    datadog.PtrString("Example-Monitor"),
		Type:    datadogV1.MONITORTYPE_DATA_JOBS_ALERT,
		Query:   `formula("failed_runs(run_query)").by(job_name,workspace_name).last(10d) > 0`,
		Message: datadog.PtrString("Data jobs alert triggered"),
		Tags: []string{
			"test:examplemonitor",
			"env:ci",
		},
		Options: &datadogV1.MonitorOptions{
			Thresholds: &datadogV1.MonitorThresholds{
				Critical: datadog.PtrFloat64(0),
			},
			Variables: []datadogV1.MonitorFormulaAndFunctionQueryDefinition{
				datadogV1.MonitorFormulaAndFunctionQueryDefinition{
					MonitorFormulaAndFunctionDataJobsQueryDefinition: &datadogV1.MonitorFormulaAndFunctionDataJobsQueryDefinition{
						Name:         "run_query",
						JobsQuery:    "job_name:*",
						JobType:      "databricks.job",
						QueryDialect: "metric",
					}},
			},
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV1.NewMonitorsApi(apiClient)
	resp, r, err := api.CreateMonitor(ctx, body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `MonitorsApi.CreateMonitor`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `MonitorsApi.CreateMonitor`:\n%s\n", responseContent)
}
// Create a Data Quality monitor returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV1"
)

func main() {
	body := datadogV1.Monitor{
		Name:    datadog.PtrString("Example-Monitor"),
		Type:    datadogV1.MONITORTYPE_DATA_QUALITY_ALERT,
		Query:   `formula("query1").last("5m") > 100`,
		Message: datadog.PtrString("Data quality alert triggered"),
		Tags: []string{
			"test:examplemonitor",
			"env:ci",
		},
		Priority: *datadog.NewNullableInt64(datadog.PtrInt64(3)),
		Options: &datadogV1.MonitorOptions{
			Thresholds: &datadogV1.MonitorThresholds{
				Critical: datadog.PtrFloat64(100),
			},
			Variables: []datadogV1.MonitorFormulaAndFunctionQueryDefinition{
				datadogV1.MonitorFormulaAndFunctionQueryDefinition{
					MonitorFormulaAndFunctionDataQualityQueryDefinition: &datadogV1.MonitorFormulaAndFunctionDataQualityQueryDefinition{
						Name:       "query1",
						DataSource: datadogV1.MONITORFORMULAANDFUNCTIONDATAQUALITYDATASOURCE_DATA_QUALITY_METRICS,
						Measure:    "row_count",
						Filter:     `search for column where ` + "`" + `database:production AND table:users` + "`",
						GroupBy: []string{
							"entity_id",
						},
					}},
			},
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV1.NewMonitorsApi(apiClient)
	resp, r, err := api.CreateMonitor(ctx, body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `MonitorsApi.CreateMonitor`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `MonitorsApi.CreateMonitor`:\n%s\n", responseContent)
}

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// Create a Cost Monitor returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.MonitorsApi;
import com.datadog.api.client.v1.model.Monitor;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionCostAggregator;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionCostDataSource;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionCostQueryDefinition;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionQueryDefinition;
import com.datadog.api.client.v1.model.MonitorOptions;
import com.datadog.api.client.v1.model.MonitorThresholds;
import com.datadog.api.client.v1.model.MonitorType;
import java.util.Arrays;
import java.util.Collections;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    MonitorsApi apiInstance = new MonitorsApi(defaultClient);

    Monitor body =
        new Monitor()
            .name("Example Monitor")
            .type(MonitorType.COST_ALERT)
            .query(
                """
formula("exclude_null(query1)").last("7d").anomaly(direction="above", threshold=10) >= 5
""")
            .message("some message Notify: @hipchat-channel")
            .tags(Arrays.asList("test:examplemonitor", "env:ci"))
            .priority(3L)
            .options(
                new MonitorOptions()
                    .thresholds(new MonitorThresholds().critical(5.0).warning(3.0))
                    .variables(
                        Collections.singletonList(
                            new MonitorFormulaAndFunctionQueryDefinition(
                                new MonitorFormulaAndFunctionCostQueryDefinition()
                                    .dataSource(MonitorFormulaAndFunctionCostDataSource.CLOUD_COST)
                                    .query(
                                        "sum:aws.cost.net.amortized.shared.resources.allocated{aws_product"
                                            + " IN (amplify ,athena, backup, bedrock ) } by"
                                            + " {aws_product}.rollup(sum, 86400)")
                                    .name("query1")
                                    .aggregator(MonitorFormulaAndFunctionCostAggregator.SUM))))
                    .includeTags(true));

    try {
      Monitor result = apiInstance.createMonitor(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling MonitorsApi#createMonitor");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
// Create a Data Jobs monitor returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.MonitorsApi;
import com.datadog.api.client.v1.model.Monitor;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionDataJobsQueryDefinition;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionQueryDefinition;
import com.datadog.api.client.v1.model.MonitorOptions;
import com.datadog.api.client.v1.model.MonitorThresholds;
import com.datadog.api.client.v1.model.MonitorType;
import java.util.Arrays;
import java.util.Collections;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    MonitorsApi apiInstance = new MonitorsApi(defaultClient);

    Monitor body =
        new Monitor()
            .name("Example-Monitor")
            .type(MonitorType.DATA_JOBS_ALERT)
            .query(
                """
formula("failed_runs(run_query)").by(job_name,workspace_name).last(10d) > 0
""")
            .message("Data jobs alert triggered")
            .tags(Arrays.asList("test:examplemonitor", "env:ci"))
            .options(
                new MonitorOptions()
                    .thresholds(new MonitorThresholds())
                    .variables(
                        Collections.singletonList(
                            new MonitorFormulaAndFunctionQueryDefinition(
                                new MonitorFormulaAndFunctionDataJobsQueryDefinition()
                                    .name("run_query")
                                    .jobsQuery("job_name:*")
                                    .jobType("databricks.job")
                                    .queryDialect("metric")))));

    try {
      Monitor result = apiInstance.createMonitor(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling MonitorsApi#createMonitor");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}
// Create a Data Quality monitor returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v1.api.MonitorsApi;
import com.datadog.api.client.v1.model.Monitor;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionDataQualityDataSource;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionDataQualityQueryDefinition;
import com.datadog.api.client.v1.model.MonitorFormulaAndFunctionQueryDefinition;
import com.datadog.api.client.v1.model.MonitorOptions;
import com.datadog.api.client.v1.model.MonitorThresholds;
import com.datadog.api.client.v1.model.MonitorType;
import java.util.Arrays;
import java.util.Collections;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    MonitorsApi apiInstance = new MonitorsApi(defaultClient);

    Monitor body =
        new Monitor()
            .name("Example-Monitor")
            .type(MonitorType.DATA_QUALITY_ALERT)
            .query("""
formula("query1").last("5m") > 100
""")
            .message("Data quality alert triggered")
            .tags(Arrays.asList("test:examplemonitor", "env:ci"))
            .priority(3L)
            .options(
                new MonitorOptions()
                    .thresholds(new MonitorThresholds().critical(100.0))
                    .variables(
                        Collections.singletonList(
                            new MonitorFormulaAndFunctionQueryDefinition(
                                new MonitorFormulaAndFunctionDataQualityQueryDefinition()
                                    .name("query1")
                                    .dataSource(
                                        MonitorFormulaAndFunctionDataQualityDataSource
                                            .DATA_QUALITY_METRICS)
                                    .measure("row_count")
                                    .filter(
                                        "search for column where `database:production AND"
                                            + " table:users`")
                                    .groupBy(Collections.singletonList("entity_id"))))));

    try {
      Monitor result = apiInstance.createMonitor(body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling MonitorsApi#createMonitor");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Instructions

First install the library and its dependencies and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
from datadog import initialize, api

options = {
    'api_key': '<DATADOG_API_KEY>',
    'app_key': '<DATADOG_APPLICATION_KEY>'
}

initialize(**options)

# Create a new monitor
monitor_options = {
    "notify_no_data": True,
    "no_data_timeframe": 20
}
tags = ["app:webserver", "frontend"]
api.Monitor.create(
    type="query alert",
    query="avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100",
    name="Bytes received on host0",
    message="We may need to add web hosts if this is consistently high.",
    tags=tags,
    options=monitor_options
)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python "example.py"
"""
Create a Cost Monitor returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.monitors_api import MonitorsApi
from datadog_api_client.v1.model.monitor import Monitor
from datadog_api_client.v1.model.monitor_formula_and_function_cost_aggregator import (
    MonitorFormulaAndFunctionCostAggregator,
)
from datadog_api_client.v1.model.monitor_formula_and_function_cost_data_source import (
    MonitorFormulaAndFunctionCostDataSource,
)
from datadog_api_client.v1.model.monitor_formula_and_function_cost_query_definition import (
    MonitorFormulaAndFunctionCostQueryDefinition,
)
from datadog_api_client.v1.model.monitor_options import MonitorOptions
from datadog_api_client.v1.model.monitor_thresholds import MonitorThresholds
from datadog_api_client.v1.model.monitor_type import MonitorType

body = Monitor(
    name="Example Monitor",
    type=MonitorType.COST_ALERT,
    query='formula("exclude_null(query1)").last("7d").anomaly(direction="above", threshold=10) >= 5',
    message="some message Notify: @hipchat-channel",
    tags=[
        "test:examplemonitor",
        "env:ci",
    ],
    priority=3,
    options=MonitorOptions(
        thresholds=MonitorThresholds(
            critical=5.0,
            warning=3.0,
        ),
        variables=[
            MonitorFormulaAndFunctionCostQueryDefinition(
                data_source=MonitorFormulaAndFunctionCostDataSource.CLOUD_COST,
                query="sum:aws.cost.net.amortized.shared.resources.allocated{aws_product IN (amplify ,athena, backup, bedrock ) } by {aws_product}.rollup(sum, 86400)",
                name="query1",
                aggregator=MonitorFormulaAndFunctionCostAggregator.SUM,
            ),
        ],
        include_tags=True,
    ),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = MonitorsApi(api_client)
    response = api_instance.create_monitor(body=body)

    print(response)
"""
Create a Data Jobs monitor returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.monitors_api import MonitorsApi
from datadog_api_client.v1.model.monitor import Monitor
from datadog_api_client.v1.model.monitor_formula_and_function_data_jobs_query_definition import (
    MonitorFormulaAndFunctionDataJobsQueryDefinition,
)
from datadog_api_client.v1.model.monitor_options import MonitorOptions
from datadog_api_client.v1.model.monitor_thresholds import MonitorThresholds
from datadog_api_client.v1.model.monitor_type import MonitorType

body = Monitor(
    name="Example-Monitor",
    type=MonitorType.DATA_JOBS_ALERT,
    query='formula("failed_runs(run_query)").by(job_name,workspace_name).last(10d) > 0',
    message="Data jobs alert triggered",
    tags=[
        "test:examplemonitor",
        "env:ci",
    ],
    options=MonitorOptions(
        thresholds=MonitorThresholds(
            critical=0.0,
        ),
        variables=[
            MonitorFormulaAndFunctionDataJobsQueryDefinition(
                name="run_query",
                jobs_query="job_name:*",
                job_type="databricks.job",
                query_dialect="metric",
            ),
        ],
    ),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = MonitorsApi(api_client)
    response = api_instance.create_monitor(body=body)

    print(response)
"""
Create a Data Quality monitor returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.monitors_api import MonitorsApi
from datadog_api_client.v1.model.monitor import Monitor
from datadog_api_client.v1.model.monitor_formula_and_function_data_quality_data_source import (
    MonitorFormulaAndFunctionDataQualityDataSource,
)
from datadog_api_client.v1.model.monitor_formula_and_function_data_quality_query_definition import (
    MonitorFormulaAndFunctionDataQualityQueryDefinition,
)
from datadog_api_client.v1.model.monitor_options import MonitorOptions
from datadog_api_client.v1.model.monitor_thresholds import MonitorThresholds
from datadog_api_client.v1.model.monitor_type import MonitorType

body = Monitor(
    name="Example-Monitor",
    type=MonitorType.DATA_QUALITY_ALERT,
    query='formula("query1").last("5m") > 100',
    message="Data quality alert triggered",
    tags=[
        "test:examplemonitor",
        "env:ci",
    ],
    priority=3,
    options=MonitorOptions(
        thresholds=MonitorThresholds(
            critical=100.0,
        ),
        variables=[
            MonitorFormulaAndFunctionDataQualityQueryDefinition(
                name="query1",
                data_source=MonitorFormulaAndFunctionDataQualityDataSource.DATA_QUALITY_METRICS,
                measure="row_count",
                filter="search for column where `database:production AND table:users`",
                group_by=[
                    "entity_id",
                ],
            ),
        ],
    ),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = MonitorsApi(api_client)
    response = api_instance.create_monitor(body=body)

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
require 'dogapi'

api_key = '<DATADOG_API_KEY>'
app_key = '<DATADOG_APPLICATION_KEY>'

dog = Dogapi::Client.new(api_key, app_key)

# Create a new monitor
options = {
  'notify_no_data' => true,
  'no_data_timeframe' => 20
}
tags = ['app:webserver', 'frontend']
dog.monitor(
  'query alert',
  'avg(last_5m):sum:system.net.bytes_rcvd{host:host0} > 100',
  name: 'Bytes received on host0',
  message: 'We may need to add web hosts if this is consistently high.',
  tags: tags,
  options: options
)

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
# Create a Cost Monitor returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V1::MonitorsAPI.new

body = DatadogAPIClient::V1::Monitor.new({
  name: "Example Monitor",
  type: DatadogAPIClient::V1::MonitorType::COST_ALERT,
  query: 'formula("exclude_null(query1)").last("7d").anomaly(direction="above", threshold=10) >= 5',
  message: "some message Notify: @hipchat-channel",
  tags: [
    "test:examplemonitor",
    "env:ci",
  ],
  priority: 3,
  options: DatadogAPIClient::V1::MonitorOptions.new({
    thresholds: DatadogAPIClient::V1::MonitorThresholds.new({
      critical: 5,
      warning: 3,
    }),
    variables: [
      DatadogAPIClient::V1::MonitorFormulaAndFunctionCostQueryDefinition.new({
        data_source: DatadogAPIClient::V1::MonitorFormulaAndFunctionCostDataSource::CLOUD_COST,
        query: "sum:aws.cost.net.amortized.shared.resources.allocated{aws_product IN (amplify ,athena, backup, bedrock ) } by {aws_product}.rollup(sum, 86400)",
        name: "query1",
        aggregator: DatadogAPIClient::V1::MonitorFormulaAndFunctionCostAggregator::SUM,
      }),
    ],
    include_tags: true,
  }),
})
p api_instance.create_monitor(body)
# Create a Data Jobs monitor returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V1::MonitorsAPI.new

body = DatadogAPIClient::V1::Monitor.new({
  name: "Example-Monitor",
  type: DatadogAPIClient::V1::MonitorType::DATA_JOBS_ALERT,
  query: 'formula("failed_runs(run_query)").by(job_name,workspace_name).last(10d) > 0',
  message: "Data jobs alert triggered",
  tags: [
    "test:examplemonitor",
    "env:ci",
  ],
  options: DatadogAPIClient::V1::MonitorOptions.new({
    thresholds: DatadogAPIClient::V1::MonitorThresholds.new({
      critical: 0,
    }),
    variables: [
      DatadogAPIClient::V1::MonitorFormulaAndFunctionDataJobsQueryDefinition.new({
        name: "run_query",
        jobs_query: "job_name:*",
        job_type: "databricks.job",
        query_dialect: "metric",
      }),
    ],
  }),
})
p api_instance.create_monitor(body)
# Create a Data Quality monitor returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V1::MonitorsAPI.new

body = DatadogAPIClient::V1::Monitor.new({
  name: "Example-Monitor",
  type: DatadogAPIClient::V1::MonitorType::DATA_QUALITY_ALERT,
  query: 'formula("query1").last("5m") > 100',
  message: "Data quality alert triggered",
  tags: [
    "test:examplemonitor",
    "env:ci",
  ],
  priority: 3,
  options: DatadogAPIClient::V1::MonitorOptions.new({
    thresholds: DatadogAPIClient::V1::MonitorThresholds.new({
      critical: 100,
    }),
    variables: [
      DatadogAPIClient::V1::MonitorFormulaAndFunctionDataQualityQueryDefinition.new({
        name: "query1",
        data_source: DatadogAPIClient::V1::MonitorFormulaAndFunctionDataQualityDataSource::DATA_QUALITY_METRICS,
        measure: "row_count",
        filter: "search for column where `database:production AND table:users`",
        group_by: [
          "entity_id",
        ],
      }),
    ],
  }),
})
p api_instance.create_monitor(body)

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Create a Cost Monitor returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_monitors::MonitorsAPI;
use datadog_api_client::datadogV1::model::Monitor;
use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionCostAggregator;
use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionCostDataSource;
use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionCostQueryDefinition;
use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionQueryDefinition;
use datadog_api_client::datadogV1::model::MonitorOptions;
use datadog_api_client::datadogV1::model::MonitorThresholds;
use datadog_api_client::datadogV1::model::MonitorType;

#[tokio::main]
async fn main() {
    let body =
        Monitor::new(
            r#"formula("exclude_null(query1)").last("7d").anomaly(direction="above", threshold=10) >= 5"#.to_string(),
            MonitorType::COST_ALERT,
        )
            .message("some message Notify: @hipchat-channel".to_string())
            .name("Example Monitor".to_string())
            .options(
                MonitorOptions::new()
                    .include_tags(true)
                    .thresholds(MonitorThresholds::new().critical(5.0 as f64).warning(Some(3.0 as f64)))
                    .variables(
                        vec![
                            MonitorFormulaAndFunctionQueryDefinition::MonitorFormulaAndFunctionCostQueryDefinition(
                                Box::new(
                                    MonitorFormulaAndFunctionCostQueryDefinition::new(
                                        MonitorFormulaAndFunctionCostDataSource::CLOUD_COST,
                                        "query1".to_string(),
                                        "sum:aws.cost.net.amortized.shared.resources.allocated{aws_product IN (amplify ,athena, backup, bedrock ) } by {aws_product}.rollup(sum, 86400)".to_string(),
                                    ).aggregator(MonitorFormulaAndFunctionCostAggregator::SUM),
                                ),
                            )
                        ],
                    ),
            )
            .priority(Some(3))
            .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]);
    let configuration = datadog::Configuration::new();
    let api = MonitorsAPI::with_config(configuration);
    let resp = api.create_monitor(body).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
// Create a Data Jobs monitor returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_monitors::MonitorsAPI;
use datadog_api_client::datadogV1::model::Monitor;
use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionDataJobsQueryDefinition;
use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionQueryDefinition;
use datadog_api_client::datadogV1::model::MonitorOptions;
use datadog_api_client::datadogV1::model::MonitorThresholds;
use datadog_api_client::datadogV1::model::MonitorType;

#[tokio::main]
async fn main() {
    let body =
        Monitor::new(
            r#"formula("failed_runs(run_query)").by(job_name,workspace_name).last(10d) > 0"#.to_string(),
            MonitorType::DATA_JOBS_ALERT,
        )
            .message("Data jobs alert triggered".to_string())
            .name("Example-Monitor".to_string())
            .options(
                MonitorOptions::new()
                    .thresholds(MonitorThresholds::new().critical(0.0 as f64))
                    .variables(
                        vec![
                            MonitorFormulaAndFunctionQueryDefinition::MonitorFormulaAndFunctionDataJobsQueryDefinition(
                                Box::new(
                                    MonitorFormulaAndFunctionDataJobsQueryDefinition::new(
                                        "databricks.job".to_string(),
                                        "job_name:*".to_string(),
                                        "run_query".to_string(),
                                        "metric".to_string(),
                                    ),
                                ),
                            )
                        ],
                    ),
            )
            .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]);
    let configuration = datadog::Configuration::new();
    let api = MonitorsAPI::with_config(configuration);
    let resp = api.create_monitor(body).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}
// Create a Data Quality monitor returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV1::api_monitors::MonitorsAPI;
use datadog_api_client::datadogV1::model::Monitor;
use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionDataQualityDataSource;
use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionDataQualityQueryDefinition;
use datadog_api_client::datadogV1::model::MonitorFormulaAndFunctionQueryDefinition;
use datadog_api_client::datadogV1::model::MonitorOptions;
use datadog_api_client::datadogV1::model::MonitorThresholds;
use datadog_api_client::datadogV1::model::MonitorType;

#[tokio::main]
async fn main() {
    let body =
        Monitor::new(r#"formula("query1").last("5m") > 100"#.to_string(), MonitorType::DATA_QUALITY_ALERT)
            .message("Data quality alert triggered".to_string())
            .name("Example-Monitor".to_string())
            .options(
                MonitorOptions::new()
                    .thresholds(MonitorThresholds::new().critical(100.0 as f64))
                    .variables(
                        vec![
                            MonitorFormulaAndFunctionQueryDefinition
                            ::MonitorFormulaAndFunctionDataQualityQueryDefinition(
                                Box::new(
                                    MonitorFormulaAndFunctionDataQualityQueryDefinition::new(
                                        MonitorFormulaAndFunctionDataQualityDataSource::DATA_QUALITY_METRICS,
                                        r#"search for column where `database:production AND table:users`"#.to_string(),
                                        "row_count".to_string(),
                                        "query1".to_string(),
                                    ).group_by(vec!["entity_id".to_string()]),
                                ),
                            )
                        ],
                    ),
            )
            .priority(Some(3))
            .tags(vec!["test:examplemonitor".to_string(), "env:ci".to_string()]);
    let configuration = datadog::Configuration::new();
    let api = MonitorsAPI::with_config(configuration);
    let resp = api.create_monitor(body).await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Create a Cost Monitor returns "OK" response
 */

import { client, v1 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
const apiInstance = new v1.MonitorsApi(configuration);

const params: v1.MonitorsApiCreateMonitorRequest = {
  body: {
    name: "Example Monitor",
    type: "cost alert",
    query: `formula("exclude_null(query1)").last("7d").anomaly(direction="above", threshold=10) >= 5`,
    message: "some message Notify: @hipchat-channel",
    tags: ["test:examplemonitor", "env:ci"],
    priority: 3,
    options: {
      thresholds: {
        critical: 5,
        warning: 3,
      },
      variables: [
        {
          dataSource: "cloud_cost",
          query:
            "sum:aws.cost.net.amortized.shared.resources.allocated{aws_product IN (amplify ,athena, backup, bedrock ) } by {aws_product}.rollup(sum, 86400)",
          name: "query1",
          aggregator: "sum",
        },
      ],
      includeTags: true,
    },
  },
};

apiInstance
  .createMonitor(params)
  .then((data: v1.Monitor) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
/**
 * Create a Data Jobs monitor returns "OK" response
 */

import { client, v1 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
const apiInstance = new v1.MonitorsApi(configuration);

const params: v1.MonitorsApiCreateMonitorRequest = {
  body: {
    name: "Example-Monitor",
    type: "data-jobs alert",
    query: `formula("failed_runs(run_query)").by(job_name,workspace_name).last(10d) > 0`,
    message: "Data jobs alert triggered",
    tags: ["test:examplemonitor", "env:ci"],
    options: {
      thresholds: {
        critical: 0,
      },
      variables: [
        {
          name: "run_query",
          jobsQuery: "job_name:*",
          jobType: "databricks.job",
          queryDialect: "metric",
        },
      ],
    },
  },
};

apiInstance
  .createMonitor(params)
  .then((data: v1.Monitor) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));
/**
 * Create a Data Quality monitor returns "OK" response
 */

import { client, v1 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
const apiInstance = new v1.MonitorsApi(configuration);

const params: v1.MonitorsApiCreateMonitorRequest = {
  body: {
    name: "Example-Monitor",
    type: "data-quality alert",
    query: `formula("query1").last("5m") > 100`,
    message: "Data quality alert triggered",
    tags: ["test:examplemonitor", "env:ci"],
    priority: 3,
    options: {
      thresholds: {
        critical: 100,
      },
      variables: [
        {
          name: "query1",
          dataSource: "data_quality_metrics",
          measure: "row_count",
          filter:
            `search for column where ` +
            "`" +
            `database:production AND table:users` +
            "`",
          groupBy: ["entity_id"],
        },
      ],
    },
  },
};

apiInstance
  .createMonitor(params)
  .then((data: v1.Monitor) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"