• /
  • 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

Guide d'utilisation de l'API d'agent Go

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

StartTransaction()

Arrêtez de chronométrer une transaction

txn.End()

Empêcher une transaction d'être signalée à New Relic

Ignore()

Utilisez le package de bibliothèque HTTP standard pour monitorer les transactions

Enveloppement de requête HTTP

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 voulez...

Utilisez ceci...

Changer le nom d'une transaction

SetName()

Ajoutez des métadonnées (telles que le nom de compte ou le niveau d'abonnement de vos clients) à vos transactions

AddAttribute()

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)

StartExternalSegment()

Connecter l'activité à une autre application instrumentée par un agent de New Relic

Traçage multi-applications

Important

le 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é.

Tracing 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

NoticeError()

Signaler une erreur attendue que l'agent ne signale pas automatiquement et ne déclenche pas d'alertes

NoticeExpectedError()

Empêcher l'agent de signaler une erreur

ErrorCollector.IgnoreStatusCodes()

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

Error

L'objet d'erreur Go remarqué. Cela sera nul pour les erreurs HTTP et les paniques.

TimeOccured

L'heure. Heure à laquelle l'erreur a été remarquée par l'agent.

Message

Le message d'erreur.

Class

La classe d'erreur New Relic. Si une erreur implémente errorClasser, sa valeur sera dérivée de celle-ci. Dans le cas contraire, cela sera dérivé de la manière dont l’erreur a été collectée par l’agent. Pour les erreurs HTTP, ce sera le numéro d'erreur. Les paniques seront la valeur constante publique newrelic.PanicErrorClass. Sinon, la classe d’erreur sera extraite de l’objet d’erreur racine en appelant reflect.TypeOf(). La classe d’erreur racine la plus courante est *errors.errorString.

Expected

Un booléen qui est true lorsque l'erreur était attendue.

TransactionName

Le nom formaté d'une transaction tel qu'il apparaîtrait dans l'UI de New Relic.

GetTransactionUserAttributes(attribute string)

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 interface{} et d'un booléen qui est true si la clé a été trouvée dans la carte d'attributs.

GetErrorAttribute(attribute string)

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 interface{} et d'un booléen qui est true si la clé a été trouvée dans la carte d'attributs d'erreur.

GetStackTraceFrames()

Une méthode qui renvoie une tranche de StackTraceFrame objets contenant un maximum de 100 lignes trace d'appels pertinentes pour une erreur. Notez que l’appel de cette méthode peut être coûteux car la tranche doit être allouée et remplie. Il est recommandé d'appeler cette méthode uniquement lorsque cela est nécessaire pour optimiser les performances.

GetRequestURI()

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.

GetRequestMethod()

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.

GetHttpResponseCode()

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.

GetUserID()

Une méthode qui renvoie le UserID qui a été appliqué à cette erreur et à cette transaction. Si aucun UserID n’a été défini, une chaîne vide sera renvoyée.

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

RecordCustomEvent()

taggez votre événement avec des métadonnées pour les filtrer et les faceter

AddAttribute()

Générer des rapports sur les performances personnalisées pour une période donnée

RecordCustomMetric()

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

BrowserTimingHeader()

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
Droits d'auteur © 2025 New Relic Inc.

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