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
steps: - name: getAlert action: newrelic.nerdgraph.execute inputs: query: | { actor { account(id: 123456) { alerts { violation(id: 789) { condition entity { name guid } } } } } }
- name: sendToSlack action: slack.chat.postMessage inputs: channel: "#incidents" text: "Alert: ${{ .steps.getAlert.outputs.data.actor.account.alerts.violation.condition }}"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 statusPróximos passos
- Crie seu próprio fluxo de trabalho – Guia passo a passo para construir fluxo de trabalho
- Catálogo de ações - Navegue por todas as ações disponíveis
- Use um modelo - implantar fluxo de trabalho pré-construído
- Configurar credenciais da AWS - Configurar autenticação da AWS