• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Créez votre propre intégration : New Relic Flex

New Relic fournit une intégration et des démarrages rapides pour de nombreux services et frameworks populaires. Si vous utilisez déjà New Relic et que vous souhaitez signaler des données d'un service pour lequel nous n'avons pas d'intégration, vous pouvez créer votre propre intégration en suivant ces options :

  • Avec , vous pouvez utiliser notre outil léger Flex (recommandé) ou créer une intégration complète sur hôte en utilisant notre SDK d'intégration.
  • Pour les solutions monitoring de télémétrie (métriques, trace), utilisez nos SDK de télémétrie.
  • Créez une application New Relic personnalisée qui utilise votre propre fonctionnalité UI JavaScript.

Qu'est-ce que New Relic Flex ?

Flex est une intégration New Relic tout-en-un, indépendante des applications, qui vous permet de collecter des événements et des métriques à partir d'une large gamme de services. Il est fourni avec notre agent d'infrastructure. Vous pouvez instrumenter n'importe quelle application qui expose des métriques via un protocole standard (HTTP, fichier, shell) dans un format standard (par exemple, JSON ou texte brut) : vous créez un fichier configuration YAML, démarrez l'agent infrastructure et vos données sont signalées à New Relic.

Après avoir collecté et nettoyé les données, vous pouvez ensuite interroger les données Flex dans New Relic, créer des graphiques personnalisés et utiliser ces données dans votre dashboard.

Vérifiez la compatibilité et les exigences

Assurez-vous que votre système répond à ces exigences :

  1. Créez un compte gratuit si vous ne l'avez pas déjà fait. C'est gratuit !

  2. Le compte New Relic est compatible avec ces systèmes d'exploitation et plateformes :

    • Kubernetes
    • Linux
    • macOS
    • Windows
  3. Consultez notre documentation sur les exigences relatives à l'agent infrastructure pour vous assurer que votre système et toute intégration sur hôte que vous configurez répondent aux exigences.

  4. Flex est fourni avec notre agent d'infrastructure version 1.10.7 ou supérieure fonctionnant sous Linux, Windows ou Kubernetes.

Consultez l'identification des versions d'agent obsolètes à partir du document de UI pour vérifier votre version ou mettez à jour le document de l'agent infrastructure si vous devez le mettre à jour.

installation

Suivez ces étapes pour installer New Relic Flex :

Installer l' agent d'infrastructure

À partir de la version 1.10.7 de l'agent New Relic Infrastructure, Flex est fourni avec l'agent. Pour installer l'agent d'infrastructure, voir :

  • Installer l'agent d'infrastructure pour Linux

  • Installer l'agent d'infrastructure pour Windows

    Conseil

    L'agent doit s'exécuter en mode root/administrateur . Vous pouvez démarrer, arrêter et redémarrer l’agent d’infrastructure à partir de la ligne de commande.

Vérifiez que Flex est opérationnel

Suivez ces étapes :

  1. Accédez au dossier d’intégration de l’agent d’infrastructure :

    • Pour Linux : /etc/newrelic-infra/integrations.d
    • Pour Windows : C:\Program Files\New Relic\newrelic-infra\integrations.d\
  2. Créez le fichier de configuration d'intégration. Par exemple, integrations.yml, s'il n'existe pas.

  3. Ajoutez la configuration Flex au fichier :

    integrations:
    - name: nri-flex
    config:
    name: just-testing

    Si vous avez déjà une section integrations dans le fichier, ajoutez-y nri-flex .

  4. Après quelques minutes, accédez à one.newrelic.com > All capabilities > Query your data et exécutez cette requête :

    FROM flexStatusSample
    SELECT *
    LIMIT 1

    La requête devrait donner un tableau similaire à celui-ci :

    Flex status table

    Accédez à one.newrelic.com > All capabilities > Query your data, ajoutez votre requête dans le générateur de requêtes et cliquez sur Run.

    Conseil

    Si vous n'obtenez rien, assurez-vous que votre fichier de configuration YAML est bien indenté et que les niveaux d'indentation n'utilisent pas de tabulations au lieu d'espaces. Vous pouvez utiliser un validateur YAML, tel que YAML Lint

