Sondea una API REST, recorre los resultados y registra los datos en New Relic.
Importante
Los selectores son opcionales para cargas útiles completas. La mayoría de las herramientas de flujo de trabajo admiten referencias directas a objetos de respuesta.
GET simple y log
Encuesta básica de API y logging de respuesta completa:
Lo que hace este flujo de trabajo:
Activar mediante programación (por ejemplo, cada 5 minutos) o ejecución manual
Paso de solicitud HTTP:
- Método: GET
- URL: https://pokeapi.co/api/v2/pokemon
- Guardar el cuerpo de la respuesta en la variable (por ejemplo,
{{.http_response}})
Paso de registro/creación de evento:
- Enviar todo
{{.http_response.body}}como carga útil - No se necesitan selectores: pasar JSON sin formato
- Enviar todo
API REST con bucles y selectores
Obtener todos los resultados de la API REST, iterar sobre los elementos, realizar llamadas individuales y registrar los datos extraídos.
Requisitos: Acceso a la API y permisos de ingestión de logs.
Lo que hace este flujo de trabajo:
- Obtener todos los resultados del punto final de la API REST
- Itera a través de cada resultado de la respuesta
- Realizar llamadas individuales a la API por elemento utilizando datos de bucle
- Extraer campos específicos utilizando selectores
- Registrar los datos extraídos en New Relic con atributos personalizados
Acciones clave: http.get, newrelic.ingest.sendLogs
name: pokemon_workflow description: '' steps: - name: get_all_pokemons type: action action: http.get version: '1' inputs: url: https://pokeapi.co/api/v2/pokemon selectors: - name: pokemons expression: .responseBody | fromjson.results - name: pokemon_loop type: loop for: in: ${{ .steps.get_all_pokemons.outputs.pokemons }} steps: - name: get_individual_pokemon type: action action: http.get version: '1' inputs: url: ${{ .steps.pokemon_loop.loop.element.url }} selectors: - name: pokemon_name expression: .responseBody | fromjson.name - name: pokemon_id expression: .responseBody | fromjson.id - name: pokemon_stats expression: .responseBody | fromjson.stats - name: log_pokemon_info type: action action: newrelic.ingest.sendLogs version: '1' inputs: logs: - message: >- Pokemon name is: ${{ .steps.get_individual_pokemon.outputs.pokemon_name}}, Id: ${{ .steps.get_individual_pokemon.outputs.pokemon_id}} attributes: pokemon_stats: ${{ .steps.get_individual_pokemon.outputs.pokemon_stats}} next: continue next: endConversión de API REST a CSV
Obtiene datos de la API, convierte JSON a CSV, registra en New Relic y comparte a través de Slack.
Requisitos: Acceso a la API y token de Slack en secretos.
Lo que hace este flujo de trabajo:
- Obtener datos de tiempo de la API de World Time por zona horaria
- Convierte la respuesta JSON a CSV
- Registrar CSV en New Relic
- Publicar CSV en el canal de Slack
Acciones clave: http.get, utils.transform.toCSV, newrelic.ingest.sendLogs, slack.chat.postMessage
name: jsontocsv
workflowInputs: timezone: type: String defaultValue: 'America/Los_Angeles'
steps: - name: getCurrentTime type: action action: http.get version: 1 inputs: url: 'https://worldtimeapi.org/api/timezone/${{ .workflowInputs.timezone }}'
- name: csv1 type: action action: utils.transform.toCSV version: 1 inputs: json: ${{ .steps.getCurrentTime.outputs.responseBody }}
- name: logOutput type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'CSV: ${{ .steps.csv1.outputs.csv }}'
- name: postCsv type: action action: slack.chat.postMessage version: 1 inputs: channel: test-channel-workflow text: "Current Date details" attachment: filename: 'file.csv' content: ${{ .steps.csv1.outputs.csv }} token: ${{ :secrets:dn_staging_slack_token }}Que sigue
- Flujos de trabajo avanzados: Patrones de automatización complejos
- Bucles: Obtenga más información sobre los patrones de bucle