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

Instrumenter les segments Go

Avec New Relic for Go, vous pouvez monitorer les segments spécifiques d'une transaction dans une application Go pour obtenir plus de détails sur des fonctions ou des blocs de code spécifiques.

Mesurer le temps pour les fonctions et les blocs de code

Segments sont les parties spécifiques d'une transaction dans une application. Grâce aux segments instrumentés, vous pouvez mesurer le temps pris par les fonctions et les blocs de code, tels que les appels externes, les appels datastore, l'ajout de messages aux files d'attente et les tâches en arrière-plan.

Example: Vous avez une transaction associée à un processus de paiement, qui traite à la fois les informations d'expédition et les informations de carte de crédit. Vous pouvez instrumenter votre application pour diviser cette transaction en deux parties : un segment pour l'expédition et un segment pour le paiement.

Segments de blocs de code

Une fois que vous avez instrumenté une transaction, vous êtes prêt à instrumenter un ou plusieurs segments de cette transaction.

Pour instrumenter un bloc de code arbitraire en tant que segment, utilisez le modèle suivant et incluez txn comme nom de variable défini pour la transaction :

segment := newrelic.Segment{}
segment.Name = "mySegmentName"
segment.StartTime = txn.StartSegmentNow()
// ... code you want to time here ...
segment.End()

StartSegment est une aide pratique. Il crée un segment et le démarre :

segment := txn.StartSegment("mySegmentName")
// ... code you want to time here ...
segment.End()

Segments de fonction

instrumenter une fonction en tant que segment est essentiellement la même chose qu'instrumenter un bloc de code arbitraire en tant que segment. La principale différence est que, comme une fonction a une fin discrète, vous pouvez utiliser l'instruction defer de Go.

Pour instrumenter une fonction en tant que segment, ajoutez le code suivant au début de la fonction et incluez txn comme nom de variable défini pour la transaction :

defer txn.StartSegment("mySegmentName").End()

Segments de nidification

Les segments peuvent être imbriqués. Le segment terminé doit être le segment le plus récemment démarré.

Voici un exemple d'un segment commençant et se terminant à l'intérieur d'un autre segment :

s1 := txn.StartSegment("outerSegment")
s2 := txn.StartSegment("innerSegment")
// s2 must end before s1
s2.End()
s1.End()

Un segment de valeur zéro peut être terminé en toute sécurité. Par conséquent, le code suivant est sûr même si la condition échoue :

var s newrelic.Segment
if recordSegment {
s.StartTime = txn.StartSegmentNow()
}
// ... code you wish to time here ...
s.End()

segments de la banque de données

Vous pouvez instrumenter les application datastore appels Go. les segments de banque de données apparaissent dans la table APM Transactions breakdown et dans l'onglet Databases de la pageTransactions dans New Relic.

Si vous utilisez un pilote de base de données MySQL, PostgreSQL ou SQLite, le moyen le plus simple d'ajouter des segments de banque de données est d'utiliser notre package d'intégration prédéfini. Sinon, vous pouvez créer manuellement des segments de banque de données pour chaque appel de base de données.

Segments externes

Vous pouvez instrumenter les appels application Go vers des services externes, tels que des services Web, des ressources dans le cloud et tout autre appel réseau. Les segments externes apparaissent dans la table Transactions breakdown et la pageExternal services dans New Relic.

Il existe deux manières d’ instrumenter des segments externes :

Segments producteurs de messages

Vous pouvez instrumenter les appels application Go qui ajoutent des messages au système de mise en file d'attente comme RabbitMQ et Kafka. Les segments du producteur de messages apparaissent dans l'APM Transactions breakdown dans New Relic.

Il n'existe qu'une seule façon d'instrumenter les segments producteurs de messages :

Droits d'auteur © 2025 New Relic Inc.

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