Surveillance de Go
Surveillez vos applications Go en installant Instana Go Collector (également appelé Go Tracer ou collecteur en cours d'exécution) après avoir configuré l'agent hôte Instana.
Pour plus d'informations, consultez la page « Agent hôte » sur Instana.
Go Collector offre des outils d'instrumentation pour les technologies prises en charge, une surveillance de l'état de santé sans configuration des services d' Go, ainsi que des traces de bout en bout des requêtes sur l'ensemble des systèmes. Vous pouvez consulter les métriques et les traces collectées dans l'interface utilisateur d' Instana.
Pour plus d'informations, voir les sections suivantes :
Installation
L'installation du collecteur Instana Go est un processus simple en deux étapes. Tout d'abord, ajoutez le module github.com/instana/go-sensor à votre fichier go.mod :
go get github.com/instana/go-sensor
Une fois le go-sensor module ajouté aux dépendances de votre application, vous pouvez go-sensor l'utiliser pour instrumenter le code de votre application. Pour plus d'informations, consultez la section Installation.
Support
Le collecteur « Go » est compatible avec certaines versions d' Go, architectures de processeur et systèmes d'exploitation, et fournit des outils d'instrumentation pour diverses bibliothèques et plateformes. Il prend en charge Go, 1.25 et 1.26, tout en conservant la compatibilité avec les versions en fin de vie (EOL) de Go, à savoir 1.23 et Go 1.24. Le collecteur fonctionne sur plusieurs architectures, notamment x86_64, AArch64, IBM Power et IBM Z, sur divers systèmes d'exploitation.
Instana fournit des outils pour de nombreuses bibliothèques dans divers domaines, tels que l' HTTP, l' RPC, les bases de données, la messagerie, l' GraphQL,, et bien d'autres encore. Le collecteur prend également en charge les environnements sans serveur, notamment AWS Lambda, Azure Functions et Azure Container Apps.
Pour plus d'informations sur les environnements d'exécution et les environnements pris en charge, consultez la section « Informations sur la prise en charge ».
Pour obtenir la liste complète des bibliothèques et des plateformes prises en charge, consultez la section « Bibliothèques et plateformes prises en charge par l' Go ».
Configuration
Le collecteur « Go » prend en charge deux formats de configuration : au sein du code de l'application à l'aide d'un objet instana.Options de configuration, ou via des variables d'environnement. La configuration dans l'application est prioritaire par rapport aux variables d'environnement, sauf pour les paramètres suivants :
INSTANA_SERVICE_NAME: Permet de remplacer le nom du service défini dans le code.INSTANA_PROCESS_NAME: Permet de remplacer le nom de l'entité d'infrastructure qui représente le processus d' Go.INSTANA_DEBUG: Active les journaux de débogage même si la configuration du code de l'application définit un niveau de journalisation supérieur.INSTANA_AUTO_PROFILE: Active le profilage continu avec AutoProfile™.INSTANA_LOG_LEVEL: Permet de définir le niveau de journalisation. Les valeurs possibles sontdebug,error,warn, etinfo. Si elle est définie, la variableINSTANA_DEBUGd'environnement a la priorité.INSTANA_KAFKA_HEADER_FORMAT: Permet aux utilisateurs de définir le format des en-têtes « Kafka » transmis par Instana. Les valeurs possibles sontbinary(ancien format),string(nouveau format) etboth.INSTANA_ALLOW_ROOT_EXIT_SPAN: Détermine si le traceur commence ou non une trace par un segment de sortie.- Si vous définissez cette valeur sur
1, le traceur enregistre les segments de sortie pour les appels sortants dans les instances ne comportant aucun segment d'entrée parent. - Si vous définissez
0ouany other value, le traceur ne lance pas de trace avec une plage de sortie.
- Si vous définissez cette valeur sur
INSTANA_TRACING_DISABLE: Désactive la collecte des intervalles pour la catégorie indiquée (actuellement, seule la catégorie « journalisation » est prise en charge).INSTANA_CONFIG_PATH: Permet à l'utilisateur de spécifier le chemin d'accès au fichier de configuration afin de désactiver la collecte des catégories de segments (actuellement, seule la catégorie « journalisation » est prise en charge).
Pour plus d'informations, consultez la section Configuration.
Fonctions
Métriques d'exécution
Les indicateurs suivants sont collectés et affichés sur le tableau de bord du processus « Go » :
- Utilisation de la mémoire
- Utilisation de segment de mémoire
- Activité GC
- Goroutines
Signatures d'intégrité
Les indicateurs clés suivants permettent d'évaluer l'état de santé des applications d' Go :
- Appels
- Temps de réponse
- Mise à l'échelle
Journaux des traceurs
Le collecteur « Go » utilise un enregistreur à niveaux pour consigner les erreurs internes et les informations de diagnostic. Le logger.Logger par défaut utilise log.Logger configuré avec log.Lstdflags comme système de back end et écrit des messages dans os.Stderr. Par défaut, ce consignateur n'imprime que les messages de niveau ERROR sauf si la variable d'environnement INSTANA_DEBUG est définie.
Pour modifier le niveau de journalisation min dans l'environnement d'exécution, il est recommandé de configurer et d'injecter une instance de instana.LeveledLogger :
l := logger.New(log.New(os.Stderr, "", os.Lstdflags))
instana.SetLogger(l)
// ...
l.SetLevel(logger.WarnLevel)
Cette logger.LeveledLogger interface est implémentée par des bibliothèques de journalisation courantes telles que github.com/sirupsen/logrus et go.uber.org/zap , qui peuvent donc être utilisées à la place.
Sinon, depuis la version 1.39.0 du capteur « Go », la variable INSTANA_LOG_LEVEL d'environnement peut être utilisée pour définir le niveau de journalisation.
Remarque : la valeur de la variable d'environnement INSTANA_DEBUG n'affecte pas les consignateurs personnalisés. Vous devez vérifier explicitement si elle est définie et activer la consignation de débogage lors de la configuration de votre consignateur :
import (
instana "github.com/instana/go-sensor"
"github.com/sirupsen/logrus"
)
func main() {
// initialize Instana sensor
instana.InitSensor(&instana.Options{Service: SERVICE})
// initialize and configure the logger
logger := logrus.New()
logger.Level = logrus.InfoLevel
// check if INSTANA_DEBUG is set and set the log level to DEBUG if needed
if _, ok := os.LookupEnv("INSTANA_DEBUG"); ok {
logger.Level = logrus.DebugLevel
}
// use logrus to log the Instana Go Collector messages
instana.SetLogger(logger)
// ...
}
Désactivation des balises span
Le collecteur « Go » permet de désactiver la collecte des spans au niveau du traceur. Cette fonctionnalité permet de réduire le volume des données de portée collectées et traitées.
Il existe quatre façons de désactiver la collecte des intervalles, qui s'appliquent selon l'ordre de priorité décroissant suivant :
- Fichier de configuration (
INSTANA_CONFIG_PATH) - Variable d'environnement (
INSTANA_TRACING_DISABLE) - Configuration au niveau du code
- Configuration de l'agent
Pour plus d'informations sur la désactivation des spans, consultez la section « Désactivation des spans ».
Instana AutoProfile™
Les profils sont essentiels pour localiser les problèmes de performances et les goulets d'étranglement au niveau du code. Ils contribuent à réduire la consommation de ressources et à améliorer les performances.
AutoProfile génère et signale les profils de processus à Instana. Contrairement aux profileurs de temps de développement et à la demande, où un utilisateur doit lancer manuellement le profilage, AutoProfile™ planifie automatiquement et exécute le profilage approprié en continu pour les environnements de production critiques.
Pour activer AutoProfile™, ajoutez l'option EnableAutoProfile: true dans instana.InitSensor(opt). Pour des instructions détaillées, voir github.com/instana/go-sensor. Si vous devez activer le profilage pour une application instrumentée avec Instana sans modifier la configuration instana.InitSensor(), définissez la variable d'environnement INSTANA_AUTO_PROFILE=true. Notez que cette valeur est prioritaire et remplace toute tentative de désactivation du profilage à l'intérieur du code de l'application.
Pour plus d'informations, consultez notre documentation sur l' Instana : AutoProfile™.
Traitement des incidents
Le collecteur d' Go s peut rencontrer des problèmes lors de son fonctionnement qui peuvent affecter ses capacités de surveillance. Parmi les problèmes courants, on peut citer les versions obsolètes du moteur d'exécution d' Go, ainsi que des problèmes de configuration.
Pour plus d'informations sur le diagnostic et la résolution des problèmes liés au collecteur « Go », consultez la section Dépannage.
Sujets connexes
Pour plus d'informations, consultez les rubriques suivantes :