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

概要

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

モニタータイプ

次から選択されたモニタータイプ:

  • anomaly: query alert
  • APM: query alert または trace-analytics alert
  • composite: composite
  • custom: service check
  • forecast: query alert
  • host: service check
  • integration: query alert または service check
  • live process: process alert
  • logs: log alert
  • metric: query alert
  • network: service check
  • outlier: query alert
  • process: service check
  • rum: rum alert
  • SLO: slo alert
  • watchdog: event-v2 alert
  • event-v2: event-v2 alert
  • audit: audit alert
  • error-tracking: error-tracking alert
  • database-monitoring: database-monitoring alert
  • network-performance: network-performance alert
  • cloud cost: cost alert
  • network-path: network-path alert

注:

  • Synthetic モニターは、Synthetics API を通じて作成されます。詳細については、Synthetics API のドキュメントを参照してください。
  • ログモニターには、スコープなしの App Key が必要です。

クエリタイプ

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

例: 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: <、<=、>、>=、==、または !=
  • #: しきい値を設定するために使用される整数または小数

数式クエリを使用するメトリクスモニターで動的しきい値を使用するには、# を threshold キーワードに置き換え、 (例: ...> threshold)、options.thresholds の critical_query を介してクエリとしてしきい値を提供します。 この機能はプレビュー版です。

_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 または 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 に制限されています。 例えば、critical が 1、ok が 3、warn が 2 のステータスで通知するように指定した場合、count は少なくとも 3 でなければなりません。
  • チェックモニターには group を指定する必要があります。チェックごとのグループ化は、一部のサービスチェックについてはすでに明示的に知られています。 例えば、Postgres インテグレーションモニターはdb、host、port でタグ付けされ、ネットワークモニターは host、instance、url でタグ付けされます。詳細については、サービスチェック のドキュメントを参照してください。
イベントアラートクエリ

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

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

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

  • query 検索クエリ - ログ検索構文 に従います。
  • rollup_method 統計のロールアップメソッド - count、avg、cardinality をサポートします。
  • measure avg および cardinality の rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1 から 2880 の間)、#h (1 から 48 の間)。
  • operator <, <=, >, >=, ==、または !=。
  • # しきい値を設定するために使用される整数または小数。
プロセスアラートクエリ

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

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

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

  • query 検索クエリ - ログ検索構文 に従います。
  • index_name 複数のインデックスを持つ組織の場合、リクエストを実行するログインデックス。
  • rollup_method 統計のロールアップメソッド - count、avg、cardinality をサポートします。
  • measure avg および cardinality の rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1 から 2880 の間)、#h (1 から 48 の間)。
  • operator <, <=, >, >=, ==、または !=。
  • # しきい値を設定するために使用される整数または小数。
複合条件クエリ

例: 12345 && 67890(12345 と 67890 は複合条件ではないモニターの ID)

  • name [必須, デフォルト = 動的、クエリに基づく]: アラートの名前。
  • message [必須, デフォルト = 動的、クエリに基づく]: このモニターの通知に含めるメッセージ。 メール通知は、イベントと同じ ‘@username’ 表記を使用して特定のユーザーに送信できます。
  • tags [任意, デフォルト = 空白のリスト]: モニターに関連付けるタグのリスト。 API 経由ですべてのモニターの詳細を取得する際は、monitor_tags 引数を使用してこれらのタグで結果をフィルタリングします。 これは API 経由でのみ利用可能であり、Datadog UI では表示や編集ができません。
SLO アラートクエリ

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

  • slo_id: アラートを設定する SLO の英数字の SLO ID。
  • time_window: アラート対象とする SLO ターゲットの時間枠。有効なオプション: 7d、30d、90d。
  • operator: >= または >
監査アラートクエリ

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

  • query 検索クエリ - ログ検索構文 に従います。
  • rollup_method 統計のロールアップメソッド - count、avg、cardinality をサポートします。
  • measure avg および cardinality の rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1 から 2880 の間)、#h (1 から 48 の間)。
  • operator <, <=, >, >=, ==、または !=。
  • # しきい値を設定するために使用される整数または小数。
