Skip to content

Steps e acoes

Steps sao as acoes individuais que um workflow executa. Cada step e definido em JSON e pode usar dados do evento que disparou o workflow para personalizar seu comportamento.

Tipos de step

Tipo de stepDescricao
Enviar notificacaoEnviar mensagem via Slack, PagerDuty ou email
Atualizar incidenteAlterar status, severidade do incidente ou adicionar comentario
Atualizar status pageDefinir status de componente em uma status page
Criar ticketCriar ticket no Jira, Linear ou GitHub Issues
Requisicao HTTPEnviar requisicao HTTP para qualquer API externa
DelayAguardar uma duracao especifica antes do proximo step
CondicionalRamificar com base em uma condicao

Definindo um step

Cada step e definido como um objeto JSON com um tipo e configuracao:

json
{
  "type": "send_notification",
  "channel": "slack",
  "target": "#incidents",
  "message": "Incidente {{incident.id}} declarado como {{incident.severity}}: {{incident.title}}"
}

Variaveis de template

Os steps podem referenciar dados do incidente usando a sintaxe {{variavel}}:

VariavelDescricao
{{incident.id}}Identificador do incidente
{{incident.title}}Titulo do incidente
{{incident.severity}}Nivel de severidade (P1-P4)
{{incident.status}}Status atual
{{incident.type}}Tipo do incidente
{{incident.commander}}Nome do Comandante
{{incident.url}}URL do incidente no Batida

Logica condicional

Use steps condicionais para ramificar seu workflow com base em propriedades do incidente:

json
{
  "type": "conditional",
  "condition": "{{incident.severity}} == 'P1'",
  "if_true": [
    { "type": "send_notification", "channel": "pagerduty", "target": "exec-escalation" }
  ],
  "if_false": [
    { "type": "send_notification", "channel": "slack", "target": "#incidents" }
  ]
}

Execucao paralela

Por padrao, os steps rodam em sequencia. Para rodar steps em paralelo, agrupe-os em um bloco parallel:

json
{
  "type": "parallel",
  "steps": [
    { "type": "send_notification", "channel": "slack", "target": "#incidents" },
    { "type": "update_status_page", "component": "API", "status": "degraded" }
  ]
}

Steps paralelos sao todos iniciados simultaneamente. O workflow aguarda todos os steps paralelos serem concluidos antes de avancar para o proximo step sequencial.

Tratamento de erros

Quando um step falha, o comportamento do workflow depende da sua configuracao:

Em caso de falhaDescricao
PararO workflow para e registra o erro
ContinuarO workflow pula o step que falhou e continua
RetentarO workflow retenta o step ate 3 vezes com backoff

Por padrao, os workflows usam o comportamento Parar. Voce pode sobrescrever isso por step no editor de workflow.

Logs de execucao dos steps

Cada execucao de step e registrada em log. Voce pode visualizar os logs na pagina de detalhes do workflow para ver:

  • Quais steps tiveram sucesso e quais falharam.
  • Os dados de entrada e saida de cada step.
  • Timestamps e duracoes de execucao.

Built by the Batida team