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 signaux d'application
Pour surveiller les performances et la disponibilité des applications, Application Signals collecte des métriques standard (pannes, erreurs et latence) et des métriques d'exécution à partir des applications découvertes une fois que vous les avez activées.
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 profondes des problèmes
Prenez rapidement des décisions commerciales et opérationnelles précises
Application Signals vous permet de visualiser et de corréler les métriques personnalisées générées par un service avec les métriques standard et d'exécution. Par exemple, une application peut émettre des métriques relatives à la taille des demandes et au nombre d'erreurs de cache. Ces indicateurs personnalisés fournissent des informations plus détaillées sur les problèmes de performances, vous aidant à diagnostiquer et à résoudre les baisses de disponibilité et les pics de latence plus rapidement.
Rubriques
Configuration de métriques personnalisées pour les signaux d'application
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.
Service intégré aux signaux d'application.
Configurez l'agent ou le collecteur.
Lorsque vous utilisez l' CloudWatch agent, vous devez le configurer
metrics_collected
avec 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 for OpenTelemetry Collector
et activer les attributs de ressources pour les étiquettes métriques . Il est recommandé de configurer pour dimension_rollup_option: NoDimensionRollup
éviter d'émettre de nombreuses agrégations 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 de service et pour corréler avec précision les métriques des signaux d'application au nom de service correct, il est recommandé de configurer l'attribut
deployment.environment.name
de ressource. La configuration de cet attribut de ressource s'effectue généralement par le biais des 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 :
(Recommandé) Pipeline d'exportation personnalisé : 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");
Exportation basée sur un agent : configurez les variables d'environnement de l'agent OTEL_METRICS_EXPORTER et OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
. Par exemple : OTEL_METRICS_EXPORTER=otlp OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://localhost:4318/v1/metrics
Dans le code de l'application, utilisez le global MeterProvider créé par l'agent. Par exemple :
Meter meter = GlobalOpenTelemetry.getMeter("myMeter");
À l'aide du SDK OTEL Metrics
dans le code de l'application, ajoutez les OTEL Metrics. 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 de service des signaux d'application aux OpenTelemetry métriques personnalisées.
Métriques de la durée
Les métriques Span personnalisées ne fonctionnent actuellement qu'avec Transaction Search. Grâce aux métriques Span personnalisées, vous pouvez :
Création de métriques à l'aide de filtres de métriques
Attributs de durée du processus ajoutés dans le code de l'application
Utiliser le SDK OpenTelemetry Traces pour la mise en œuvre
Activez la surveillance des signaux d'application avec Transaction Search. Pour plus d'informations, consultez la section Recherche de transactions.
Pour garantir un échantillonnage métrique à 100 %, il est recommandé d'envoyer 100 % des intervalles au point final.
Ajoutez des attributs span à l'aide du SDK OTEL Traces
. Il existe deux moyens : [Recommandé] Ajoutez des attributs aux intervalles générés automatiquement. Par exemple :
Span.current().setAttribute("myattribute", value);
Ajoutez des attributs aux intervalles générés manuellement. Par exemple :
Span span = tracer.spanBuilder("myspan").startSpan(); try (Scope scope = span.makeCurrent()) { span.setAttribute("myattribute", value); }
Créez un filtre métrique avec les valeurs suivantes. Pour plus d'informations sur la création d'un filtre métrique, voir Création d'un filtre métrique pour un groupe de logs.
Log Group — aws/spans
Modèle de filtre — {$.attributes. ['myattribute'] = *}
Nom de la métrique — myattribute (Les valeurs doivent correspondre exactement, sinon la corrélation entre les intervalles ne fonctionnera pas)
Valeur métrique — $.attributes. ['mon attribut']
Dimensions — Nom du champ : Service, valeur du champ : $.attributes. ['aws.local.service'], nom du champ : environnement, 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 intervalles générés manuellement, vous ne pouvez pas les définir
Operation
car ils neaws.local.operation
figureront pas dans les données des intervalles.
Afficher des métriques personnalisées dans Application Signals
Vous pouvez désormais consulter les métriques personnalisées pour les services et les opérations dans la console Application Signals :
Sélectionnez un service dans la liste des services pour voir le nouvel onglet Indicateurs associés
Afficher les métriques standard, les métriques d'exécution et les métriques associées pour le service que vous avez sélectionné
Filtrez et sélectionnez plusieurs métriques dans la liste
Reproduisez graphiquement les métriques sélectionnées pour identifier les corrélations et les causes profondes des problèmes
Pour plus d'informations sur les métriques associées, consultezAfficher les métriques associées.
Questions fréquemment posées (FAQs)
Quel est l'impact de ne pas ajouter la configuration de l'environnement pour les métriques personnalisées ?
Application Signals configure l'attribut de deployment.environment.name
ressource pour désambiguïser les applications. Application Signals ne peut pas corréler les métriques personnalisées générées par deux services différents portant le même nom avec le service approprié sans aucune ambiguïté.
Pour ajouter une configuration d'environnement à votre application, consultezOpenTelemetry métriques.
Existe-t-il des limites pour les filtres de mesures ?
Vous ne pouvez créer que 100 filtres de mesures par groupe de CloudWatch journaux Logs. Chaque métrique définie peut avoir jusqu'à 3 dimensions. Vous pouvez consulter les limites des filtres de mesures iciOpenTelemetry métriques.
Pourquoi les graphiques 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 — Voir Configuration de métriques personnalisées pour les signaux d'application pour vérifier la configuration des métriques
Mesures standard ou d'exécution : voir Résolution des problèmes liés à l'installation de votre application Signals