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 :
Créez un compte gratuit si vous ne l'avez pas déjà fait. C'est gratuit !
Le compte New Relic est compatible avec ces systèmes d'exploitation et plateformes :
- Kubernetes
- Linux
- macOS
- Windows
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.
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 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 :
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\
- Pour Linux :
Créez le fichier de configuration d'intégration. Par exemple,
integrations.yml
, s'il n'existe pas.Ajoutez la configuration Flex au fichier :
integrations:- name: nri-flexconfig:name: just-testingSi vous avez déjà une section
integrations
dans le fichier, ajoutez-ynri-flex
.Après quelques minutes, accédez à one.newrelic.com > All capabilities > Query your data et exécutez cette requête :
FROM flexStatusSampleSELECT *LIMIT 1La requête devrait donner un tableau similaire à celui-ci :
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 ext4Filesystem Type 1-blocks Used Available Capacity Mounted ondevtmpfs devtmpfs 246296576 0 246296576 0% /devgo_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éeFileSystem
, qui est utilisée pour nommer l'événementFileSystemSample
.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 :

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 :
$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: 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+(.*)
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'unconfigMap
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 valeurintegrations_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'unconfigMap
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: 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.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 :
Base de données:
API tierces:
Utilitaires de ligne de commande:
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 .