---
title: "GET /api/v1/config/monitors/{slug}"
method: GET
path: "/api/v1/config/monitors/{slug}"
tags: ["Monitor"]
---

# GET /api/v1/config/monitors/{slug}

`GET /api/v1/config/monitors/{slug}`

## Path parameters

- `slug` string, required

## Response `200`

A successful response.

- Configv1ReadMonitorResponse
  - `monitor` Configv1Monitor
    - `annotations` object — Annotations are visible in notifications generated by this monitor. They can be be templated with labels from notifications.
    - `bucket_slug` string — Slug of the bucket the monitor belongs to. Required if `collection_slug` isn't set.
    - `collection` Configv1CollectionReference
      - `slug` string
      - `type` 'SIMPLE' | 'SERVICE'
    - `collection_slug` string — Slug of the collection the monitor belongs to. Required if `bucket_slug` isn't set.
    - `created_at` string, date-time — Timestamp of when the Monitor was created. Cannot be set by clients.
    - `graphite_query` string — Graphite query to evaluate for the alert. If set, no other queries can be set.
    - `interval_secs` integer — Specifies how often alerts are evaluated. Default: `60s`.
    - `labels` object — Required. Labels to include in notifications generated by this monitor, and can be used to route alerts with notification overrides.
    - `logging_query` string — Logging query to evaluate for the alert. If set, no other queries can be set.
    - `name` string, required — The name of the Monitor. You can modify this value after the Monitor is created.
    - `notification_policy_slug` string — Specifies the notification policy used to route alerts generated by the monitor. If omitted, the notification policy is inherited from the monitor.
    - `notification_template` MonitorNotificationTemplate
      - `description` string — Go template for the alert description.
      - `title` string — Go template for the alert title.
    - `prometheus_query` string — PromQL query to evaluate for the alert. If set, no other queries can be set.
    - `schedule` MonitorSchedule
      - `timezone` string — The timezone of the time ranges.
      - `weekly_schedule` ScheduleWeeklySchedule
        - `friday` ScheduleScheduleDay
          - `active` 'ALL_DAY' | 'ONLY_DURING_RANGES' | 'NEVER'
          - `ranges` ScheduleDayTimeRange[] — The time ranges that the monitor is active on this day. Required if `active` is set to `ONLY_DURING_RANGES`. Otherwise, this field must be empty.
            - `end_hh_mm` string — End time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
            - `start_hh_mm` string — Start time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
        - `monday` ScheduleScheduleDay
          - `active` 'ALL_DAY' | 'ONLY_DURING_RANGES' | 'NEVER'
          - `ranges` ScheduleDayTimeRange[] — The time ranges that the monitor is active on this day. Required if `active` is set to `ONLY_DURING_RANGES`. Otherwise, this field must be empty.
            - `end_hh_mm` string — End time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
            - `start_hh_mm` string — Start time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
        - `saturday` ScheduleScheduleDay
          - `active` 'ALL_DAY' | 'ONLY_DURING_RANGES' | 'NEVER'
          - `ranges` ScheduleDayTimeRange[] — The time ranges that the monitor is active on this day. Required if `active` is set to `ONLY_DURING_RANGES`. Otherwise, this field must be empty.
            - `end_hh_mm` string — End time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
            - `start_hh_mm` string — Start time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
        - `sunday` ScheduleScheduleDay
          - `active` 'ALL_DAY' | 'ONLY_DURING_RANGES' | 'NEVER'
          - `ranges` ScheduleDayTimeRange[] — The time ranges that the monitor is active on this day. Required if `active` is set to `ONLY_DURING_RANGES`. Otherwise, this field must be empty.
            - `end_hh_mm` string — End time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
            - `start_hh_mm` string — Start time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
        - `thursday` ScheduleScheduleDay
          - `active` 'ALL_DAY' | 'ONLY_DURING_RANGES' | 'NEVER'
          - `ranges` ScheduleDayTimeRange[] — The time ranges that the monitor is active on this day. Required if `active` is set to `ONLY_DURING_RANGES`. Otherwise, this field must be empty.
            - `end_hh_mm` string — End time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
            - `start_hh_mm` string — Start time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
        - `tuesday` ScheduleScheduleDay
          - `active` 'ALL_DAY' | 'ONLY_DURING_RANGES' | 'NEVER'
          - `ranges` ScheduleDayTimeRange[] — The time ranges that the monitor is active on this day. Required if `active` is set to `ONLY_DURING_RANGES`. Otherwise, this field must be empty.
            - `end_hh_mm` string — End time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
            - `start_hh_mm` string — Start time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
        - `wednesday` ScheduleScheduleDay
          - `active` 'ALL_DAY' | 'ONLY_DURING_RANGES' | 'NEVER'
          - `ranges` ScheduleDayTimeRange[] — The time ranges that the monitor is active on this day. Required if `active` is set to `ONLY_DURING_RANGES`. Otherwise, this field must be empty.
            - `end_hh_mm` string — End time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
            - `start_hh_mm` string — Start time in the in format `"<hour>:<minute>"`. For example, `"15:30"`.
    - `series_conditions` MonitorSeriesConditions — Conditions evaluated against each queried series to determine the severity of each series.
      - `defaults` SeriesConditionsSeverityConditions
        - `critical` SeriesConditionsConditions
          - `conditions` Configv1MonitorCondition[] — List of conditions to evaluate against a series. Only one condition must match to assign a severity to a signal.
            - `op` 'GEQ' | 'GT' | 'LEQ' | 'LT' | 'EQ' | 'NEQ' | 'EXISTS' | 'NOT_EXISTS' | 'SIGNAL_NOT_EXISTS'
            - `resolve_sustain_secs` integer — Amount of time the query needs to no longer fire before resolving. Must be an integer. Accepts one of `s` (seconds), `m` (minutes), or `h` (hours) as units.
            - `resolve_value` Configv1OptionalDouble
              - …
            - `sustain_secs` integer — Amount of time the query needs to fail the condition check before an alert is triggered. Must be an integer. Accepts one of `s` (seconds), `m` (minutes), or `h` (hours) as units.
            - `value` number, double — Required. The value to compare to the metric value using the `op` operation.
        - `warn` SeriesConditionsConditions
          - `conditions` Configv1MonitorCondition[] — List of conditions to evaluate against a series. Only one condition must match to assign a severity to a signal.
            - `op` 'GEQ' | 'GT' | 'LEQ' | 'LT' | 'EQ' | 'NEQ' | 'EXISTS' | 'NOT_EXISTS' | 'SIGNAL_NOT_EXISTS'
            - `resolve_sustain_secs` integer — Amount of time the query needs to no longer fire before resolving. Must be an integer. Accepts one of `s` (seconds), `m` (minutes), or `h` (hours) as units.
            - `resolve_value` Configv1OptionalDouble
              - …
            - `sustain_secs` integer — Amount of time the query needs to fail the condition check before an alert is triggered. Must be an integer. Accepts one of `s` (seconds), `m` (minutes), or `h` (hours) as units.
            - `value` number, double — Required. The value to compare to the metric value using the `op` operation.
      - `overrides` MonitorSeriesConditionsOverride[] — Optional. Specifies a list of overrides to use for series having matching labels. Each override defines labels that potentially match a series' labels. If one or more overrides match a series, the severity conditions of the first matching override are used instead of the defaults. Cannot be used if `graphite_query` is set.
        - `label_matchers` Configv1LabelMatcher[] — Set of matchers on a series' labels. If all labels match, then the conditions defined in this override are used.
          - `name` string — The name of the label to match against. This always matches against an exact label name, regardless of the value of `type`.
          - `type` 'EXACT' | 'REGEX'
          - `value` string — The value of the label to match against. If `type` is set to `EXACT`, this matches against an exact label value. If `type` is set to `REGEX`, this parameter is treated as a regular expression for parsing label values.
        - `severity_conditions` SeriesConditionsSeverityConditions
          - `critical` SeriesConditionsConditions
            - `conditions` Configv1MonitorCondition[] — List of conditions to evaluate against a series. Only one condition must match to assign a severity to a signal.
              - …
          - `warn` SeriesConditionsConditions
            - `conditions` Configv1MonitorCondition[] — List of conditions to evaluate against a series. Only one condition must match to assign a severity to a signal.
              - …
    - `signal_grouping` MonitorSignalGrouping — SignalGrouping defines how the set of series from the query are split into signals.
      - `label_names` string[] — Set of label names used to split series into signals. Each unique combination of labels result in its own signal. For example, if `label_names` is `["service", "code"]`, then all series including labels `{service="foo",code="404"}` will be grouped together in the same signal. Cannot be used if `graphite_query` is set.
      - `signal_per_series` boolean — If set to `true`, each series will have its own signal. Cannot be used with `label_names`.
    - `slug` string — The unique identifier of the Monitor. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the Monitor is created.
    - `updated_at` string, date-time — Timestamp of when the Monitor was last updated. Cannot be set by clients.

## Other responses

- `404` — Cannot read the Monitor because the slug does not exist.
- `500` — An unexpected error response.
- `default` — An undefined error response.

---

[API](https://skmtc.net/chronosphere/apis/data-v1-api.md) · [All operations](https://skmtc.net/chronosphere/apis/data-v1-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/chronosphere/data-v1-api/versions/ee91fd539ced/schema)
