Alert rules (spend cap reached, failing run, stuck lease, stale index) with where each one goes, and the incidents they opened. An incident fires once; resolving it is a separate notice.
Usage
overlane observe alertsExamples
overlane observe alerts
overlane observe alerts --jsonBehavior
- Effect:
read(changes nothing). - Needs credentials: yes. Uses the network: yes.
- Supports
--dry-run: no. Accepts--force: no. - Machine-readable description:
overlane schema observe alerts.
Result
With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.
{
"type": "object",
"properties": {
"tenantId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
"description": "tenant identifier"
},
"rules": {
"type": "array",
"items": {
"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
}
},
"incidents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tenantId": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
"description": "tenant identifier"
},
"incidentId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"ruleId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"kind": {
"type": "string",
"enum": [
"spend_cap",
"failing_run",
"stuck_lease",
"index_stale"
]
},
"key": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"detail": {
"type": "string",
"maxLength": 1000
},
"state": {
"type": "string",
"enum": [
"open",
"resolved"
]
},
"openedAt": {
"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)))$"
},
"resolvedAt": {
"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)))$"
},
"nextCommand": {
"type": "string",
"maxLength": 300
},
"deliveries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"channel": {
"type": "string",
"enum": [
"email",
"slack",
"teams"
]
},
"destination": {
"type": "string"
},
"outcome": {
"type": "string",
"enum": [
"delivered",
"failed"
]
},
"kind": {
"type": "string",
"enum": [
"opened",
"resolved"
]
},
"at": {
"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": [
"channel",
"destination",
"outcome",
"kind",
"at"
],
"additionalProperties": false
}
}
},
"required": [
"tenantId",
"incidentId",
"ruleId",
"kind",
"key",
"subject",
"detail",
"state",
"openedAt",
"nextCommand",
"deliveries"
],
"additionalProperties": false
}
}
},
"required": [
"tenantId",
"rules",
"incidents"
],
"additionalProperties": false
}See exit codes for the status the process returns.