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 (SEV1-SEV4)
{{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}} == 'SEV1'",
  "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