New Relic ofrece integraciones e inicios rápidos para muchos servicios y frameworks populares. Si ya usas New Relic y quieres reportar datos de un servicio para el cual no tenemos una integración, puedes crear tu propia integración siguiendo estas opciones:
- Con , puede utilizar nuestra herramienta ligera Flex (recomendado) o crear una integración en el host completa mediante nuestro SDK de integraciones.
- Para soluciones de monitoreo de telemetría (métrica, traza), utilice nuestros SDK de telemetría.
- Cree una aplicación New Relic personalizada que utilice su propia funcionalidad UI de JavaScript.
¿Qué es New Relic Flex?
Flex es una integración de New Relic todo en uno e independiente de la aplicación que le permite recopilar eventos y métricas de una amplia gama de servicios. Viene incluido con nuestro agente de infraestructura. Puedes instrumentar cualquier aplicación que exponga métricas a través de un protocolo estándar (HTTP, archivo, shell) en un formato estándar (por ejemplo, JSON o texto plano): creas un archivo de configuración YAML, inicias el agente de infraestructura y tus datos se reportan a New Relic.
Después de recopilar y limpiar los datos, puede consultar los datos de Flex en New Relic, crear gráficos personalizados para ellos y utilizar esos datos en sus dashboards.
Verifique la compatibilidad y los requisitos
Asegúrese de que su sistema cumpla con estos requisitos:
- Regístrese para obtener una cuenta gratuita si aún no lo ha hecho. ¡Es gratis!
- Consulte el documento requisitos para el agente de infraestructura para asegurarse de que su sistema y las integraciones en el host que configure cumplan con los requisitos.
- Flex viene incluido con nuestro agente de infraestructura versión 1.10.7 o superior que se ejecuta en Linux, Windows o Kubernetes.
Consulte el documento identificar versiones de agentes desactualizadas desde la UI para verificar su versión o el documento actualizar el agente de infraestructura si necesita actualizarlo.
Instalacion
Siga estos pasos para instalar New Relic Flex:
Instalar el agente de infraestructura
A partir de la versión 1.10.7 del agente de infraestructura de New Relic, Flex viene incluido con el agente. Para instalar el agente de infraestructura, consulte:
Instalar el agente de infraestructura para Windows
Sugerencia
El agente debe ejecutarse en modo root/administrador. Puede iniciar, detener y reiniciar el agente de infraestructura desde la línea de comandos.
Compruebe que Flex esté en funcionamiento
Sigue estos pasos:
Vaya a la carpeta de integraciones del agente de infraestructura:
- Para Linux:
/etc/newrelic-infra/integrations.d - Para Windows:
C:\Program Files\New Relic\newrelic-infra\integrations.d\
- Para Linux:
Cree el archivo de configuración de la integración. Por ejemplo,
integrations.yml, si no existe.Agregue la configuración de Flex al archivo:
integrations:- name: nri-flexconfig:name: just-testingSi ya tiene una sección
integrationsen el archivo, agréguelenri-flex.Después de unos minutos, vaya a one.newrelic.com > All capabilities > Query your data y ejecute esta consulta:
FROM flexStatusSampleSELECT *LIMIT 1La consulta debería devolver una tabla similar a esta:

