L'agent Go de New Relic monitore votre application en langage Go et microservices pour vous aider à identifier et à résoudre les problèmes de performances. L'API d'agent Go est l'une des nombreuses New Relic API disponibles.
Important
Étant donné que l'application Go s'exécute à partir d'un fichier binaire natif compilé, vous devez instrumenter manuellement votre code pour monitorer les transactions de votre application Go en y ajoutant des méthodes New Relic .
Monitorer les transactions
Avant d'instrumenter manuellement votre code pour monitorer les transactions, assurez-vous que vous respectez la compatibilité et les exigences et que vous utilisez la dernière version de l'agent Go.
Si vous voulez... | Utilisez cette méthode... |
---|---|
Commencer à chronométrer une transaction | |
Arrêtez de chronométrer une transaction | |
Empêcher une transaction d'être signalée à New Relic | |
Utilisez le package de bibliothèque HTTP standard pour monitorer les transactions |
Méthodes temporelles spécifiques utilisant des segments
Si une transaction est déjà visible dans New Relic, mais que vous ne disposez pas de suffisamment de données sur une méthode particulière qui a été appelée au cours de cette transaction, vous pouvez créer des segments. Par exemple, si vous souhaitez chronométrer une méthode dotée d’une logique complexe, vous pouvez créer un segment pour chacune des méthodes de la transaction.
Pour instrumenter une méthode dans une transaction existante, créez des segments pour les éléments suivants :
Si le travail se déroule dans une goroutine différente de celle où la transaction a démarré, vous devez utiliser l'API NewGoroutine()
.
Améliorer les métadonnées d'une transaction
Vous pouvez gérer les métadonnées que New Relic signale pour les transactions. Voici quelques exemples de situations dans lesquelles vous pourriez souhaiter un niveau de détail différent pour vos transactions :
- Si vous rencontrez un problème de regroupement métrique, modifiez les noms par défaut de vos transactions pour les rendre plus identifiables.
- Si vous souhaitez créer un dashboard pour vos transactions, ajoutez un attribut personnalisé.
Si vous voulez... | Utilisez ceci... | |
---|---|---|
Changer le nom d'une transaction | ||
Ajoutez des métadonnées (telles que le nom de compte ou le niveau d'abonnement de vos clients) à vos transactions |
Instrumenter les appels à des services externes
Utilisez ces méthodes pour collecter des données sur les connexions de votre application à d’autres applications ou bases de données :
Si vous voulez... | Utilisez ceci... |
---|---|
Chronométrer un appel vers une ressource externe (comme un service externe, un serveur de base de données ou un fichier d'attente des messages) | |
Connecter l'activité à une autre application instrumentée par un agent de New Relic | Importantle traçage inter-applicationa été abandonné au profit du traçage distribué et sera supprimé dans une future version agent . |
Visualisez le chemin emprunté par une requête lorsqu'elle traverse un système distribué. |
Collecte ou erreur ignorée
L'agent détecte automatiquement les erreurs. Si vous souhaitez modifier la manière dont l'agent Go signale les erreurs à New Relic, modifiez la configurationdu collecteur d'erreurs.
Si vous voulez... | Utilisez ceci... |
---|---|
Signaler une erreur que l'agent ne signale pas automatiquement | |
Signaler une erreur attendue que l'agent ne signale pas automatiquement et ne déclenche pas d'alertes | |
Empêcher l'agent de signaler une erreur |
Empreintes d'erreur : appliquer dynamiquement un groupe d'erreurs à chaque erreur constatée
Une fonction de rappel peut être fournie à l'agent pour appliquer dynamiquement un groupe d'erreurs souhaité à chaque erreur détectée. Utilisez l'option de configuration de l'agent Go newrelic.ConfigSetErrorGroupCallbackFunction
pour fournir à l'agent un rappel.
Cet appel d'API prend une méthode rappel (doit être de type newrelic.ErrorGroupCallback
) comme seul argument. Voici un exemple :
myCallbackFunc := CallbackFunc(errorInfo newrelic.ErrorInfo) string { if errorInfo.Message == "example error message" { return "example group 1" } if errorInfo.GetHttpResponseCode() == "403" && errorInfo.GetUserID() == "user 2" { return "user 2 payment issue" }
// use default error grouping behavior return ""}
app, err := newrelic.NewApplication( newrelic.ConfigSetErrorGroupCallbackFunction(myCallbackFunc))
Dans l'exemple illustré, une procédure de rappel est créée qui acceptera un objet de type newrelic.ErrorInfo
et renverra une chaîne représentant le groupe d'erreurs. Notez que lorsque votre fonction ErrorGroupCallback
renvoie une chaîne non vide, elle remplacera le comportement de regroupement par défaut d'une erreur détectée et appliquera la logique de regroupement côté serveur.
La fonction de rappel est censée recevoir exactement un argument d'entrée, un objet newrelic.ErrorInfo
. L'objet contient les éléments suivants :
Key | Value |
---|---|
| L'objet d'erreur Go remarqué. Cela sera nul pour les erreurs HTTP et les paniques. |
| L'heure. Heure à laquelle l'erreur a été remarquée par l'agent. |
| Le message d'erreur. |
| La classe d'erreur New Relic. Si une erreur implémente |
| Un booléen qui est |
| Le nom formaté d'une transaction tel qu'il apparaîtrait dans l'UI de New Relic. |
| Une méthode qui prend un nom d'attribut comme entrée, puis recherche et renvoie un attribut d'utilisateur de transaction sous la forme d'un |
| Une méthode qui prend un nom d'attribut comme entrée, puis recherche et renvoie un attribut d'utilisateur d'erreur sous la forme d'un |
| Une méthode qui renvoie une tranche de |
| Une méthode qui renvoie l'URI de la requête HTTP effectuée pendant la transaction parente de l'erreur actuelle. Si aucune requête Web n'a eu lieu, une chaîne vide sera renvoyée. |
| Une méthode qui renvoie la méthode HTTP de la requête Web qui s'est produite pendant la transaction parent de cette erreur. Si aucune requête Web n'a eu lieu, une chaîne vide sera renvoyée. |
| Une méthode qui renvoie le code de réponse HTTP qui a été renvoyé lors de la requête Web qui s'est produite pendant la transaction parent de cette erreur. Si aucune requête Web n'a eu lieu, une chaîne vide sera renvoyée. |
| Une méthode qui renvoie le |
suivi utilisateur : associer un identifiant utilisateur à chaque transaction et erreur
Les transactions et les erreurs peuvent être associées à un ID utilisateur si celui-ci est connu de New Relic Go agent. Utilisez l'API d'agent Go txn.SetUserID("example user ID")
pour fournir à l'agent un ID utilisateur.
Cet appel d'API nécessite un seul argument d'une chaîne représentant un identifiant unique pour un utilisateur final. Cette chaîne peut être un UUID, un identifiant de base de données ou similaire. L'appel d'API doit être effectué au moins une fois par transaction pour informer l'agent New Relic Go de l'ID d'utilisateur auquel associer la transaction. Ensuite, lorsque l’agent remarque des erreurs pendant la durée de vie de la transaction, les erreurs porteront un attribut d’agent enduser.id
qui contient la valeur de l’ID utilisateur.
Étant donné que l’API est destinée à être appelée chaque fois qu’un nouvel ID utilisateur entre dans le champ d’application, elle sera idéalement appelée via un middleware prenant en compte la création de session utilisateur. Une fois que l'agent New Relic Go a pris connaissance de l'ID de l'utilisateur, il fournira l'attribut agent enduser.id
sur la transaction en cours ainsi que sur toutes les erreurs constatées pendant la durée de vie de la transaction en cours.
Envoyez des données personnalisées depuis votre application
Pour enregistrer des données personnalisées avec l'agent Go, vous pouvez utiliser l’une des méthodes suivantes :
Si vous voulez... | Utilisez ceci... |
---|---|
Envoyez des données sur un événement afin de pouvoir l'analyser dans New Relic | |
taggez votre événement avec des métadonnées pour les filtrer et les faceter | |
Générer des rapports sur les performances personnalisées pour une période donnée |
Voir le log associé
Pour voir le log directement dans le contexte des erreurs et des traces de votre application, utilisez ces appels d'API pour annoter votre log :
Pour plus d'informations sur la corrélation des données log avec d'autres données télémétriques, consultez notre documentation sur les logs en contexte .
performances du moniteur de navigateur avec monitoring des navigateurs
Pour monitorer les performances du navigateur pour votre application à l'aide et de l'agent Go, vous pouvez utiliser l'une des méthodes suivantes :
Si vous voulez... | Utilisez ceci... |
---|---|
Installez l’agent de navigateurs | Utilisez la méthode copier/coller du navigateur |
Ajoutez le code JavaScript monitoring des navigateurs directement aux pages HTML |
Modifier les paramètres configuration de l'agent Go
Pour gérer certains aspects de New Relic monitoring, vous pouvez modifier les configuration paramètres de votre agent Go; par exemple :
- Activation du mode haute sécurité
- Ajout d'étiquettes personnalisées pour le filtrage et le tri
- Gérer les informations rapportées