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 de l'agent Go a créé l'outil d'instrumentation facile Go. Cet outil effectue la majeure partie du travail pour vous en suggérant des modifications à votre code source qui instrumentent votre application avec l'agent Go New Relic.
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
.diffet 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.
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
- Détectez toute instrumentation New Relic existante et suggérez des modifications à votre code source basées sur le code New Relic déjà existant
- 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 tracing
- Injection de tracing distribué dans le trafic externe
Bibliothèque supportée
- bibliothèque standard
- réseau/http
- Gin
- gRPC
- gochi
- MySQL
- slog
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@latestgénération de suggestions
L'outil d'instrumentation facile Go fournit des suggestions pour instrumenter votre application Go. Examinez attentivement le fichier diff généré pour vérifier l'exactitude de l'instrumentation.
Générer des suggestions d'instrumentation
Cet outil fonctionne le mieux avec Git. Nous vous recommandons de vérifier que votre application est sur une branche sans modifications non indexées avant d'y appliquer l'une des modifications suggérées. Après avoir vérifié cela, suivez ces étapes pour générer, examiner et appliquer les modifications qui installent l'agent New Relic Go dans une application :
- Exécutez la commande CLI suivante pour créer un fichier nommé
new-relic-instrumentation.diffdans votre répertoire de travail :bash$go-easy-instrumentation instrument ../my-application/ - Ouvrez le fichier
.diffet 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.