Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Benutzerdefinierte Metriken mit Application Signals
Um die Anwendungsleistung und -verfügbarkeit zu überwachen, erfasst Application Signals Standardmetriken (Störungen, Fehler und Latenz) und Laufzeitmetriken von erkannten Anwendungen, nachdem Sie es aktiviert haben.
Benutzerdefinierte Metriken ergänzen Ihre Anwendungsüberwachung um wertvollen Kontext und helfen dabei, die Fehlerbehebung zu beschleunigen. Dabei haben sie folgende Einsatzzwecke:
Die Analyse von Telemetriedaten individuell anpassen
Die Hauptursachen von Problemen ermitteln
Schnell präzise geschäftliche und betriebliche Entscheidungen treffen
Mit Application Signals zeigen Sie benutzerdefinierte Metriken an, die von einem Service generiert wurden und mit Standard- und Laufzeitmetriken korrelieren. Eine Anwendung könnte beispielsweise Metriken zur Anforderungsgröße und zur Cache-Fehleranzahl ausgeben. Diese benutzerdefinierten Metriken bieten detailliertere Einblicke in Leistungsprobleme und helfen Ihnen dabei, Verfügbarkeitseinbrüche und Latenzspitzen schneller zu diagnostizieren und zu beheben.
Themen
Konfiguration benutzerdefinierter Metriken für Application Signals
Sie können mithilfe von zwei Methoden benutzerdefinierte Metriken aus Ihrer Anwendung generieren: OpenTelemetry Metriken und Span-Metriken.
OpenTelemetry Metriken
Um benutzerdefinierte OpenTelemetry Metriken mit Application Signals zu verwenden, müssen Sie entweder den CloudWatch Agent oder den OpenTelemetry Collector verwenden. Benutzerdefinierte OpenTelemetry Metriken ermöglichen es Ihnen, mithilfe des Metrics SDK Metriken direkt aus Ihrem Anwendungscode zu erstellen und zu exportieren. OpenTelemetry
Integrierter Service für Application Signals.
Konfigurieren Sie den Agenten oder Kollektor.
Wenn Sie den CloudWatch Agenten verwenden, müssen Sie ihn
metrics_collectedmit einem konfigurierenotlp. Beispiel: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" } } } }Wenn Sie OpenTelemetry Collector verwenden, konfigurieren Sie eine Metrik-Pipeline. Sie müssen CloudWatch EMF Exporter for OpenTelemetry Collector verwenden
und die Option Ressourcenattribute für metrische Labels aktivieren. Es wird empfohlen, dimension_rollup_option: NoDimensionRollupso zu konfigurieren, dass nicht viele Metrikaggregationen ausgegeben werden. Zum Beispiel: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]
Konfigurieren Sie die Umgebung. Wenn mehrere Services mit demselben Servicenamen vorhanden sind und Application-Signals-Metriken genau mit dem richtigen Servicenamen korreliert werden sollen, wird die Konfiguration des Ressourcenattributs
deployment.environment.nameempfohlen. Die Konfiguration dieses Ressourcenattributs erfolgt üblicherweise mithilfe von Umgebungsvariablen.OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME,deployment.environment.name=$YOUR_ENV_NAME"Konfigurieren Sie den Metrik-Export zum CloudWatch Agenten oder OpenTelemetry Collector. Sie können eine der folgenden Ansätze verwenden:
(Empfohlen) Benutzerdefinierte Exportpipeline — Erstellen Sie im Anwendungscode eine dedizierte MeterProvider
Exportpipeline zum konfigurierten Agenten- oder Collector-Endpunkt. Beispiel: 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 — Konfigurieren Sie die Agenten-Umgebungsvariablen OTEL_METRICS_EXPORTER und OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
. https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/#otel_exporter_otlp_metrics_endpoint Beispiel: OTEL_METRICS_EXPORTER=otlp OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=http://localhost:4318/v1/metricsVerlassen Sie sich im MeterProvider Anwendungscode auf die vom Agenten erstellte globale Version. Beispiel:
Meter meter = GlobalOpenTelemetry.getMeter("myMeter");
Fügen Sie mithilfe des OTEL Metrics SDK
im Anwendungscode OTEL Metrics hinzu. So ergänzen Sie beispielsweise die OTEL-Metriken in Python: counter = meter.counterBuilder("myCounter").build(); counter.add(value); counter.add(value, Attributes.of(AttributeKey.stringKey("Operation"), "myOperation"));Das Hinzufügen des Operation-Attributs ist nicht erforderlich, kann aber nützlich sein, um die Operationen des Application Signals Service mit benutzerdefinierten OpenTelemetry Metriken zu korrelieren.
Span-Metriken
Benutzerdefinierte Span-Metriken funktionieren aktuell nur mit der Transaktionssuche. Benutzerdefinierte Span-Metriken ermöglichen Ihnen Folgendes:
Metriken mithilfe von Metrikfiltern zu erstellen
Span-Attribute zu verarbeiten, die im Anwendungscode eingefügt wurden
Verwenden Sie das OpenTelemetry Traces SDK für die Implementierung
Aktivieren Sie die Überwachung von Application Signals mit der Transaktionssuche. Weitere Informationen finden Sie unter Transaktionssuche.
Um eine 100% ige metrische Stichprobenentnahme zu gewährleisten, wird empfohlen, 100% der Spannweiten an den Endpunkt zu senden.
Ergänzen Sie mithilfe des OTEL Traces SDK
Span-Attribute. Es gibt dafür zwei Möglichkeiten: [Empfohlen] Fügen Sie Attribute zu automatisch generierten Spans hinzu. Beispiel:
Span.current().setAttribute("myattribute", value);Fügen Sie manuell generierten Spanns Attribute hinzu. Beispiel:
Span span = tracer.spanBuilder("myspan").startSpan(); try (Scope scope = span.makeCurrent()) { span.setAttribute("myattribute", value); }
Erstellen Sie einen Metrikfilter mit folgenden Werten. Weitere Informationen zum Erstellen eines Metrikfilters finden Sie unter Erstellen eines Metrikfilters für eine Protokollgruppe.
Gruppe protokollieren — aws/spans
Filtermuster – { $.attributes.['myattribute'] = * }
Metrikname – myattribute (Die Werte müssen exakt übereinstimmen, sonst funktioniert die Span-Korrelation nicht
Metrikwert – $.attributes.['myattribute']
Dimensionen – Feldname: Service, Feldwert: $.attributes.['aws.local.service'], Feldname: Umgebung, Feldwert: $.attributes.['aws.local.environment'] und Feldname: Operation, Feldwert: $.attributes.['aws.local.operation']
Anmerkung
Wenn Sie manuell generierten Spans Attribute hinzufügen, können Sie
Operationnicht festlegen, daaws.local.operationin den Span-Daten nicht enthalten ist.
Anzeigen benutzerdefinierter Metriken in Application Signals
Sie können jetzt benutzerdefinierte Metriken für Services und Operationen in der Konsole von Application Signals anzeigen:
Wählen Sie einen Service aus der Liste der Services aus, um die neue Registerkarte „Zugehörige Metriken zu öffnen
Sehen Sie sich Standardmetriken, Laufzeitmetriken und verwandte Metriken für den ausgewählten Service an
Filtern Sie mehrere Metriken und wählen Sie diese aus der Liste aus
Ausgewählte Metriken grafisch darstellen, um Korrelationen und Ursachen von Problemen zu ermitteln
Weitere Informationen zu zugehörigen Metriken finden Sie unter Zugehörige Metriken anzeigen.
Häufig gestellte Fragen (FAQ)
Welche Auswirkungen hat es, wenn die Umgebungskonfiguration für benutzerdefinierte Metriken nicht hinzugefügt wird?
Application Signals konfiguriert das deployment.environment.name-Ressourcenattribut so, dass Anwendungen eindeutig identifiziert werden. Application Signals kann benutzerdefinierte Metriken, die von zwei verschiedenen Services mit demselben Namen generiert wurden, nicht eindeutig mit dem richtigen Service korrelieren.
Informationen zum Ergänzen einer Umgebungskonfiguration für Ihre Anwendung finden Sie unter OpenTelemetry Metriken.
Gibt es Einschränkungen für Metrikfilter?
Sie können nur bis zu 100 Metrikfilter pro CloudWatch Logs-Loggruppe erstellen. Jede definierte Metrik kann bis zu 3 Dimensionen haben. Sie können die Grenzwerte für Metrikfilter hier OpenTelemetry Metriken ansehen.
Weshalb werden in der Metriktabelle keine Metrikdiagramme angezeigt?
Die Lösung hängt vom Metriktyp ab:
Benutzerdefinierte Metriken – siehe Konfiguration benutzerdefinierter Metriken für Application Signals zur Überprüfung der Metrikkonfiguration
Standard- oder Laufzeitmetriken – siehe Fehlerbehebung bei der Installation von Application Signals