Votre première intégration Flex

Cet exemple montre comment collecter des métriques de disque à partir d'un système de fichiers non pris en charge nativement par New Relic à l'aide de la commande df sous Linux.

L'objectif est de traiter la sortie de la commande df , en affichant le système de fichiers et les blocs de 1 octet, tout en excluant le système de fichiers déjà pris en charge par l'agent. Si les systèmes de fichiers non pris en charge ne sont pas montés, supprimez les arguments -x.

$ df -PT -B1 -x tmpfs -x xfs -x vxfs -x btrfs -x ext -x ext2 -x ext3 -x ext4
Filesystem Type 1-blocks Used Available Capacity Mounted on
devtmpfs devtmpfs 246296576 0 246296576 0% /dev
go_src vboxsf 499963170816 361339486208 138623684608 73% /go/src

Vous devez convertir la sortie de texte tabulaire ci-dessus en un ensemble d’exemples JSON équivalents avec le format suivant. Notez que l'agent décore chaque échantillon avec des champs supplémentaires :

{
"event": {
"event_type": "FileSystemSample",
"fs": "go_src",
"fsType": "vboxsf",
"capacityBytes": 499963170816,
"usedBytes": 361345331200,
"availableBytes": 138617839616,
"usedPerc": 73,
"mountedOn": "/go/src"
}
}

Tout d’abord, vous devez indiquer à Flex comment effectuer la transformation du texte du tableau ci-dessus en JSON en spécifiant les éléments suivants :

  • Nom de la métrique : FileSystem
  • Quelle commande exécuter : df -PT -B1 ...
  • Comment diviser la table de sortie de df
  • Comment attribuer les valeurs aux noms métriques donnés

Ceci est réalisé en plaçant le contenu ci-dessous dans le fichier de configuration 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: true
  • apis est un ensemble d'entrées pour chaque échantillon. Chaque entrée définit un nom pour l'échantillon, ainsi que les commandes et procédures pour obtenir et traiter l'échantillon. La première entrée de l'exemple est nommée FileSystem, qui est utilisée pour nommer l'événement FileSystemSample .

  • commands spécifie comment obtenir les informations à partir des applications CLI :

    • run: 'df -PT -B1... spécifie la commande à exécuter.
    • split: horizontal indique que chaque ligne de sortie peut renvoyer une métrique.
    • split_by explique comment diviser chaque ligne en différents champs. Dans ce cas, nous utilisons les expressions régulières \s+, qui indiquent Flex que toute séquence d'un ou plusieurs espaces blancs est un séparateur.
    • row_start spécifie que les données commencent juste après la première ligne (qui est 0).
    • set_header spécifie, dans l'ordre, un nom correspondant pour chaque valeur de l'éventail susmentionné.
    • perc_to_decimal: true indique de convertir n'importe quelle chaîne de pourcentage en une valeur décimale, en supprimant le symbole % de fin.

Une fois la configuration Flex créée, l'agent d'infrastructure détecte automatiquement la nouvelle configuration et commence à collecter des données. Pour vérifier que votre nouvelle intégration fonctionne, exécutez cette requête :

FROM FileSystemSample
SELECT mountedOn, fs, usedBytes, capacityBytes, usedBytes

La requête devrait donner un tableau similaire à celui-ci :

Flex status table

Accédez à one.newrelic.com > All capabilities > Query your data, ajoutez votre requête dans le générateur de requêtes et cliquez sur Run.

Comment ajouter plus d'intégration Flex

Vous pouvez ajouter davantage d'intégration Flex en ajoutant la configuration dans le fichier ìntegrations.d. La configuration autonome Flex commence par le nom de l'intégration et vous pouvez les tester en invoquant Flex depuis la ligne de commande :

bash
$
sudo /var/db/newrelic-infra/newrelic-integrations/bin/nri-flex --verbose --pretty --config_file ./myconfig.yml

Par exemple, si vous souhaitez ajouter cette intégration :

name: linuxOpenFD
apis:
- 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+(.*)

Vous devez ouvrir le fichier ìntegrations.d et l'ajouter comme ceci :

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 vous devez ajouter plusieurs Flex configuration au ìntegrations.d fichier, suivez ce modèle :

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 here