CI パイプラインアラートクエリ

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

  • query 検索クエリ - ログ検索構文 に従います。
  • rollup_method: 統計のロールアップメソッド。count、avg、cardinality をサポートします。
  • measure avg および cardinality の rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1 から 2880 の間)、#h (1 から 48 の間)。
  • operator <, <=, >, >=, ==、または !=。
  • # しきい値を設定するために使用される整数または小数。
CI テストアラートクエリ

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

  • query 検索クエリ - ログ検索構文 に従います。
  • rollup_method: 統計のロールアップメソッド。count、avg、cardinality をサポートします。
  • measure avg および cardinality の rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1 から 2880 の間)、#h (1 から 48 の間)。
  • operator <, <=, >, >=, ==、または !=。
  • # しきい値を設定するために使用される整数または小数。
Error Tracking アラートクエリ

「新しい問題」の例: error-tracking(query).source(issue_source).new().rollup(rollup_method[, measure]).by(group_by).last(time_window) operator # 「大きな影響がある問題」の例: error-tracking(query).source(issue_source).impact().rollup(rollup_method[, measure]).by(group_by).last(time_window) operator #

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

Database Monitoring アラートクエリ

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

  • query 検索クエリ - ログ検索構文 に従います。
  • rollup_method: 統計のロールアップメソッド。count、avg、cardinality をサポートします。
  • measure avg および cardinality の rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1 から 2880 の間)、#h (1 から 48 の間)。
  • operator <, <=, >, >=, ==、または !=。
  • # しきい値を設定するために使用される整数または小数。

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

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

  • query 検索クエリ - ログ検索構文 に従います。
  • rollup_method: 統計のロールアップメソッド。count、avg、cardinality をサポートします。
  • measure avg および cardinality の rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1 から 2880 の間)、#h (1 から 48 の間)。
  • operator <, <=, >, >=, ==、または !=。
  • # しきい値を設定するために使用される整数または小数。

コストアラートクエリ

例: formula(query).timeframe_type(time_window).function(parameter) operator #

  • query 検索クエリ - ログ検索構文 に従います。
  • timeframe_type コストを評価するための期間タイプ - forecast の場合、current をサポートします - change、anomaly、threshold の場合、last をサポートします
  • time_window - 日次ロールアップをサポートします。例: 7d
  • function - [オプション。省略した場合は threshold モニターがデフォルト] change、anomaly、forecast をサポートします
  • parameter タイプのパラメータを指定します
    • change の場合:
      • relative、absolute をサポートします
      • [オプション] # をサポートします。ここで # はしきい値を設定するために使用される整数または小数です
    • anomaly の場合:
      • direction=both、direction=above、direction=below をサポートします
      • [オプション] threshold=# をサポートします。ここで # はしきい値を設定するために使用される整数または小数です
  • operator
    • threshold の場合、<、<=、>、>=、==、または != をサポートします
    • change の場合、>、< をサポートします
    • anomaly の場合、>= をサポートします
    • forecast の場合、> をサポートします
  • # しきい値を設定するために使用される整数または小数。

** Network Path アラートクエリ**

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

  • query 検索クエリ - ログ検索構文 に従います。
  • index_name 監視対象のデータタイプ。netpath-path および netpath-hop をサポートします。
  • rollup_method: 統計のロールアップメソッド。count、avg、cardinality をサポートします。
  • measure avg および cardinality の rollup_method の場合 - 使用するメジャーまたはファセット名を指定します。
  • time_window #m (1 から 2880 の間)、#h (1 から 48 の間)。
  • operator <, <=, >, >=, ==、または !=。
  • # しきい値を設定するために使用される整数または小数。
