Esta página mostra cenários comuns de automação que você pode criar com o fluxo de trabalho Automation. Utilize esses exemplos como ponto de partida para seu próprio fluxo de trabalho ou explore a biblioteca de modelos para soluções prontas para implantação.
resposta a incidentes e remediação
Reversão do gateway de API
Reverter as configurações do gateway de API para um estado anterior permite corrigir erros e configurações incorretas.
O que este fluxo de trabalho faz:
- Detecta implantação recente relacionada a um problema usando o Monitoramento de Alterações New Relic
- Envia notificação do Slack com botões de aprovação (:+1: ou :-1:)
- Após a aprovação, cria um documento do AWS Systems Manager para automatizar o rollback.
- Reverte a integração do API Gateway para a versão anterior do Lambda.
- Cria uma nova implantação para aplicar o rollback.
- Envia notificação de sucesso ou falha para o Slack
- Limpa o documento SSM após a conclusão.
Requisitos:
- Credenciais da AWS com permissões para API Gateway e Systems Manager.
- Um aplicativo Slack configurado para receber notificações e aprovações
- New Relic entidade monitoramento com Monitoramento de Alterações
Ações principais: newrelic.nerdgraph.execute, slack.chat.postMessage, slack.chat.getReactions, aws.systemsManager.writeDocument, aws.systemsManager.startAutomation, aws.systemsManager.waitForAutomationStatus, aws.systemsManager.deleteDocument
Óbvias de gestão EC2
Automatize o provisionamento, o dimensionamento e o encerramento de instâncias do EC2 para obter desempenho e custo ideais.
O que este fluxo de trabalho faz:
- Recebe alertas de alta utilização da CPU do New Relic.
- Recupera detalhes de alerta e identifica as instâncias impactadas do EC2
- Envia notificação ao Slack com detalhes da instância e requests aprovação para redimensionamento
- Após a aprovação, cria um documento SSM para automatizar o redimensionamento da instância.
- Interrompe a instância, modifica o tipo de instância e a reinicia
- Envia atualizações de progresso para o Slack durante o processo de redimensionamento.
- Aguarda a conclusão e envia o status de sucesso ou falha.
- Revisa o documento SSM e envia a confirmação final.
Requisitos:
- Credenciais da AWS com permissões para EC2 e Systems Manager
- Uma condição de alerta ativa New Relic para a métrica EC2
- Um aplicativo Slack configurado para receber notificações e aprovações
Ações principais: newrelic.nerdgraph.execute, newrelic.nrdb.query, slack.chat.postMessage, slack.chat.getReactions, aws.systemsManager.writeDocument, aws.systemsManager.startAutomation, aws.systemsManager.waitForAutomationStatus, aws.systemsManager.deleteDocument, utils.datetime.fromEpoch, utils.uuid.generate
Reversão da implantação
Reverter a implantação caso a entidade apresente problemas e notificar o usuário por meio do AWS SQS ou HTTP.
O que este fluxo de trabalho faz:
- Monitora a gravidade dos alertas de uma entidade durante um período específico (30 minutos por padrão).
- Verifica a integridade da entidade a cada minuto.
- Se a entidade entrar em estado CRÍTICO ou de AVISO, o status de não integridade será registrado.
- Envia notificação de rollback via AWS SQS (se configurado) com detalhes da entidade
- Envia notificação de rollback via webhook HTTP (se configurado)
- Se a entidade permanecer íntegra durante todo o período, registra o sucesso.
- Interrompe o monitoramento se a entidade não for encontrada.
Requisitos:
- Organização New Relic com alerta de monitoramento de severidade
- (Opcional) Fila e função AWS SQS para receber notificação de reversão
- (Opcional) endpoint HTTP para receber notificação de reversão
Ações principais: newrelic.nerdgraph.execute, newrelic.ingest.sendLogs, aws.execute.api (sqs.send_message), http.post
processamento de dados e relatórios
Enviar um relatório para o Slack
Envie o resultado de uma consulta NRQL como um arquivo CSV no Slack.
O que este fluxo de trabalho faz:
- Executa uma consulta NRQL na(s) conta(s) New Relic especificada(s).
- Gera um arquivo CSV a partir dos resultados da consulta.
- Publica o arquivo CSV em um canal específico do Slack com uma mensagem.
Requisitos:
- Uma credencial do New Relic e uma consulta NRQL funcional.
- Um aplicativo Slack configurado com um token e um canal de destino.
Ações principais: newrelic.nrdb.query, utils.transform.toCSV, slack.chat.postMessage
Análise de JSON
Analisa o JSON (HTTP) da API de status público do New Relic e, opcionalmente, registra componentes operacionais e não operacionais.
O que este fluxo de trabalho faz:
- Obtém dados JSON da API de status do New Relic.
- Extrai e categoriza os componentes de acordo com seu status operacional.
- Registra condicionalmente os componentes operacionais (se ativado).
- Registra condicionalmente componentes não operacionais (se ativado)
- Lida com erros HTTP e registra mensagem de erro
Requisitos:
- Acesso à API de status do New Relic (summary.json)
- Permissões para enviar logs via newrelic.ingest.sendLogs
Ações principais: http.get, newrelic.ingest.sendLogs
Modelo disponível de fluxo de trabalho
Os modelos listados acima estão disponíveis diretamente na interface de Automação de Fluxo de Trabalho New Relic. Para acessá-los:
- Acesse one.newrelic.com > All Capabilities > Workflow Automation
- Clique em Create workflow
- Selecione Use a template
- Navegue pela biblioteca de modelos e escolha um fluxo de trabalho que corresponda ao seu caso de uso.
Cada modelo inclui:
- Etapas e lógica de fluxo de trabalho pré-configuradas
- Exemplo de entrada (parâmetro)
- Credenciais e integração necessárias
- Documentação dos resultados esperados
Você pode usar os modelos tal como estão ou personalizá-los para atender às suas necessidades específicas.
Passando dados entre etapas
Todo fluxo de trabalho pode referenciar resultados de etapas anteriores usando a sintaxe de modelo. Isso permite encadear ações e construir uma lógica de automação complexa.
Passagem básica de dados
Este exemplo consulta alertas de problemas do New Relic e envia uma notificação para o Slack para cada problema ativo.
name: alertSlackdescription: "query Alert Issues and send notifications to Slack"
workflowInputs: accountId: type: Int
steps: - name: getAlert type: action action: newrelic.nerdgraph.execute version: 1 inputs: graphql: | query GetAlertIssues($accountId: Int!) { actor { account(id: $accountId) { aiIssues { issues(filter: {states: ACTIVATED}) { issues { issueId priority state title } } } } } } variables: accountId: ${{ .workflowInputs.accountId }}
- name: loopStep type: loop for: in: ${{ .steps.getAlert.outputs.data.actor.account.aiIssues.issues.issues }} steps: - name: sendToSlack type: action action: slack.chat.postMessage version: 1 inputs: token: ${{ :secrets:your_slack_token }} channel: incident-channel text: > issueId: ${{ .steps.loopStep.loop.element.issueId }} priority: ${{ .steps.loopStep.loop.element.priority }} state: ${{ .steps.loopStep.loop.element.state }} title: ${{ .steps.loopStep.loop.element.title | tostring }}Utilizando dados em loops
steps: - name: listInstances type: action action: aws.ec2.describeInstances version: 1 inputs: filters: - name: "tag:Environment" values: ["production"]
- name: checkEachInstance type: loop for: in: "${{ .steps.listInstances.outputs.reservations }}" steps: - name: getInstanceMetrics type: action action: newrelic.nerdgraph.execute version: 1 inputs: query: "SELECT average(cpuPercent) FROM SystemSample WHERE instanceId = '${{ .steps.checkEachInstance.loop.element.instanceId }}'"Lógica condicional com dados
steps: - name: checkCPU type: action action: newrelic.nerdgraph.execute version: 1 # ... query configuration
- name: decideAction type: switch switch: - condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 90 }}" next: resizeInstance - condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 70 }}" next: sendWarning next: normalOperation
- name: resizeInstance type: action action: aws.ec2.modifyInstanceAttribute version: 1 # ... resize configuration
- name: sendWarning type: action action: slack.chat.postMessage version: 1 # ... warning message
- name: normalOperation type: action action: newrelic.ingest.sendLogs version: 1 # ... log normal statusQual é o próximo
- Resolução de problemas: corrija erros de credenciais, problemas de integração e falhas de fluxo de trabalho.
- Práticas recomendadas: Tratamento de erros, otimização de desempenho, estratégias de teste.
- Limites do workflow: Compreenda os tempos limite, os limites de taxa e as restrições.