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.
Veröffentlichen von benutzerdefinierten Metriken mit dem eingebetteten Metrikformat
Mit dem Amazon CloudWatch Embedded Metric Format (EMF) können Sie Ihre eigenen Kennzahlen aus AWS Lambda Web Functions veröffentlichen, z. B. aufgegebene Bestellungen, Cache-Trefferquote oder Zahlungslatenz. Ihre Anwendung schreibt ein strukturiertes JSON-Objekt in ihre Protokolle und CloudWatch extrahiert die Metriken daraus. Verwenden Sie benutzerdefinierte Metriken, um zu verfolgen, was Ihre Anwendung tut. Die von Lambda veröffentlichten Metriken beschreiben nur die Ergebnisse von Anfragen und die Ressourcennutzung.
Sie können auch benutzerdefinierte Metriken veröffentlichen, indem Sie die CloudWatch PutMetricData API direkt aufrufen. Wir empfehlen jedoch EMF für Webfunktionen:
-
Keine zusätzliche Latenz bei Anfragen — Ihre Anwendung ruft die CloudWatch API nicht auf dem Pfad auf, der Ihre HTTP-Antwort bereitstellt.
-
Keine zusätzliche Erlaubnis — Sie benötigen die
cloudwatch:PutMetricDataErlaubnis nicht. EMF verwendet dieselben Amazon CloudWatch Logs-Berechtigungen, die die Ausführungsrolle bereits für Protokolle benötigt. -
Zentralisierung Ihrer Logs — Da EMF-Metriken zusammen mit Ihren Logs übertragen werden, enthält die Heimatregion Werte aus allen Regionen, die der Endpunkt bedient. Metriken, mit denen Sie veröffentlichen,
PutMetricDatawerden nur in der Region angezeigt, in der Sie sie aufrufen.
So funktioniert EMF mit Webfunktionen
EMF-Metriken werden von Ihrer Anwendung zu den folgenden Schritten CloudWatch weitergeleitet:
-
Ihre Anwendung schreibt ein EMF-formatted JSON-Objekt, gefolgt von einem Zeilenumbruch, direkt in die Standardausgabe.
-
Lambda erfasst es als Protokollereignis in der Region, in der die Anfrage ausgeführt wurde AWS-Region, und zentralisiert es wie jede andere Protokollausgabe im Home. Details hierzu finden Sie unter Webfunktionsprotokolle in Amazon CloudWatch Logs.
-
CloudWatch extrahiert Metriken aus dem Objekt in der Region, in der die Anfrage ausgeführt wurde, und Lambda repliziert die Metriken in die Heimatregion. Die Metriken werden in dem Namespace angezeigt, den Sie im Objekt angeben. In der Heimatregion enthalten die Metriken Werte aus jeder Region, die der Endpunkt bedient.
Ihre benutzerdefinierten Metriken werden in Ihrem eigenen Namespace angezeigt, nicht inAWS/Lambda/Web. Dieser Namespace ist für die von Lambda veröffentlichten Metriken reserviert.
Veröffentlichung einer benutzerdefinierten Metrik
Im folgenden Node.js Beispiel werden eine CheckoutLatency Metrik und eine OrdersPlaced Metrik unter dem MyWebApp Namespace mit einer PaymentProvider Dimension veröffentlicht. Es schreibt das EMF-Objekt mit. process.stdout.write Übergeben Sie kein EMF-Objekt an eine console Methode. Lambda verpackt die console Ausgabe in ein eigenes JSON-Protokollereignis und extrahiert CloudWatch keine Metriken aus dem verpackten Objekt.
function publishCheckoutMetrics(provider, latencyMs, orders) { process.stdout.write(JSON.stringify({ _aws: { Timestamp: Date.now(), CloudWatchMetrics: [ { Namespace: 'MyWebApp', Dimensions: [['PaymentProvider']], Metrics: [ { Name: 'CheckoutLatency', Unit: 'Milliseconds' }, { Name: 'OrdersPlaced', Unit: 'Count' } ] } ] }, PaymentProvider: provider, CheckoutLatency: latencyMs, OrdersPlaced: orders, // Fields outside the metric definitions are kept as searchable log context. requestPath: '/checkout' }) + '\n'); }
Anstatt EMF-Objekte selbst zu erstellen, können Sie eine EMF-Clientbibliothek wie aws-embedded-metricsconsole oder an einen CloudWatch Agenten.
Beachten Sie die drei Rollen, die Felder in einem EMF-Objekt spielen:
-
Felder mit den Namen
Metricswerden zu CloudWatch Metriken. -
In benannte Felder
Dimensionswerden zu metrischen Dimensionen. Halten Sie die Anzahl der unterschiedlichen Dimensionswerte gering. Jede Kombination erzeugt eine separate Metrik. -
Jedes andere Feld wird im Protokollereignis als Kontext gespeichert, den Sie mit Amazon CloudWatch Logs Insights abfragen können, erstellt aber keine Metrik.
Verwenden Sie die letzte Eigenschaft bewusst: Fügen Sie Werte mit hoher Kardinalität wie eine Anforderungs- oder Kundennummer als einfache Felder und nicht als Dimensionen hinzu, sodass Sie die spezifische Anfrage in Logs Insights finden können, ohne die Anzahl Ihrer Metriken zu multiplizieren.
Abrechnung für benutzerdefinierte Metriken
EMF generiert sowohl Gebühren für die Protokollaufnahme als auch für benutzerdefinierte Metriken. Das Protokollereignis wird zu Amazon CloudWatch Logs-Preisen abgerechnet, und die extrahierten Metriken werden als CloudWatch benutzerdefinierte Metriken abgerechnet. Die erste Zentralisierung eines Protokollereignisses ist kostenlos. CloudWatch extrahiert EMF-Metriken in der Region, in der die Anfrage ausgeführt wurde, und Lambda repliziert sie in die Heimatregion, sodass eine Anfrage, die außerhalb der Heimatregion bedient wird, benutzerdefinierte Metriken in beiden Regionen erzeugt.
Das Protokollvolumen, die Anzahl der Metriken und die Anzahl der unterschiedlichen Dimensionskombinationen wirken sich auf die Kosten aus. Veröffentlichen Sie Metriken mit der Granularität, für die Sie einen Alarm ausgeben oder grafisch darstellen möchten, und vermeiden Sie Dimensionen mit hoher Kardinalität.
Aktuelle Preise finden Sie unter CloudWatchAmazon-Preise