This endpoint requires any of the following permissions:
  • monitors_write
  • monitors_draft_write

  • OAuth apps require the monitors_draft_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.

    Object 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.

    Object 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.

    Object 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_configuration

    object

    Tuning options for the anomaly detection model used by the monitor.

    auto_resolve_days

    int32

    Number of days after which an open alert is automatically resolved. When unset, alerts stay open until the measure returns within bounds.

    enable_flatline_detection

    boolean

    Whether to alert when the measure stops changing entirely. Defaults to true.

    function

    enum

    Function applied to the measure before it is compared against the predicted bounds. Allowed enum values: DIFF,DIFF_PERCENT

    min_lower_bound_size

    double

    Minimum distance between the predicted value and the lower bound. Widening the lower bound to at least this size suppresses alerts on small downward deviations. When unset, no minimum is enforced.

    min_upper_bound_size

    double

    Minimum distance between the predicted value and the upper bound. Widening the upper bound to at least this size suppresses alerts on small upward deviations. When unset, no minimum is enforced.

    model_bounds_override

    enum

    Restricts which predicted bound the monitor alerts on. UPPER_ONLY alerts only when the measure rises above the upper bound, LOWER_ONLY only when it falls below the lower bound. When unset, the monitor alerts on both. Allowed enum values: UPPER_ONLY,LOWER_ONLY

    model_type_override

    enum

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

    sensitivity

    double

    Sensitivity of the anomaly detection model, expressed as a multiplier on the width of the predicted bounds. Higher values widen the bounds and produce fewer alerts; lower values tighten them and produce more alerts. Defaults to 3.0.

    source_to_target_config

    object

    Configuration for a source to target monitor, which compares the same measure across two data entities and alerts on the difference between them.

    diff_type [required]

    enum

    How the difference between the source and target measures is computed. absolute subtracts the two values, diff_percent expresses the difference as a percentage of the source value. Allowed enum values: absolute,diff_percent

    entity_type [required]

    string

    Type of the data entities being compared.

    source [required]

    object

    Measure configuration for one side of a source to target comparison.

    custom_sql

    string

    Custom SQL query used to compute the measure for this entity.

    custom_where

    string

    Custom WHERE clause applied when computing the measure for this entity.

    entity_id [required]

    string

    Identifier of the data entity to measure.

    entity_type [required]

    string

    Type of the data entity to measure.

    group_by_columns

    [string]

    Columns to group results by when computing the measure for this entity.

    target [required]

    object

    Measure configuration for one side of a source to target comparison.

    custom_sql

    string

    Custom SQL query used to compute the measure for this entity.

    custom_where

    string

    Custom WHERE clause applied when computing the measure for this entity.

    entity_id [required]

    string

    Identifier of the data entity to measure.

    entity_type [required]

    string

    Type of the data entity to measure.

    group_by_columns

    [string]

    Columns to group results by when computing the measure for this entity.

    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.

    Object 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.

    Object 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.

    Object 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.

    <data_source=reference_table>

    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.

    Object 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.

    Object 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.

    Object 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.

    Object 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.

    Object 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.

    Object 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.

    <data_source=reference_table>

    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 13 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,llm-observability 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.

    Object 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.

    Object 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.

    Object 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_configuration

    object

    Tuning options for the anomaly detection model used by the monitor.

    auto_resolve_days

    int32

    Number of days after which an open alert is automatically resolved. When unset, alerts stay open until the measure returns within bounds.

    enable_flatline_detection

    boolean

    Whether to alert when the measure stops changing entirely. Defaults to true.

    function

    enum

    Function applied to the measure before it is compared against the predicted bounds. Allowed enum values: DIFF,DIFF_PERCENT

    min_lower_bound_size

    double

    Minimum distance between the predicted value and the lower bound. Widening the lower bound to at least this size suppresses alerts on small downward deviations. When unset, no minimum is enforced.

    min_upper_bound_size

    double

    Minimum distance between the predicted value and the upper bound. Widening the upper bound to at least this size suppresses alerts on small upward deviations. When unset, no minimum is enforced.

    model_bounds_override

    enum

    Restricts which predicted bound the monitor alerts on. UPPER_ONLY alerts only when the measure rises above the upper bound, LOWER_ONLY only when it falls below the lower bound. When unset, the monitor alerts on both. Allowed enum values: UPPER_ONLY,LOWER_ONLY

    model_type_override

    enum

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

    sensitivity

    double

    Sensitivity of the anomaly detection model, expressed as a multiplier on the width of the predicted bounds. Higher values widen the bounds and produce fewer alerts; lower values tighten them and produce more alerts. Defaults to 3.0.

    source_to_target_config

    object

    Configuration for a source to target monitor, which compares the same measure across two data entities and alerts on the difference between them.

    diff_type [required]

    enum

    How the difference between the source and target measures is computed. absolute subtracts the two values, diff_percent expresses the difference as a percentage of the source value. Allowed enum values: absolute,diff_percent

    entity_type [required]

    string

    Type of the data entities being compared.

    source [required]

    object

    Measure configuration for one side of a source to target comparison.

    custom_sql

    string

    Custom SQL query used to compute the measure for this entity.

    custom_where

    string

    Custom WHERE clause applied when computing the measure for this entity.

    entity_id [required]

    string

    Identifier of the data entity to measure.

    entity_type [required]

    string

    Type of the data entity to measure.

    group_by_columns

    [string]

    Columns to group results by when computing the measure for this entity.

    target [required]

    object

    Measure configuration for one side of a source to target comparison.

    custom_sql

    string

    Custom SQL query used to compute the measure for this entity.

    custom_where

    string

    Custom WHERE clause applied when computing the measure for this entity.

    entity_id [required]

    string

    Identifier of the data entity to measure.

    entity_type [required]

    string

    Type of the data entity to measure.

    group_by_columns

    [string]

    Columns to group results by when computing the measure for this entity.

    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.

    Object 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.

    Object 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.

    Object 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.

    <data_source=reference_table>

    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.

    Object 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.

    Object 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.

    Object 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.

    Object 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.

    Object 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.

    Object 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.

    <data_source=reference_table>

    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 13 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,llm-observability 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
    # 
    
    # Use a Personal Access Token or Service Access Token
    export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

    # 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 "Authorization: Bearer ${DD_BEARER_TOKEN}" \ -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
    # 
    
    # Use a Personal Access Token or Service Access Token
    export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

    # 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 "Authorization: Bearer ${DD_BEARER_TOKEN}" \ -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
    # 
    
    # Use a Personal Access Token or Service Access Token
    export DD_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>"

    # 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 "Authorization: Bearer ${DD_BEARER_TOKEN}" \ -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())
    	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
    	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())
    	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
    	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())
    	ctx = context.WithValue(ctx, datadog.ContextAccessToken, os.Getenv("DD_BEARER_TOKEN"))
    	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_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" 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();
        defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
        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();
        defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
        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();
        defaultClient.setAccessToken(System.getenv("DD_BEARER_TOKEN"));
        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_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" 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 os import environ
    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()
    configuration.access_token = environ["DD_BEARER_TOKEN"]
    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 os import environ
    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()
    configuration.access_token = environ["DD_BEARER_TOKEN"]
    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 os import environ
    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()
    configuration.access_token = environ["DD_BEARER_TOKEN"]
    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_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" 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"
    DatadogAPIClient.configure do |config|
      config.access_token = ENV["DD_BEARER_TOKEN"]
    end
    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"
    DatadogAPIClient.configure do |config|
      config.access_token = ENV["DD_BEARER_TOKEN"]
    end
    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"
    DatadogAPIClient.configure do |config|
      config.access_token = ENV["DD_BEARER_TOKEN"]
    end
    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_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" 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({
      authMethods: {
        AuthZ: {
          accessToken: process.env.DD_BEARER_TOKEN as string,
        },
      },
    });
    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({
      authMethods: {
        AuthZ: {
          accessToken: process.env.DD_BEARER_TOKEN as string,
        },
      },
    });
    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({
      authMethods: {
        AuthZ: {
          accessToken: process.env.DD_BEARER_TOKEN as string,
        },
      },
    });
    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_BEARER_TOKEN="<PERSONAL_ACCESS_TOKEN OR SERVICE_ACCESS_TOKEN>" tsc "example.ts"