Logz.io · Arazzo Workflow

Logz.io Alert Enable/Disable Lifecycle

Version 1.0.0

Create an alert, disable it for a maintenance window, re-enable it, and verify.

1 workflow 1 source API 1 provider
View Spec View on GitHub ObservabilityLoggingMetricsTracingSIEMELKElasticsearchOpenSearchPrometheusGrafanaOpenTelemetryAIOpsCloud ObservabilityManaged ELKCost ManagementArazzoWorkflows

Provider

logz-io

Workflows

alert-lifecycle
Create an alert then toggle it disabled and enabled, confirming final state.
Creates an alert, disables it, re-enables it, and retrieves it to confirm the alert is active.
4 steps inputs: alertTitle, apiToken, query outputs: alertId, enabled
1
createAlert
createAlert
Create the alert that will be cycled through disable and enable states.
2
disableAlert
disableAlert
Disable the alert by its id so it will not fire during the maintenance window.
3
enableAlert
enableAlert
Re-enable the alert by its id once the maintenance window is over.
4
getAlert
getAlert
Read the alert back to confirm it is enabled again after the cycle.

Source API Descriptions

Arazzo Workflow Specification

logz-io-alert-lifecycle-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Logz.io Alert Enable/Disable Lifecycle
  summary: Create an alert, disable it for a maintenance window, re-enable it, and verify.
  description: >-
    Models a maintenance-window pattern for a single alert. The workflow creates
    a new alert, immediately disables it so it will not fire during a known
    noisy period, re-enables it afterwards, and then reads the alert back to
    confirm it is active again. Every step spells out its request inline so the
    flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: logzioApi
  url: ../openapi/logz-io-api-openapi.yml
  type: openapi
workflows:
- workflowId: alert-lifecycle
  summary: Create an alert then toggle it disabled and enabled, confirming final state.
  description: >-
    Creates an alert, disables it, re-enables it, and retrieves it to confirm
    the alert is active.
  inputs:
    type: object
    required:
    - apiToken
    - alertTitle
    - query
    properties:
      apiToken:
        type: string
        description: Logz.io API token sent in the X-API-TOKEN header.
      alertTitle:
        type: string
        description: Title for the new alert.
      query:
        type: string
        description: Lucene search query the alert evaluates against the logs.
  steps:
  - stepId: createAlert
    description: >-
      Create the alert that will be cycled through disable and enable states.
    operationId: createAlert
    parameters:
    - name: X-API-TOKEN
      in: header
      value: $inputs.apiToken
    requestBody:
      contentType: application/json
      payload:
        title: $inputs.alertTitle
        description: Alert created by the Arazzo alert-lifecycle workflow.
        searchTimeFrameMinutes: 20
        subComponents:
        - queryDefinition:
            query: $inputs.query
            shouldQueryOnAllAccounts: true
          trigger:
            operator: GREATER_THAN_OR_EQUALS
            severityThresholdTiers:
              HIGH: 100
        enabled: true
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      alertId: $response.body#/id
  - stepId: disableAlert
    description: >-
      Disable the alert by its id so it will not fire during the maintenance
      window.
    operationId: disableAlert
    parameters:
    - name: X-API-TOKEN
      in: header
      value: $inputs.apiToken
    - name: id
      in: path
      value: $steps.createAlert.outputs.alertId
    successCriteria:
    - condition: $statusCode == 200
  - stepId: enableAlert
    description: >-
      Re-enable the alert by its id once the maintenance window is over.
    operationId: enableAlert
    parameters:
    - name: X-API-TOKEN
      in: header
      value: $inputs.apiToken
    - name: id
      in: path
      value: $steps.createAlert.outputs.alertId
    successCriteria:
    - condition: $statusCode == 200
  - stepId: getAlert
    description: >-
      Read the alert back to confirm it is enabled again after the cycle.
    operationId: getAlert
    parameters:
    - name: X-API-TOKEN
      in: header
      value: $inputs.apiToken
    - name: alertId
      in: path
      value: $steps.createAlert.outputs.alertId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      enabled: $response.body#/enabled
  outputs:
    alertId: $steps.createAlert.outputs.alertId
    enabled: $steps.getAlert.outputs.enabled