Skip to content

overlane observe alerts set

Create or change an alert rule

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Sets a rule for a spend cap, a failing run, a stuck lease or a stale index, and where its notice goes: an email address, a Slack channel or a Teams channel. –percent sets the spend threshold, –minutes the age for a stuck lease or stale index. Reusing a rule ID changes that rule.

Usage

overlane observe alerts set --kind KIND [--email ADDRESS] [--slack CHANNEL] [--teams CHANNEL] [--percent N] [--minutes N] [--rule-id ID] [--off] [--dry-run]

Flags

Flag Type Required Default Description
--kind one of spend_cap, failing_run, stuck_lease, index_stale yes spend_cap, failing_run, stuck_lease or index_stale
--email string no Send to this email address
--slack string no Send to this Slack channel
--teams string no Send to this Teams channel
--percent string no Spend threshold as a percent of the limit, 1 to 100
--minutes string no Age in minutes for a stuck lease or a stale index
--rule-id string no Change this rule instead of adding one
--off boolean no Keep the rule but turn it off
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane observe alerts set --kind failing_run --email ops@example.com --slack ops
overlane observe alerts set --kind spend_cap --percent 80 --email ops@example.com --dry-run

Behavior

  • Effect: write (changes local or hosted state).
  • Needs credentials: yes. Uses the network: yes.
  • Supports --dry-run: yes. Accepts --force: no.
  • Machine-readable description: overlane schema observe alerts set.

Result

With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "tenantId": {
          "type": "string"
        },
        "rule": {
          "type": "object",
          "properties": {
            "tenantId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
              "description": "tenant identifier"
            },
            "ruleId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "kind": {
              "type": "string",
              "enum": [
                "spend_cap",
                "failing_run",
                "stuck_lease",
                "index_stale"
              ]
            },
            "threshold": {
              "type": "object",
              "properties": {
                "percent": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 100
                },
                "minutes": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10080
                }
              },
              "additionalProperties": false
            },
            "targets": {
              "minItems": 1,
              "maxItems": 10,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "channel": {
                    "type": "string",
                    "enum": [
                      "email",
                      "slack",
                      "teams"
                    ]
                  },
                  "destination": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                },
                "required": [
                  "channel",
                  "destination"
                ],
                "additionalProperties": false
              }
            },
            "enabled": {
              "type": "boolean"
            },
            "updatedBy": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "updatedAt": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            }
          },
          "required": [
            "tenantId",
            "ruleId",
            "kind",
            "threshold",
            "targets",
            "enabled",
            "updatedBy",
            "updatedAt"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "tenantId",
        "rule"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "dryRun": {
          "type": "boolean",
          "const": true
        },
        "service": {
          "type": "string"
        },
        "requests": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "body": {},
              "note": {
                "type": "string"
              }
            },
            "required": [
              "method",
              "path"
            ],
            "additionalProperties": false
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "writes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "action": {
                "type": "string",
                "enum": [
                  "write",
                  "append",
                  "delete"
                ]
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "path",
              "action",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "dryRun",
        "requests",
        "commands",
        "writes",
        "notes"
      ],
      "additionalProperties": false
    }
  ]
}

See exit codes for the status the process returns.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.