Alerts API

Create and manage alert rules, and view alert history.

POST
/rest/v1/rpc/list_alert_rules
List all alert rules for the current tenant.

Authentication

Requires JWT token (Bearer token)

Parameters

NameTypeRequiredDescription
p_tenant_idstringRequiredTenant ID (extracted from JWT if not provided)

Responses

200List of alert rules
[
  {
    "rule_id": "uuid",
    "tenant_id": "tenant-123",
    "name": "High Error Rate",
    "description": "Alert when error rate exceeds threshold",
    "query_dsl": "level = 'error'",
    "threshold": 100,
    "comparison": "gt",
    "window_minutes": 5,
    "cooldown_minutes": 15,
    "enabled": true,
    "notification_destinations": ["email", "webhook"],
    "notification_config": {
      "email": "admin@example.com",
      "webhook_url": "https://example.com/webhook"
    },
    "created_at": "2025-01-15T10:00:00Z",
    "updated_at": "2025-01-15T10:00:00Z"
  }
]
POST
/rest/v1/rpc/get_alert_rule
Get a specific alert rule by ID.

Authentication

Requires JWT token (Bearer token)

Parameters

NameTypeRequiredDescription
p_rule_idstring (UUID)RequiredAlert rule ID

Responses

200Alert rule details
404Alert rule not found
POST
/rest/v1/rpc/create_alert_rule
Create a new alert rule.

Authentication

Requires JWT token (Bearer token)

Parameters

NameTypeRequiredDescription
p_tenant_idstringRequiredTenant ID
p_namestringRequiredAlert rule name
p_descriptionstringOptionalAlert description
p_query_dslstringRequiredDSL query to evaluate
p_thresholdnumberRequiredThreshold value
p_comparisonstringRequiredComparison operator: gt, gte, lt, lte, eq, neq
p_window_minutesnumberRequiredTime window in minutes
p_cooldown_minutesnumberRequiredCooldown period in minutes
p_enabledbooleanRequiredWhether the rule is enabled
p_notification_destinationsstring[]OptionalArray of notification channels (e.g., ["email", "webhook"])
p_notification_configobjectOptionalNotification configuration (e.g., email addresses, webhook URLs)

Request Body

interface CreateAlertRuleRequest {
  p_tenant_id: string
  p_name: string
  p_description?: string
  p_query_dsl: string
  p_threshold: number
  p_comparison: 'gt' | 'gte' | 'lt' | 'lte' | 'eq' | 'neq'
  p_window_minutes: number
  p_cooldown_minutes: number
  p_enabled: boolean
  p_notification_destinations: string[]
  p_notification_config: Record<string, any>
}
Example
{
  "p_tenant_id": "tenant-123",
  "p_name": "High Error Rate",
  "p_description": "Alert when error rate exceeds 100 in 5 minutes",
  "p_query_dsl": "level = 'error'",
  "p_threshold": 100,
  "p_comparison": "gt",
  "p_window_minutes": 5,
  "p_cooldown_minutes": 15,
  "p_enabled": true,
  "p_notification_destinations": ["email", "webhook"],
  "p_notification_config": {
    "email": "admin@example.com",
    "webhook_url": "https://example.com/webhook"
  }
}

Responses

200Created alert rule
400Invalid input
POST
/rest/v1/rpc/update_alert_rule
Update an existing alert rule.

Authentication

Requires JWT token (Bearer token)

Parameters

NameTypeRequiredDescription
p_rule_idstring (UUID)RequiredAlert rule ID
p_namestringOptionalAlert rule name
p_descriptionstringOptionalAlert description
p_query_dslstringOptionalDSL query to evaluate
p_thresholdnumberOptionalThreshold value
p_comparisonstringOptionalComparison operator
p_window_minutesnumberOptionalTime window in minutes
p_cooldown_minutesnumberOptionalCooldown period in minutes
p_enabledbooleanOptionalWhether the rule is enabled
p_notification_destinationsstring[]OptionalArray of notification channels
p_notification_configobjectOptionalNotification configuration

Responses

200Updated alert rule
404Alert rule not found
POST
/rest/v1/rpc/delete_alert_rule
Delete an alert rule.

Authentication

Requires JWT token (Bearer token)

Parameters

NameTypeRequiredDescription
p_rule_idstring (UUID)RequiredAlert rule ID

Responses

200Successfully deleted
404Alert rule not found
POST
/rest/v1/rpc/list_alert_history
List alert history with optional filters.

Authentication

Requires JWT token (Bearer token)

Parameters

NameTypeRequiredDescription
p_tenant_idstringRequiredTenant ID
p_rule_idstring (UUID)OptionalFilter by alert rule ID
p_ts_fromstringOptionalStart timestamp (ISO 8601)
p_ts_tostringOptionalEnd timestamp (ISO 8601)
p_acknowledgedbooleanOptionalFilter by acknowledgment status
p_limitnumberOptionalMaximum number of results (default: 100)

Responses

200List of alert history entries
[
  {
    "alert_id": "uuid",
    "rule_id": "uuid",
    "tenant_id": "tenant-123",
    "triggered_at": "2025-01-15T10:30:00Z",
    "value": 150,
    "threshold": 100,
    "acknowledged": false,
    "acknowledged_at": null,
    "acknowledged_by": null,
    "notification_sent": true,
    "notification_sent_at": "2025-01-15T10:30:05Z",
    "notification_channels": ["email", "webhook"]
  }
]
POST
/rest/v1/rpc/acknowledge_alert
Acknowledge an alert to mark it as resolved.

Authentication

Requires JWT token (Bearer token)

Parameters

NameTypeRequiredDescription
p_alert_idstring (UUID)RequiredAlert history ID

Responses

200Successfully acknowledged
404Alert not found