Aperçu
Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !
Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos politiques de pré-sortie.
Go est un langage compilé avec un environnement d'exécution opaque, ce qui le rend incapable de prendre en charge l'instrumentation automatique comme d'autres langages. Pour cette raison, l'agent Go de New Relic est conçu comme un SDK. Étant donné que l'agent Go est un SDK, sa configuration nécessite plus de travail manuel que celle de l'agent pour les langages prenant en charge instrumentation automatique.
Afin de faciliter l'instrumentation, l’équipe agent Go a créé l’outil d'instrumentation facile Go qui est actuellement en version préliminaire. Cet outil effectue la majeure partie du travail à votre place en suggérant des modifications à votre source de code qui instrumente votre application avec l'agent Go de New Relic.
Pour commencer, regardez cette vidéo de quatre minutes ou passez directement à Comment ça marche.
Avis de prévisualisation
Comment ça marche
Cet outil n'interfère pas avec le fonctionnement de votre application et n'apporte aucune modification directe à votre code. Voici ce qui se passe :
- Il analyse votre code et suggère des modifications qui permettent à l'agent Go de capturer des données télémétriques.
- Vous examinez les modifications dans le fichier
.diff
et décidez quelles modifications ajouter à votre code source.
Dans le cadre de l'analyse, cet outil peut invoquer go get
ou d'autres commandes de la chaîne d'outils du langage Go qui peuvent modifier votre fichier go.mod
, mais pas votre code source réel.
Important
Cet outil ne peut pas détecter si vous disposez déjà d'une instrumentation New Relic. Veuillez utiliser cet outil uniquement pour des applications sans aucune instrumentation.
Qu'est-ce qui est instrumenté ?
La portée de ce que cet outil peut instrumenter dans votre application est limitée à ces actions :
- Capture des erreurs dans toute fonction encapsulée ou tracée par une transaction
- Suivi des fonctions définies localement qui sont invoquées dans la méthode
main()
de l'application avec une transaction - Suivi des fonctions asynchrones et des littéraux de fonction avec un segment asynchrone
- Ajout d'un middleware à la bibliothèque prise en charge pour le traçage
- Injection de traçage distribué dans le trafic externe
Bibliothèque supportée
- bibliothèque standard
- réseau/http
- Gin
- gRPC
installation
Avant de commencer les étapes d'installation ci-dessous, assurez-vous que vous disposez d'une version de Go installée qui se trouve dans la fenêtre de support du cycle de vie actuel du langage de programmation Go.
Installer l'instrumentation facile de Go :
$go install github.com/newrelic/go-easy-instrumentation@latest
Générer des suggestions d'instrumentation
Cet outil fonctionne mieux avec Git. Nous vous recommandons de vérifier que votre application se trouve sur une branche sans aucune modification non préparée avant d'appliquer l'une des modifications générées. Après avoir vérifié cela, suivez ces étapes pour générer et appliquer les modifications qui installent l'agent Go de New Relic dans une application:
- Exécutez la commande CLI suivante pour créer un fichier nommé
new-relic-instrumentation.diff
dans votre répertoire de travail :bash$go-easy-instrumentation instrument ../my-application/ - Ouvrez le fichier
.diff
et vérifiez ou corrigez le contenu. - Lorsque vous êtes satisfait des suggestions d’instrumentation, enregistrez le fichier, puis appliquez les modifications :bash$mv new-relic-instrumentation.diff ../my-application/$cd ../my-application$git apply new-relic-instrumentation.diff
Une fois les modifications appliquées, l'application devrait s'exécuter avec l'agent Go de New Relic installé. Si l'installation de l'agent ne fonctionne pas comme vous le souhaitez, vous pouvez facilement la récupérer en utilisant les commandes Git courantes. Par exemple, vous pouvez essayer l’une des solutions suivantes :
- Rangez les modifications avec
git stash
- Rétablir le code à un commit précédent
Quelle est la prochaine étape ?
Si vous avez des suggestions ou rencontrez des problèmes, veuillez créer un problème Github.