Pour minimiser les problèmes d'indentation, vous pouvez créer un lien vers des fichiers de configuration Flex autonomes à l'aide de la directive config_template_path :

integrations:
- name: nri-flex
config_template_path: /path/to/flex/integration.yml

Vous pouvez trouver de nombreux exemples d'intégration personnalisée dans le référentielFlex .

Flex et Kubernetes

Il existe 3 images de conteneur que vous pouvez utiliser, selon la manière dont vous souhaitez configurer Flex dans Kubernetes :

  • Pour exécuter Flex uniquement sur les services de monitoring exécutés dans Kubernetes, utilisez l'image conteneur newrelic/infrastructure. Cette image contient uniquement l'agent infrastructure et l'intégration Docker et Flex . Avec cette option, vous ne pourrez pas effectuer de découverte de service ni utiliser une autre intégration New Relic.

  • Pour exécuter Flex avec d’autres intégrations New Relic, utilisez l’image conteneur newrelic/infrastructure-bundle. Cela ajoute toutes les autres intégrations de New Relic.

  • Si vous souhaitez également monitorer votre cluster Kubernetes, utilisez l'image conteneur newrelic/infrastructure-k8s. Cette image ajoute toute l'intégration, y compris l'intégration Kubernetes .

Important

Si vous exécutez des services dans Kubernetes, nous vous recommandons d'utiliser les images de conteneur officielles de New Relic. Consultez Introduction à l’intégration de Kubernetes pour plus d’informations.

Configurer Flex dans Kubernetes

Après avoir installé l'intégration Kubernetes, l'agent d'infrastructure sera exécuté dans votre cluster ainsi que ces 2 configMap:

  • nri-default-integration-cfg:Il s'agit d'un configMap utilisé pour activer l'intégration New Relic Kubernetes. Vous pouvez le supprimer si vous ne souhaitez pas utiliser cette intégration. Si vous avez installé Kubernetes avec la commande Helm, la valeur integrations_config doit être renseignée. Consultez le référentiel de cartes Helm de New Relic pour plus d'informations.

  • nri-integration-cfg-example: Il s'agit d'un configMap utilisé pour activer Flex et d'autres intégrations New Relic.

Pour activer Flex, créez une section de données dans le configMap et ajoutez la configuration d'intégration de l'agent d'infrastructure sous cette nouvelle section :

apiVersion: v1
kind: ConfigMap
metadata:
name: nri-integration-cfg-example
namespace: default
data:
nri-flex.yml: |
integrations:
- name: nri-flex
config:
name: example
apis:
- event_type: ExampleSample
url: https://my-host:8443/admin/metrics.json

Exemple de configuration

Vous recherchez des échantillons différents ? Voici quelques exemples de configuration pour vous aider à démarrer avec différentes sources de données :

Dépannage

Si vous rencontrez un problème avec la configuration Flex, vous pouvez suivre ces étapes de dépannage de base :

  • Testez la configuration sans l’agent d’infrastructure : vous pouvez tester manuellement un fichier de configuration pour vous assurer que la sortie répond à vos attentes en exécutant une commande comme celle-ci. N'oubliez pas de remplacer <FILE_NAME> par le nom de votre fichier de configuration :

    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>"

    Cela vous donnera une sortie montrant le logging de débogage et la charge utile JSON qui sera intégrée à l'agent d'infrastructure. Assurez-vous que Flex obtient et formate votre télémétrie comme prévu avant de continuer avec le reste des étapes de dépannage. Apprenez-en plus sur les tests de configuration Flex à partir du référentiel GitHub.

  • Tester avec l'agent d'infrastructure en mode dry-run : utilisez l'indicateurdry-run dans l'agent d'infrastructure pour tester votre configuration Flex. Vérifiez que la sortie contient la télémétrie que vous prévoyez de signaler à New Relic.

  • Déboguer l'intégration avec l'agent infrastructure : Assurez-vous que l'agent signale les données télémétriques comme prévu en activant le log de débogage dans l'agent infrastructure .

Conseil

Vous pouvez récupérer le binaire autonome à partir d'ici. Consultez le fichier README pour en savoir plus sur Flex

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.