Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Metriche personalizzate con Application Signals
Per monitorare le prestazioni e la disponibilità delle applicazioni, Application Signals raccoglie metriche standard (guasti, errori e latenza) e metriche di runtime dalle applicazioni scoperte dopo l'attivazione.
Le metriche personalizzate aggiungono un contesto prezioso al monitoraggio delle applicazioni e aiutano a velocizzare la risoluzione dei problemi. Si possono utilizzare per:
Personalizzare l'analisi dei dati di telemetria
Identificare le cause principali dei problemi
Prendere rapidamente decisioni aziendali e operative precise
Application Signals consente di visualizzare e correlare le metriche personalizzate generate da un servizio con metriche standard e di runtime. Ad esempio, un'applicazione potrebbe emettere metriche relative alla dimensione delle richieste e al numero di errori nella cache. Queste metriche personalizzate forniscono informazioni più dettagliate sui problemi di prestazioni, aiutandoti a diagnosticare e risolvere più rapidamente i cali di disponibilità e i picchi di latenza.
Argomenti
Configurazione di metriche personalizzate per Application Signals
Puoi generare metriche personalizzate dalla tua applicazione utilizzando due metodi: OpenTelemetry metriche e metriche Span.
OpenTelemetry metriche
Per utilizzare OpenTelemetry metriche personalizzate con Application Signals, è necessario utilizzare l' CloudWatch agente o OpenTelemetry il collettore. OpenTelemetry Le metriche personalizzate consentono di creare ed esportare metriche direttamente dal codice dell'applicazione utilizzando Metrics SDK. OpenTelemetry
Integra il servizio con Application Signals.
Configura l'agente o il raccoglitore.
Quando si utilizza l' CloudWatch agente, è necessario configurarlo con un.
metrics_collectedotlpAd esempio,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" } } } }Quando si utilizza OpenTelemetry Collector, configurare una pipeline di metriche. È necessario utilizzare CloudWatch EMF Exporter for OpenTelemetry Collector
e abilitare gli attributi delle risorse nelle etichette delle metriche. Si consiglia di eseguire la configurazione di dimension_rollup_option: NoDimensionRollupper evitare l'emissione di molte aggregazioni di metriche. Ad esempio,:config.yamlreceivers: 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]
Configura l'ambiente. Quando sono presenti più servizi con lo stesso nome di servizio, per correlare accuratamente le metriche di Application Signals al nome del servizio corretto, si consiglia di configurare l'attributo di risorsa
deployment.environment.name. La configurazione di questo attributo di risorsa viene generalmente eseguita tramite le variabili di ambiente.OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME,deployment.environment.name=$YOUR_ENV_NAME"Configurare l'esportazione delle metriche nell' CloudWatch agente o nel OpenTelemetry collettore. Puoi utilizzare uno dei seguenti approcci:
(Consigliato) Pipeline di esportazione personalizzata: nel codice dell'applicazione, create un'MeterProvider
esportazione dedicata verso l'agente o l'endpoint del raccoglitore configurato. Ad esempio: 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 esportazione: configura le variabili di ambiente dell'agente OTEL_METRICS_EXPORTER e OTEL_EXPORTER_OTLP_METRICS_ENDPOINT.
https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/#otel_exporter_otlp_metrics_endpoint Ad esempio: OTEL_METRICS_EXPORTER=otlp OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://localhost:4318/v1/metricsNel codice dell'applicazione, MeterProvider affidati al valore globale creato dall'agente. Ad esempio:
Meter meter = GlobalOpenTelemetry.getMeter("myMeter");
Utilizzando OTEL Metrics SDK
nel codice dell'applicazione, aggiungi le metriche OTEL. Ad esempio, per aggiungere le metriche OTEL in Python: counter = meter.counterBuilder("myCounter").build(); counter.add(value); counter.add(value, Attributes.of(AttributeKey.stringKey("Operation"), "myOperation"));L'aggiunta dell'attributo Operation non è obbligatoria, ma può essere utile per correlare le operazioni di servizio di Application Signals alle OpenTelemetry metriche personalizzate.
Metriche di intervallo
Le metriche di intervallo personalizzate attualmente funzionano solo con Transaction Search. Con le metriche di intervallo personalizzate, è possibile:
Creare metriche utilizzando i filtri delle metriche
Elaborare gli attributi di intervallo aggiunti nel codice dell'applicazione
Usa l'SDK OpenTelemetry Traces per l'implementazione
Abilitare il monitoraggio di Application Signals con Transaction Search. Per ulteriori informazioni, consulta Transaction Search.
Per garantire il campionamento metrico al 100%, si consiglia di inviare il 100% degli intervalli all'endpoint.
Aggiungi gli attributi di intervallo utilizzando l'SDK OTEL Traces
. Puoi procedere in due modi: [Consigliato] Aggiungi attributi agli intervalli generati automaticamente. Ad esempio:
Span.current().setAttribute("myattribute", value);Aggiungi attributi agli intervalli generati manualmente. Ad esempio:
Span span = tracer.spanBuilder("myspan").startSpan(); try (Scope scope = span.makeCurrent()) { span.setAttribute("myattribute", value); }
Crea un filtro di metriche con i valori seguenti. Per informazioni su come creare un filtro di metriche, consulta Create a metric filter for a log group.
Gruppo di log — aws/spans
Modello di filtro: { $.attributes.['myattribute'] = * }
Nome della metrica: myattribute (i valori devono corrispondere esattamente; in caso contrario, la correlazione tra gli intervalli non funzionerà)
Valore della metrica: $.attributes.['myattribute']
Dimensioni: nome del campo: Service, valore del campo: $.attributes.['aws.local.service'], nome del campo: Environment, valore del campo: $.attributes.['aws.local.environment'] e nome del campo: Operation, valore del campo: $.attributes.['aws.local.operation']
Nota
Quando aggiungi attributi agli intervalli generati manualmente, non puoi impostare
Operationperchéaws.local.operationnon sarà presente nei dati dell'intervallo.
Visualizzazione delle metriche personalizzate in Application Signals
Ora puoi visualizzare metriche personalizzate per servizi e operazioni nella console Application Signals:
Seleziona un servizio dall'elenco Servizi per visualizzare la nuova scheda Metriche correlate
Visualizza le metriche standard, le metriche di runtime e le metriche correlate per il servizio selezionato
Filtra e seleziona più metriche dall'elenco
Rappresenta graficamente le metriche selezionate per identificare le correlazioni e le cause principali dei problemi
Per ulteriori informazioni sulle metriche correlate, consulta Visualizzazione di Metriche correlate.
Domande frequenti (FAQ)
Cosa succede se non aggiungo la configurazione per l'ambiente per le metriche personalizzate?
Application Signals configura l'attributo di risorsa deployment.environment.name per disambiguare le applicazioni. Senza disambiguazione, Application Signals non è in grado di correlare le metriche personalizzate generate da due servizi diversi con lo stesso nome al servizio corretto.
Per aggiungere una configurazione di ambiente all'applicazione, consulta OpenTelemetry metriche.
Sono previsti dei limiti per i filtri delle metriche?
Puoi creare solo fino a 100 filtri metrici per gruppo di CloudWatch log Logs. Ogni metrica può avere un massimo di 3 dimensioni. Puoi visualizzare i limiti per i filtri delle metriche qui: OpenTelemetry metriche.
Perché i grafici delle metriche non vengono visualizzati nella tabella delle metriche?
La soluzione dipende dal tipo di metrica:
Metriche personalizzate: consulta Configurazione di metriche personalizzate per Application Signals per verificare la configurazione delle metriche
Metriche standard o di runtime: consulta Troubleshooting your Application Signals installation