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.
configurationdu niveau du code métrique de l'agent Go
Les métriques au niveau du code permettent aux développeurs utilisant l'extension New Relic CodeStream de voir les données affichées contextuellement dans leur IDE, aux côtés des méthodes individuelles du code. Cela permet aux développeurs d’être plus proactifs dans la résolution des problèmes de performances lorsqu’ils écrivent et révisent le code.
Lorsque vous activez le niveau du code métriques, l'agent Go attachera un attribut aux données trace . Ces attributs montrent l'emplacement dans le code source de votre application responsable des actions instrumentées par ces traces. Les données que vous pouvez voir incluent :
Nom du fichier source
Numéro de ligne du fichier source
Nom de la fonction
espace de nommage
Jetez un œil aux paramètres configuration de l'agent Go pour vous aider à contrôler la collecte des métriques du niveau du code. Une fois la configuration terminée, si vous avez besoin d'aide pour trouver les données, consultez Afficher vos métriques. Si vous souhaitez plus de contrôle sur la façon dont les métriques sont collectées, consultez agent Go niveau du code métriques instrumentation.
Important
Les métriques du niveau de code sont disponibles pour la version 3.18.0 ou supérieure de l'agent Go, et activées par défaut pour la version 3.24.0 et supérieure. Pour l'activer, vous devez ajouter newrelic.ConfigCodeLevelMetricsEnabled(true) à la configuration de votre application comme expliqué ci-dessous.
Méthodes de configuration
Lors de l'appel de newrelic.NewApplication pour configurer l'agent Go dans votre application, vous pouvez activer les métriques au niveau du code en incluant l'option newrelic.ConfigCodeLevelMetricsEnabled, comme suit :
Avec cette simple étape, l'agent Go ajoutera les informations de contexte de la source du code dans l'attribut agent suivant sur les transactions :
Nom
Description
code.function
Le nom de la fonction qui a démarré la transaction. Notez que cela peut être généré automatiquement par le compilateur Go dans certains cas.
code.namespace
Le package/espace de nommage où se trouve la fonction. La combinaison de code.namespace et code.function, jointe à un délimiteur tel qu'un point (.), est censée identifier de manière unique la fonction.
code.filepath
Le chemin d'accès du fichier source contenant la fonction signalée. Normalement, il s'agit du chemin d'accès complet et absolu ; voir ci-dessous une option de configuration qui vous permet de le modifier en un chemin relatif.
code.lineno
Le numéro de ligne dans code.filepath où la transaction a été démarrée. Consultez le guide d'instrumentation pour connaître les moyens de contrôler cela.
Il existe des options configuration supplémentaires que vous souhaiterez peut-être utiliser pour affiner davantage la collecte des métriques de niveau de code dans votre application.
La définition de l’une des balises suivantes vous aidera à identifier les versions de votre logiciel qui génèrent les erreurs.
NEW_RELIC_METADATA_SERVICE_VERSION crée tags.service.version sur les données d'événement contenant la version de votre code qui est déployée, dans de nombreux cas une version sémantique telle que 1.2.3, mais pas toujours.
NEW_RELIC_METADATA_RELEASE_TAG crée tags.releaseTag sur les données d'événement contenant la tag de sortie (comme v0.1.209 ou sortie-209).
NEW_RELIC_METADATA_COMMIT crée tags.commit sur les données d'événement contenant le SHA de validation. L'intégralité du SHA peut être utilisée ou seulement les sept premiers caractères (par exemple, 734713b).
Une prochaine version de la boîte de réception des erreurs suivra automatiquement les versions de votre logiciel qui génèrent des erreurs. Toutes les données de version seront également affichées dans CodeStream.
Par défaut, avec le niveau du code métriques activé, l'agent ignorera les fonctions de la stack d'appels qu'il considère comme internes à l'agent lui-même, pour garantir que la fonction signalée est celle prévue, même si des fonctions à l'intérieur de l'agent auront été appelées pour entrer dans le code instrumentation du niveau du code métriques. Par défaut, cela se fait en ignorant toutes les fonctions dont le nom du package commence par github.com/newrelic/go-agent/. Vous pouvez modifier cela en n'importe quelle liste arbitraire de noms en définissant votre propre valeur IgnoredPrefixes .
Pour ce faire, effectuez l’une des opérations suivantes :
Si vous effectuez la configuration via la fonction NewApplication, ajoutez une option ConfigCodeLevelMetricsIgnoredPrefixes en transmettant n'importe quel nombre de chaînes de préfixe en tant qu'arguments de chaîne distincts :
Si vous configurez via des variables d'environnement, définissez NEW_RELIC_CODE_LEVEL_METRICS_IGNORED_PREFIXES sur le préfixe souhaité (ou une liste de préfixes séparés par des virgules) :
Il est également possible de définir directement le membre CodeLevelMetrics.IgnoredPrefixes de la structure Config (qui est une valeur []string ), mais nous recommandons d'utiliser l'une des méthodes mentionnées ci-dessus au lieu de manipuler directement la structure Config .
Important
Dans les versions d'agent Go antérieures à 3.20.0, cette option a été nommée au singulier plutôt qu'au pluriel (c'est-à-dire ConfigCodeLevelMetricsIgnoredPrefix). Ces noms sont obsolètes et ceux documentés ici doivent être utilisés. Les anciens noms sont également toujours pris en charge pour des raisons de compatibilité descendante.
Si, pour des raisons telles que la confidentialité, vous choisissez d'ignorer certains modules via l'option ConfigCodeLevelMetricsIgnoredPrefixes, vous souhaiterez peut-être également supprimer la liste de ces préfixes des données de configuration signalées par l'agent.
Ceci est réalisé en définissant l'option ConfigCodeLevelMetricsRedactIgnoredPrefixes . Si une valeur true est donnée, votre liste de préfixes ignorés ne sera pas affichée dans les données de configuration signalées par l'agent. Dans le cas contraire, ils seront dénoncés.
Effectuez l’une des opérations suivantes :
Si vous configurez via la fonction NewApplication, ajoutez une option ConfigCodeLevelMetricsRedactIgnoredPrefixes :
Cette option de rédaction est disponible dans les versions 3.20.0 de l'agent Go et plus tard.
Par défaut, avec le niveau de code métrique activé, l'agent signalera le chemin d'accès complet de chaque fichier source. Cependant, cela n’est peut-être pas souhaité. Par exemple, vous souhaiterez peut-être signaler uniquement les chemins application relatifs à la racine de l'arborescence source du projet, ce qui permet de corréler les données entre les instances, quel que soit l'endroit où elles sont installées dans le système de fichiers.
Pour ce faire, spécifiez une chaîne qui indique le début du chemin source de votre projet local. Si ce préfixe est trouvé dans un chemin d'accès de fichier source, tout ce qui apparaît avant lui sera supprimé. Par exemple, si la chaîne de préfixe du chemin est définie sur myproject/src alors /usr/local/projects/myproject/src/widget/main.go sera signalé dans les métriques du niveau de code comme myproject/src/widget/main.go.
Si vous avez plusieurs préfixes de chemin que vous souhaitez utiliser, répertoriez simplement tous leurs noms sous forme de paramètres distincts.
Si PathPrefixes est vide ou si un chemin de fichier source ne contient aucune de vos chaînes de préfixe, le chemin d'accès complet sera signalé.
Effectuez l’une des opérations suivantes :
Si vous configurez via la fonction NewApplication, ajoutez une option ConfigCodeLevelMetricsPathPrefixes :
Dans les versions d'agent Go antérieures à 3.20.0, cette option a été nommée au singulier plutôt qu'au pluriel (c'est-à-dire ConfigCodeLevelMetricsPathPrefix). Ces noms sont obsolètes et ceux documentés ici doivent être utilisés. Les anciens noms sont également toujours pris en charge pour des raisons de compatibilité descendante.
Si, pour des raisons telles que la confidentialité, vous choisissez de raccourcir les noms de chemin source signalés via l'option ConfigCodeLevelMetricsPathPrefixes, vous souhaiterez peut-être également supprimer la liste des préfixes de chemin des données de configuration signalées de l'agent.
Ceci est réalisé en définissant l'option ConfigCodeLevelMetricsRedactPathPrefixes . Si une valeur true est donnée, votre liste de préfixes de chemin ne sera pas affichée dans les données de configuration signalées par l'agent. Dans le cas contraire, ils seront dénoncés.
Effectuez l’une des opérations suivantes :
Si vous configurez via la fonction NewApplication, ajoutez une option ConfigCodeLevelMetricsRedactPathPrefixes :
Cette option de rédaction est disponible dans les versions 3.20.0 de l'agent Go et plus tard.
Consultez vos métriques
Une fois que vous avez configuré le niveau du code métrique, vous pouvez voir vos données dans l'UI de New Relic. Voici une façon de voir la trace d’un service particulier :