Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Métriques personnalisées avec la vigie applicative
Pour surveiller les performances et la disponibilité des applications, la vigie applicative collecte des métriques standard (défaillances, erreurs et latence) et des métriques d’exécution à partir des applications détectées après son activation.
Les métriques personnalisées ajoutent un contexte précieux à la surveillance de vos applications et contribuent à accélérer le dépannage. Vous pouvez les utiliser pour :
Personnaliser l’analyse des données de télémétrie
Identifier les causes racine des problèmes
Prendre rapidement des décisions commerciales et opérationnelles précises
La vigie applicative vous permet d’afficher et de corréler les métriques personnalisées générées à partir d’un service avec les métriques standard et d’exécution. Par exemple, une application peut émettre des métriques pour la taille des requêtes et le nombre d’échecs de cache. Ces métriques personnalisées fournissent des informations plus détaillées sur les problèmes de performances, vous aidant à diagnostiquer et à résoudre plus rapidement les baisses de disponibilité et les pics de latence.
Rubriques
Configuration des métriques personnalisées pour la vigie applicative
Vous pouvez générer des métriques personnalisées à partir de votre application à l'aide de deux méthodes : OpenTelemetry les métriques et les métriques Span.
OpenTelemetry métriques
Pour utiliser OpenTelemetry des métriques personnalisées avec les signaux d'application, vous devez utiliser l' CloudWatch agent ou le OpenTelemetry collecteur. OpenTelemetry Les métriques personnalisées vous permettent de créer et d'exporter des métriques directement à partir du code de votre application à l'aide du SDK OpenTelemetry Metrics.
Intégrez le service à la vigie applicative.
Configurez l’agent ou le collecteur.
Lorsque vous utilisez l' CloudWatch agent, vous devez le configurer
metrics_collectedavec unotlp. Par exemple,cloudwatch-config.json{ "traces": { "traces_collected": { "application_signals": {} } }, "logs": { "metrics_collected": { "application_signals": {}, "otlp": { "grpc_endpoint": "0.0.0.0:4317", "http_endpoint": "0.0.0.0:4318" } } } }Lorsque vous utilisez OpenTelemetry Collector, configurez un pipeline de métriques. Vous devez utiliser CloudWatch EMF Exporter pour OpenTelemetry Collector
et activer les attributs de ressource pour les étiquettes de mesures. Il est recommandé de configurer dimension_rollup_option: NoDimensionRolluppour éviter d’émettre de nombreuses agrégations de métriques. Par exempleconfig.yaml:receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 exporters: awsemf: region: $REGION namespace: $NAMESPACE log_group_name:$LOG_GROUP_NAME resource_to_telemetry_conversion: enabled: true dimension_rollup_option: "NoDimensionRollup" otlphttp/traces: compression: gzip traces_endpoint: https://xray.$REGION.amazonaws.com/v1/traces auth: authenticator: sigv4auth/traces extensions: sigv4auth/logs: region: "$REGION" service: "logs" sigv4auth/traces: region: "$REGION" service: "xray" processors: batch: service: telemetry: extensions: [sigv4auth/logs, sigv4auth/traces] pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [awsemf] traces: receivers: [otlp] processors: [batch] exporters: [otlphttp/traces]
Configurez l'environnement. Lorsque plusieurs services portent le même nom et afin de corréler avec précision les métriques de la vigie applicative au nom de service correct, il est recommandé de configurer l’attribut de ressource
deployment.environment.name. La configuration de cet attribut de ressource s’effectue généralement via les variables d’environnement.OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME,deployment.environment.name=$YOUR_ENV_NAME"Configurez l'exportation des métriques vers l' CloudWatch agent ou le OpenTelemetry collecteur. Vous pouvez utiliser l’une des approches suivantes :
Pipeline d'exportation personnalisé (Recommandé) — Dans le code de l'application, créez une MeterProvider
exportation dédiée vers le point de terminaison de l'agent ou du collecteur configuré. Par exemple : Resource resource = Resource.getDefault().toBuilder() .put(AttributeKey.stringKey("service.name"), serviceName) .put(AttributeKey.stringKey("deployment.environment.name"), environment) .build(); MetricExporter metricExporter = OtlpHttpMetricExporter.builder() .setEndpoint("http://localhost:4318/v1/metrics") .build(); MetricReader metricReader = PeriodicMetricReader.builder(metricExporter) .setInterval(Duration.ofSeconds(10)) .build() SdkMeterProvider meterProvider = SdkMeterProvider.builder() .setResource(resource) .registerMetricReader() .build(); Meter meter = meterProvider.get("myMeter");Agent-based export — Configurez les variables d'environnement de l'agent OTEL_METRICS_EXPORTER et OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
. https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/#otel_exporter_otlp_metrics_endpoint Par exemple : OTEL_METRICS_EXPORTER=otlp OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://localhost:4318/v1/metricsDans le code de l'application, utilisez le global MeterProvider créé par l'agent. Par exemple :
Meter meter = GlobalOpenTelemetry.getMeter("myMeter");
À l’aide du kit SDK de métriques OTEL
dans le code de l’application, ajoutez les métriques OTEL. Par exemple, pour ajouter les métriques OTEL en Python : counter = meter.counterBuilder("myCounter").build(); counter.add(value); counter.add(value, Attributes.of(AttributeKey.stringKey("Operation"), "myOperation"));L'ajout de l'attribut Operation n'est pas obligatoire, mais peut être utile pour corréler les opérations du service des signaux d'application aux OpenTelemetry mesures personnalisées.
Métriques de portée
Les métriques de portée personnalisées ne fonctionnent actuellement qu’avec la recherche de transactions. Avec les métriques de portée personnalisées, vous pouvez :
Créer des métriques à l’aide de filtres de métriques
Traiter les attributs de portée ajoutés dans le code de l’application
Utiliser le SDK OpenTelemetry Traces pour la mise en œuvre
Activer la surveillance de la vigie applicative avec la recherche de transactions. Pour plus d’informations, consultez Recherche de transactions.
Pour garantir un échantillonnage métrique à 100 %, il est recommandé d'envoyer 100 % des intervalles au terminal.
Ajoutez des attributs de portée à l’aide du kit SDK de traces OTEL
. Il existe deux méthodes : [Recommandé] Ajoutez des attributs aux portées générées automatiquement. Par exemple :
Span.current().setAttribute("myattribute", value);Ajoutez des attributs aux portées générées manuellement. Par exemple :
Span span = tracer.spanBuilder("myspan").startSpan(); try (Scope scope = span.makeCurrent()) { span.setAttribute("myattribute", value); }
Créez un filtre de métrique avec les valeurs suivantes. Pour plus d’informations sur la création d’un filtre de métrique, consultez Créer un filtre de métrique pour un groupe de journaux.
Groupe de journaux — aws/spans
Modèle de filtre : { $.attributes.['myattribute'] = * }
Nom de la métrique : myattribute (les valeurs doivent correspondre exactement, sinon la corrélation des intervalles ne fonctionnera pas)
Valeur de la métrique : $.attributes.['myattribute']
Dimensions – Nom du champ : Service, Valeur du champ : $.attributes.['aws.local.service'], Nom du champ : Environment, Valeur du champ : $.attributes.['aws.local.environment'], et Nom du champ : Operation, Valeur du champ : $.attributes.['aws.local.operation']
Note
Lorsque vous ajoutez des attributs à des portées générées manuellement, vous ne pouvez pas définir
Operationcaraws.local.operationne sera pas présent dans les données de la portée.
Affichage des métriques personnalisées dans la vigie applicative
Vous pouvez désormais afficher les métriques personnalisées pour les services et les opérations dans la console de la vigie applicative :
Sélectionnez un service dans la liste Services pour afficher le nouvel onglet Métriques associées
Affichez les métriques standard, les métriques d’exécution et les métriques associées pour le service sélectionné
Filtrez et sélectionnez plusieurs métriques dans la liste
Représentez graphiquement les métriques sélectionnées pour identifier les corrélations et les causes racine des problèmes
Pour plus d’informations sur les métriques associées, consultez Afficher les métriques associées.
Questions fréquemment posées (FAQ)
Quel est l’impact de ne pas ajouter la configuration pour l’environnement des métriques personnalisées ?
La vigie applicative configure l’attribut de ressource deployment.environment.name pour lever toute ambiguïté entre les applications. La vigie applicative ne peut pas corréler les métriques personnalisées générées à partir de deux services différents portant le même nom avec le service correct sans lever l’ambiguïté.
Pour ajouter une configuration d’environnement à votre application, consultez OpenTelemetry métriques.
Existe-t-il des limites pour les filtres de métrique ?
Vous ne pouvez créer que 100 filtres de métriques par groupe de CloudWatch journaux Logs. Chaque métrique définie peut avoir jusqu’à 3 dimensions. Vous pouvez consulter les limites des filtres de métriques ici OpenTelemetry métriques.
Pourquoi les graphiques de métriques n’apparaissent-ils pas dans le tableau des métriques ?
La solution dépend de votre type de métrique :
Métriques personnalisées : consultez Configuration des métriques personnalisées pour la vigie applicative pour vérifier la configuration des métriques
Métriques standard ou d’exécution : consultez Dépannage de votre installation de la vigie applicative