Esta página muestra escenarios comunes de automatización que puede crear con la automatización de flujo de trabajo. Emplee estos ejemplos como puntos de partida para su propio flujo de trabajo, o explore la biblioteca de plantillas para encontrar soluciones listas para desplegar.
respuesta a incidencias y remediación
Reversión de la puerta de enlace API
Restablece la configuración de la puerta de enlace API a un estado anterior para poder corregir errores y configuraciones incorrectas.
Lo que hace este flujo de trabajo:
- Detecta implementaciones recientes relacionadas con un problema usando el seguimiento de cambios New Relic
- Envía notificaciones de Slack con botones de aprobación (:+1: o :-1:)
- Tras la aprobación, se crea un documento de AWS Systems Manager para automatizar la reversión.
- Revierte la integración de API Gateway a la versión anterior de Lambda
- Crea un nuevo despliegue para aplicar la reversión.
- Envía notificaciones de éxito o fracaso a Slack.
- Limpia el documento SSM una vez finalizado.
Requisitos:
- Credenciales de AWS con licencias para API Gateway y Systems Manager
- Una aplicación de Slack configurada para recibir notificaciones y aprobaciones.
- New Relic entidad monitoreo con seguimiento de cambios
Acciones clave: newrelic.nerdgraph.execute, slack.chat.postMessage, slack.chat.getReactions, aws.systemsManager.writeDocument, aws.systemsManager.startAutomation, aws.systemsManager.waitForAutomationStatus, aws.systemsManager.deleteDocument
gestión de instancias EC2
Automatice el aprovisionamiento, el escalado y la finalización de instancias EC2 para obtener un rendimiento y un costo óptimos.
Lo que hace este flujo de trabajo:
- Recibe alertas de alto uso de CPU de New Relic
- Recupera los detalles de la alerta e identifica las instancias EC2 afectadas.
- Envía una notificación de Slack con los detalles de la instancia y requests aprobación para el cambio de tamaño.
- Tras su aprobación, se crea un documento SSM para automatizar el redimensionamiento de la instancia.
- Detiene la instancia, modifica el tipo de instancia y la resetear.
- Envía actualizaciones de progreso a Slack durante el proceso de cambio de tamaño.
- Espera a que se complete la operación y envía un estado de éxito o de fallo.
- Limpia el documento SSM y envía la confirmación final.
Requisitos:
- Credenciales de AWS con licencias para EC2 y Systems Manager
- Una condición de alerta activa New Relic para EC2 métrica
- Una aplicación de Slack configurada para recibir notificaciones y aprobaciones.
Acciones clave: 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
despliegue rollback
Revertir el despliegue si la entidad deja de estar en buen estado y notificar mediante AWS SQS o HTTP.
Lo que hace este flujo de trabajo:
- Monitorear la gravedad de las alertas de una entidad durante un periodo de tiempo determinado (30 minutos por defecto).
- Comprueba el estado de la entidad cada minuto
- Si la entidad pasa a estado CRÍTICO o de ADVERTENCIA, registra el estado incorrecto.
- Envía una notificación de reversión a través de AWS SQS (si está configurado) con los detalles de la entidad.
- Envía notificación de reversión mediante webhook HTTP (si está configurado).
- Si la entidad permanece en buen estado durante todo el periodo, registra el éxito.
- Detiene el monitoreo si no se encuentra la entidad
Requisitos:
- New Relic entidad con alerta de monitoreo de severidad
- (Opcional) Cola y rol AWS SQS para recibir la notificación de reversión
- (Opcional) Extremo HTTP para recibir notificación de reversión
Acciones clave: newrelic.nerdgraph.execute, newrelic.ingest.sendLogs, aws.execute.api (sqs.send_message), http.post
procesamiento de datos y elaboración de reportes
Enviar un reporte a Slack
Envía el resultado de una consulta NRQL como archivo CSV en Slack.
Lo que hace este flujo de trabajo:
- Ejecuta una consulta NRQL en la(s) cuenta(s) de New Relic especificada(s).
- Genera un archivo CSV a partir de los resultados de la consulta.
- Publica el archivo CSV en un canal de Slack específico con un mensaje
Requisitos:
- Una credencial de New Relic y una consulta NRQL funcional
- Una aplicación de Slack configurada con un token y un canal objetivo
Acciones clave: newrelic.nrdb.query, utils.transform.toCSV, slack.chat.postMessage
Análisis de JSON
Analiza el JSON de la API de estado público de New Relic (HTTP) y, opcionalmente, registra los componentes operativos y no operativos.
Lo que hace este flujo de trabajo:
- Obtiene datos JSON de la API de estado de New Relic.
- Extrae y clasifica los componentes según su estado operativo.
- Registra condicionalmente los componentes operativos (si está habilitado).
- Registra condicionalmente los componentes no operativos (si está habilitado).
- Gestiona los errores HTTP y registra el mensaje de error.
Requisitos:
- Acceso a la API de estado de New Relic (summary.json)
- Licencias para enviar logs a través de newrelic.ingest.sendLogs
Acciones clave: http.get, newrelic.ingest.sendLogs
Plantilla disponible flujo de trabajo
Las plantillas enumeradas anteriormente están disponibles directamente en la UI de automatización de flujo de trabajo New Relic. Para acceder a ellos:
- Vaya a one.newrelic.com > All Capabilities > Workflow Automation
- Haz clic en Create workflow
- Seleccione Use a template
- Explore la biblioteca de plantillas y elija un flujo de trabajo que se ajuste a su caso de uso.
Cada plantilla incluye:
- Pasos y lógica de flujo de trabajo preconfigurados
- Ejemplo de parámetro de entrada
- Credenciales e integración requeridas
- Documentación de los resultados esperados
Puede emplear las plantillas tal cual o personalizarlas para adaptarlas a sus necesidades específicas.
Pasar datos entre pasos
Todos los flujos de trabajo pueden hacer referencia a los resultados de pasos anteriores empleando sintaxis de plantillas. Esto te permite encadenar acciones y construir una lógica de automatización compleja.
Transmisión de datos básicos
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 }}"Emplear datos en bucles
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 con datos
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 pasos
- Crea tu propio flujo de trabajo - Guía paso a paso para construir un flujo de trabajo
- Catálogo de acciones - Explore todas las acciones disponibles
- Emplee una plantilla : desplegar flujo de trabajo prediseñado
- Configurar las credenciales de AWS : configurar la autenticación de AWS