Vaya a one.newrelic.com > All capabilities > Query your data, agregue su consulta en el constructor de consultas y haga clic en Run.
Sugerencia
Si no obtienes nada, asegúrate de que tu archivo de configuración YAML esté bien indentado y que los niveles de indentación no usen tabulaciones en lugar de espacios. Puede usar un validador YAML, como YAML Lint
Su primera integración de Flex
Este ejemplo muestra cómo recopilar métricas de disco de sistemas de archivos no admitidos nativamente por New Relic usando el comando df en Linux.
El objetivo es procesar la salida del comando df, mostrando el sistema de archivos y los bloques de 1 byte, excluyendo los sistemas de archivos ya admitidos por el agente. Si los sistemas de archivos no soportados no están montados, elimine los argumentos -x.
$ df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4Filesystem Type 1-blocks Used Available Capacity Mounted ondevtmpfs devtmpfs 246296576 0 246296576 0% /devgo_src vboxsf 499963170816 361339486208 138623684608 73% /go/srcDebe convertir la salida de texto tabular anterior en un conjunto de muestras JSON equivalentes con el siguiente formato. Observe que el agente decora cada muestra con campos adicionales:
{ "event": { "event_type": "FileSystemSample", "fs": "go_src", "fsType": "vboxsf", "capacityBytes": 499963170816, "usedBytes": 361345331200, "availableBytes": 138617839616, "usedPerc": 73, "mountedOn": "/go/src" }}Primero, debe indicar a Flex cómo realizar la transformación anterior de texto de tabla a JSON especificando lo siguiente:
- Nombre de la métrica:
FileSystem - Qué comando ejecutar:
df -PT -B1 ... - Cómo dividir la tabla de salida de
df - Cómo asignar los valores a nombres de métricas dados
Esto se logra colocando el contenido a continuación en el archivo de configuración YAML:
integrations: - name: nri-flex config: name: linuxFileSystemIntegration apis: - name: FileSystem commands: - run: 'df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4' split: horizontal split_by: \s+ row_start: 1 set_header: [fs,fsType,capacityBytes,usedBytes,availableBytes,usedPerc,mountedOn] perc_to_decimal: trueapises un arreglo de entradas para cada muestra. Cada entrada establece un nombre para la muestra, así como los comandos y procedimientos para obtener y procesar la muestra. La primera entrada en el ejemplo se llamaFileSystem, que se utiliza para nombrar el eventoFileSystemSample.commandsespecifica cómo obtener la información de las aplicaciones de CLI:run: 'df -PT -B1...especifica el comando a ejecutar.split: horizontalindica que cada línea de salida puede devolver una métrica.split_byexplica cómo dividir cada línea en diferentes campos. En este caso, utilizamos la expresión regular\s+, que indica a Flex que cualquier secuencia de uno o más espacios en blanco es un separador.row_startespecifica que los datos comienzan justo después de la primera fila (que es 0).set_headerespecifica, en orden, un nombre coincidente para cada valor del arreglo mencionado anteriormente.perc_to_decimal: trueindica convertir cualquier cadena de porcentaje en un valor decimal, eliminando el símbolo%final.
Una vez que haya creado la configuración de Flex, el agente de infraestructura detecta automáticamente la nueva configuración y comienza a recopilar datos. Para verificar que su nueva integración esté funcionando, ejecute esta consulta:
FROM FileSystemSample SELECT mountedOn, fs, usedBytes, capacityBytes, usedBytesLa consulta debería devolver una tabla similar a esta:

Vaya a one.newrelic.com > All capabilities > Query your data, agregue su consulta en el constructor de consultas y haga clic en Run.
Cómo agregar más integraciones Flex
Puede agregar más integraciones de Flex agregando la configuración en el archivo ìntegrations.d. Las configuraciones de Flex independientes comienzan con el nombre de la integración y puede probarlas invocando Flex desde la línea de comandos:
$sudo /var/db/newrelic-infra/newrelic-integrations/bin/nri-flex --verbose --pretty --config_file ./myconfig.ymlPor ejemplo, si desea agregar esta integración:
name: linuxOpenFDapis: - name: linuxOpenFD commands: - run: cat /proc/sys/fs/file-nr | awk '{print $1-$2,$3}' split: horizontal set_header: [openFD,maxFD] regex_match: true split_by: (\d+)\s+(.*)Debe abrir el archivo ìntegrations.d y agregarlo así:
integrations: - name: nri-flex config: name: linuxFileSystemIntegration apis: - name: FileSystem commands: - run: 'df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4' split: horizontal split_by: \s+ row_start: 1 set_header: [fs,fsType,capacityBytes,usedBytes,availableBytes,usedPerc,mountedOn] perc_to_decimal: true - name: linuxOpenFD commands: - run: cat /proc/sys/fs/file-nr | awk '{print $1-$2,$3}' split: horizontal set_header: [openFD,maxFD] regex_match: true split_by: (\d+)\s+(.*)Si necesita agregar varias configuraciones de Flex al archivo ìntegrations.d, siga este patrón:
integrations: - name: nri-flex config: name: flexName_1 # Flex config goes here - name: nri-flex config: name: flexName_2 # Flex config goes here - name: nri-flex config: name: flexName_3 # Flex config goes herePara minimizar los problemas de indentación, puede vincular archivos de configuración Flex independientes usando la directiva config_template_path:
integrations: - name: nri-flex config_template_path: /path/to/flex/integration.ymlPuede encontrar muchos ejemplos de integraciones personalizadas en el repositorio de Flex.
Flex y Kubernetes
Hay 3 imágenes de contenedor que puede usar, dependiendo de cómo desee configurar Flex en Kubernetes:
Para ejecutar Flex solo para monitorear servicios que se ejecutan en Kubernetes, use la imagen de contenedor
newrelic/infrastructure. Esta imagen solo contiene el agente de infraestructura y las integraciones de Docker y Flex. Con esta opción, no podrá realizar la detección de servicios ni utilizar otras integraciones de New Relic.Para ejecutar Flex junto con otras integraciones de New Relic, utilice la imagen de contenedor
newrelic/infrastructure-bundle. Esto agrega todas las otras integraciones de New Relic.Si también desea monitorear su clúster de Kubernetes, use la imagen de contenedor
newrelic/infrastructure-k8s. Esta imagen agrega todas las integraciones, incluida la integración de Kubernetes.
Importante
Si está ejecutando servicios en Kubernetes, recomendamos que use las imágenes de contenedor oficiales de New Relic. Consulte Introducción a la integración de Kubernetes para obtener más información.
Configurar Flex en Kubernetes
Después de instalar la integración de Kubernetes, tendrá el agente de infraestructura ejecutándose en su clúster, así como estos 2 configMap:
nri-default-integration-cfg: Este es unconfigMaputilizado para habilitar la integración de Kubernetes de New Relic. Puede eliminarla si no desea utilizar esta integración. Si instaló Kubernetes con el comando Helm, el valorintegrations_configdebe completarse. Consulte el repositorio de charts de Helm de New Relic para obtener más información.nri-integration-cfg-example: Este es unconfigMaputilizado para habilitar Flex y otras integraciones de New Relic.
Para habilitar Flex, cree una sección de datos en el configMap y agregue la configuración de integración del agente de infraestructura bajo esta nueva sección:
apiVersion: v1kind: ConfigMapmetadata: name: nri-integration-cfg-example namespace: defaultdata: nri-flex.yml: | integrations: - name: nri-flex config: name: example apis: - event_type: ExampleSample url: https://my-host:8443/admin/metrics.jsonConfiguración de muestra
¿Busca ejemplos diferentes? Aquí hay algunos ejemplos de configuración para ayudarlo a comenzar con varias fuentes de datos:
Bases de datos:
APIs de terceros:
Utilidades de línea de comandos:
Resolución de problemas
Si encuentra un problema con la configuración de Flex, puede seguir estos pasos básicos de resolución de problemas:
Pruebe la configuración sin el agente de infraestructura: puede probar manualmente un archivo de configuración para asegurarse de que la salida cumpla con sus expectativas ejecutando un comando como este. Recuerde reemplazar
<FILE_NAME>con el nombre de su archivo de configuración:bash$# Linux default path: /opt/newrelic-infra/newrelic-integrations/bin/$./nri-flex -verbose -pretty -config_path /etc/newrelic-infra/integrations.d/<FILE_NAME>$$# Windows default path: C:\Program Files\New Relic\newrelic-infra\newrelic-integrations$.\nri-flex.exe -verbose -pretty -config_path "C:\Program Files\New Relic\newrelic-infra\integrations.d\<FILE_NAME>"Esto le dará una salida que muestra el registro de depuración y la carga útil JSON que se integrará con el agente de infraestructura. Asegúrese de que Flex esté obteniendo y formateando su telemetría como se espera antes de continuar con el resto de los pasos de resolución de problemas. Obtenga más información sobre cómo probar las configuraciones de Flex en el repositorio de GitHub.
Pruebe con el agente de infraestructura en modo
dry-run: Use el indicadordry-runen el agente de infraestructura para probar su configuración de Flex. Verifica que la salida contenga la telemetría que esperas reportar a New Relic.Depura la integración con el agente de infraestructura: Asegúrate de que el agente reporte los datos de telemetría como se espera habilitando los logs de depuración en el agente de infraestructura.