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.
Abrufen von Metriken mit der Performance Insights-API
Wenn Performance Insights aktiviert ist, bietet die API Einblicke in die Instance-Leistung. Amazon CloudWatch Logs stellt die autoritative Quelle für angebotene Überwachungsmetriken für -AWSServices bereit.
Performance Insights bietet eine domänenspezifische Ansicht der Datenbanklast, gemessen als durchschnittliche aktive Sitzungen (AAS). Diese Metrik erscheint API-Verbrauchern als zweidimensionaler Zeitreihendatensatz. Die Zeitdimension der Daten stellt die Datenbanklastdaten für jeden Zeitpunkt im abgefragten Zeitraum bereit. Für jeden Zeitpunkt wird die Gesamtlast bezogen auf die angeforderten Dimensionen zerlegt, z. B. SQL
, Wait-event
, User
oder Host
, gemessen zum betreffenden Zeitpunkt.
Amazon RDS Performance Insights überwacht Ihren Amazon RDS , damit Sie die Datenbankleistung analysieren und beheben können. Eine Möglichkeit zum Anzeigen von Performance Insights-Daten bietet die AWS Management Console. Performance Insights stellt außerdem eine öffentliche API bereit, sodass Sie Ihre eigenen Daten abfragen können. Sie können die API für Folgendes verwenden:
-
Auslagern von Daten in eine Datenbank
-
Hinzufügen von Performance Insights-Daten zu bestehenden Überwachungs-Dashboards
-
Entwickeln von Überwachungstools
Zum Verwenden der Performance Insights-API aktivieren Sie Performance Insights auf einer Ihrer Amazon RDS-DB-Instances. Weitere Informationen zum Aktivieren von Performance Insights finden Sie unter Aktivieren und Deaktivieren von Performance Insights. Weitere Informationen zur Performance Insights-API finden Sie in der Referenz zur Amazon RDS Performance Insights-API.
Die Performance Insights-API bietet die folgenden Operationen.
Performance-Insights-Aktion |
AWS CLI command |
Beschreibung |
---|---|---|
Erstellt einen Leistungsanalysebericht für die DB-Instance für einen bestimmten Zeitraum. Das Ergebnis lautet |
||
Löscht einen Leistungsanalysebericht. |
||
Ruft die Schlüssel der Top N-Dimension für eine Metrik für einen bestimmten Zeitraum ab. |
||
Ruft die Attribute der angegebenen Dimensionsgruppe für eine DB-Instance oder Datenquelle ab. Wenn Sie beispielsweise eine SQL-ID angeben und die Dimensionsdetails sind verfügbar, ruft |
||
Ruft den Bericht einschließlich der Erkenntnisse für den Bericht ab. Das Ergebnis umfasst den Berichtsstatus, die Berichts-ID, Details zum Berichtszeitpunkt, Erkenntnisse und Empfehlungen. |
||
GetResourceMetadata |
Rufen Sie die Metadaten für verschiedene Funktionen ab. Die Metadaten könnten beispielsweise darauf hindeuten, dass eine Funktion für eine bestimmte DB-Instance ein- oder ausgeschaltet ist. |
|
Ruft Performance Insights-Metriken für eine Reihe von Datenquellen über einen Zeitraum ab. Sie können spezifische Dimensionsgruppen und Dimensionen bereitstellen und Aggregation und Filterkriterien für jede Gruppe bereitstellen. |
||
ListAvailableResourceDimensions |
Rufen Sie die Dimensionen ab, die für jeden angegebenen Metriktyp für eine bestimmte Instance abgefragt werden können. |
|
ListAvailableResourceMetrics |
Rufen Sie alle verfügbaren Metriken der angegebenen Metriktypen ab, die für eine bestimmte DB-Instance abgefragt werden können. |
|
Ruft alle Analyseberichte ab, die für die DB-Instance verfügbar sind. Die Berichte werden auf der Grundlage der Startzeit jedes Berichts aufgelistet. | ||
Listet alle Metadaten-Tags auf, die der Ressource hinzugefügt wurden. Die Liste enthält den Namen und den Wert des Tags. |
||
Fügt einer Amazon-RDS-Ressource Metadaten-Tags hinzu. Das Tag enthält einen Namen und einen Wert. |
||
Entfernt die Metadaten-Tags von der Ressource. |
Themen
AWS CLI für Performance Insights
Sie können Performance Insights-Daten über die anzeige AWS CLI. Hilfe zu den AWS CLI-Befehlen für Performance Insights erhalten Sie durch Eingabe der folgenden Befehle an der Befehlszeile.
aws pi help
Wenn die AWS CLI nicht installiert ist, finden SieInformationen zur Installation unter Installieren der AWS-Befehlszeilenschnittstelle im AWS CLI-Benutzerhandbuch.
Abrufen von Zeitreihenmetriken
Mit der GetResourceMetrics
-Operation werden ein oder mehrere Zeitreihenmetriken aus den Performance Insights-Daten abgerufen. Für GetResourceMetrics
ist eine Metrik und ein Zeitraum erforderlich, damit eine Antwort mit einer Liste von Datenpunkten zurückgegeben wird.
Zum Beispiel dieAWS Management Console VerwendungGetResourceMetrics
zum Ausfüllen des Diagramms „Zählermetriken“ und des Datenbank-Load-Diagramms, wie in der folgenden Abbildung dargestellt.
Alle von zurückgegebenen MetrikenGetResourceMetrics
sind Standard-Zeitreihenmetriken, mit Ausnahme vondb.load
. Diese Metrik wird im Diagramm Database Load (Datenbanklast) angezeigt. Diedb.load
Metrik unterscheidet sich von den anderen Zeitreihenmetriken, da Sie sie in Unterkomponenten aufteilen können, die als Dimensionen bezeichnet werden. In der vorherigen Abbildung wird db.load
unterteilt und nach Wartezuständen gruppiert, aus denen db.load
besteht.
Anmerkung
GetResourceMetrics
kann auch die db.sampleload
-Metrik zurückgeben, aber die db.load
-Metrik ist in den meisten Fällen angemessen.
Informationen zu den Zählermetriken, die von GetResourceMetrics
zurückgegeben werden, finden Sie unter Performance-Insights-Zählermetriken.
Die folgenden Berechnungen werden für die Metriken unterstützt:
-
Durchschnitt – Der durchschnittliche Wert für die Metrik über einen bestimmten Zeitraum. Fügen Sie dem Metriknamen
.avg
an. -
Minimum – Der minimale Wert für die Metrik über einen bestimmten Zeitraum. Fügen Sie dem Metriknamen
.min
an. -
Maximum – Der maximale Wert für die Metrik über einen bestimmten Zeitraum. Fügen Sie dem Metriknamen
.max
an. -
Summe – Die Summe der Metrikwerte über einen bestimmten Zeitraum. Fügen Sie dem Metriknamen
.sum
an. -
Beispielanzahl – Die Anzahl, wie oft die Metrik über einen bestimmten Zeitraum erfasst wurde. Fügen Sie dem Metriknamen
.sample_count
an.
Nehmen wir an, dass eine Metrik beispielsweise 300 Sekunden (5 Minuten) lang erfasst wird und dass die Metrik einmal pro Minute erfasst wird. Die Werte für jede Minute sind 1, 2, 3, 4 und 5. In diesem Fall werden die folgenden Berechnungen zurückgegeben:
-
Durchschnitt – 3
-
Minimum – 1
-
Maximum – 5
-
Summe – 15
-
Beispielanzahl – 5
Weitere Informationen zur Verwendung des AWS CLI-Befehls get-resource-metrics
finden Sie unter get-resource-metrics
.
Geben Sie für die --metric-queries
-Option eine oder mehrere Abfragen an, um die entsprechenden Ergebnisse zu erhalten. Jede Abfrage besteht aus einem obligatorischen Metric
- sowie optionalen GroupBy
- und Filter
-Parametern. Es folgt ein Beispiel für eine Spezifikation der --metric-queries
-Option.
{ "Metric": "string", "GroupBy": { "Group": "string", "Dimensions": ["string", ...], "Limit": integer }, "Filter": {"string": "string" ...}
AWS CLI-Beispiele für Performance-Insights
Die folgenden Beispiele zeigen, wie AWS CLI für Performance Insights verwendet wird.
Themen
- Abrufen von Zählermetriken
- Abrufen des DB-Lastdurchschnitts für Top-Warteereignisse
- Abrufen des DB-Lastdurchschnitts für Top-SQL-Anweisungen
- Abrufen des nach SQL gefilterten DB-Lastdurchschnitts
- Abrufen des Volltextes einer SQL-Anweisung
- Erstellen eines Leistungsanalyseberichts für einen bestimmten Zeitraum
- Abrufen eines Leistungsanalyseberichts
- Auflisten aller Leistungsanalyseberichte für die DB-Instance
- Löschen eines Leistungsanalyseberichts
- Hinzufügen eines Tags zu einem Leistungsanalysebericht
- Auflisten aller Tags für einen Leistungsanalysebericht
- Löschen der Tags eines Leistungsanalyseberichts
Abrufen von Zählermetriken
Der folgende Screenshot zeigt zwei Zählermetriken-Diagramme in der AWS Management Console.
Das folgende Beispiel veranschaulicht, wie die Daten, die die AWS Management Console zum Erstellen der beiden Zählermetriken-Diagramme verwendet, gesammelt werden.
Für Linux, macOSoder Unix:
aws pi get-resource-metrics \ --service-type RDS \ --identifier db-
ID
\ --start-time2018-10-30T00:00:00Z
\ --end-time2018-10-30T01:00:00Z
\ --period-in-seconds60
\ --metric-queries '[{"Metric": "os.cpuUtilization.user.avg" }, {"Metric": "os.cpuUtilization.idle.avg"}]'
Windows:
aws pi get-resource-metrics ^ --service-type RDS ^ --identifier db-
ID
^ --start-time2018-10-30T00:00:00Z
^ --end-time2018-10-30T01:00:00Z
^ --period-in-seconds60
^ --metric-queries '[{"Metric": "os.cpuUtilization.user.avg" }, {"Metric": "os.cpuUtilization.idle.avg"}]'
Sie können einen Befehl besser lesbar gestalten, indem Sie eine Datei für die Option --metrics-query
angeben. Im folgenden Beispiel wird eine Datei namens query.json für die Option verwendet. Die Datei enthält Folgendes.
[ { "Metric": "os.cpuUtilization.user.avg" }, { "Metric": "os.cpuUtilization.idle.avg" } ]
Führen Sie den folgenden Befehl aus, um die Datei zu verwenden.
Für Linux, macOSoder Unix:
aws pi get-resource-metrics \ --service-type RDS \ --identifier db-
ID
\ --start-time2018-10-30T00:00:00Z
\ --end-time2018-10-30T01:00:00Z
\ --period-in-seconds60
\ --metric-queries file://query.json
Windows:
aws pi get-resource-metrics ^ --service-type RDS ^ --identifier db-
ID
^ --start-time2018-10-30T00:00:00Z
^ --end-time2018-10-30T01:00:00Z
^ --period-in-seconds60
^ --metric-queries file://query.json
Das vorige Beispiel gibt die folgenden Werte für die Optionen an:
-
--service-type
–RDS
für Amazon RDS -
--identifier
– Die Ressource-ID für die DB-Instance -
--start-time
und--end-time
– Die ISO 8601-WerteDateTime
für den abzufragenden Zeitraum mit mehreren unterstützten Formaten
Der Abfragezeitraum beträgt eine Stunde:
-
--period-in-seconds
–60
für eine Abfrage pro Minute -
--metric-queries
– Ein Array mit zwei Abfragen, jeweils für nur eine Metrik.Der Metrikname verwendet Punkte, um die Metrik in eine sinnvolle Kategorie einzustufen, wobei das letzte Element eine Funktion ist. Im Beispiel lautet die Funktion
avg
für jede Abfrage. Wie bei Amazon sind die CloudWatchunterstützten Funktionenmin
,max
total
, undavg
.
Die Antwort sieht in etwa so aus:
{ "Identifier": "db-XXX", "AlignedStartTime": 1540857600.0, "AlignedEndTime": 1540861200.0, "MetricList": [ { //A list of key/datapoints "Key": { "Metric": "os.cpuUtilization.user.avg" //Metric1 }, "DataPoints": [ //Each list of datapoints has the same timestamps and same number of items { "Timestamp": 1540857660.0, //Minute1 "Value": 4.0 }, { "Timestamp": 1540857720.0, //Minute2 "Value": 4.0 }, { "Timestamp": 1540857780.0, //Minute 3 "Value": 10.0 } //... 60 datapoints for the os.cpuUtilization.user.avg metric ] }, { "Key": { "Metric": "os.cpuUtilization.idle.avg" //Metric2 }, "DataPoints": [ { "Timestamp": 1540857660.0, //Minute1 "Value": 12.0 }, { "Timestamp": 1540857720.0, //Minute2 "Value": 13.5 }, //... 60 datapoints for the os.cpuUtilization.idle.avg metric ] } ] //end of MetricList } //end of response
Die Antwort enthält Werte für Identifier
, AlignedStartTime
und AlignedEndTime
. Bei einem --period-in-seconds
-Wert von 60
wurden Start- und Endzeiten auf die Minute ausgerichtet. Wenn der --period-in-seconds
-Wert 3600
lautet, werden Start- und Endzeiten auf die Stunde ausgerichtet.
Die MetricList
in der Antwort enthält eine Reihe von Einträgen, und zwar jeweils mit einem Key
- und einem DataPoints
-Eintrag. Jeder DataPoint
verfügt über einen Timestamp
und einen Value
. Jede Datapoints
-Liste enthält 60 Datenpunkte, da die Abfragen eine Stunde lang jede Minute Daten abfragen, und zwar mit den Werten Timestamp1/Minute1
, Timestamp2/Minute2
usw. bis Timestamp60/Minute60
.
Da sich die Abfrage auf zwei verschiedene Zählermetriken bezieht, enthält die -Antwort zwei Element MetricList
.
Abrufen des DB-Lastdurchschnitts für Top-Warteereignisse
Das folgende Beispiel entspricht der Abfrage, die die AWS Management Console zum Erstellen eines Stapelflächendiagramms verwendet. Mit diesem Beispiel wird der db.load.avg
-Wert für die letzte Stunde abgerufen, wobei die Last auf die sieben Top-Warteereignisse aufgeteilt ist. Der Befehl ist mit dem Befehl unter identisc Abrufen von Zählermetriken. Die Datei query.json enthält hingegen Folgendes.
[ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.wait_event", "Limit": 7 } } ]
Führen Sie den folgenden Befehl aus.
Für Linux, macOSoder Unix:
aws pi get-resource-metrics \ --service-type RDS \ --identifier db-
ID
\ --start-time2018-10-30T00:00:00Z
\ --end-time2018-10-30T01:00:00Z
\ --period-in-seconds60
\ --metric-queries file://query.json
Windows:
aws pi get-resource-metrics ^ --service-type RDS ^ --identifier db-
ID
^ --start-time2018-10-30T00:00:00Z
^ --end-time2018-10-30T01:00:00Z
^ --period-in-seconds60
^ --metric-queries file://query.json
Das Beispiel gibt die Metrik db.load.avg
und eine GroupBy
-Sortierung der sieben Top-Warteereignisse an. Weitere Informationen zu gültigen Werten für dieses Beispiel finden Sie unter DimensionGroup in der Performance Insights-API-Referenz.
Die Antwort sieht in etwa so aus:
{ "Identifier": "db-XXX", "AlignedStartTime": 1540857600.0, "AlignedEndTime": 1540861200.0, "MetricList": [ { //A list of key/datapoints "Key": { //A Metric with no dimensions. This is the total db.load.avg "Metric": "db.load.avg" }, "DataPoints": [ //Each list of datapoints has the same timestamps and same number of items { "Timestamp": 1540857660.0, //Minute1 "Value": 0.5166666666666667 }, { "Timestamp": 1540857720.0, //Minute2 "Value": 0.38333333333333336 }, { "Timestamp": 1540857780.0, //Minute 3 "Value": 0.26666666666666666 } //... 60 datapoints for the total db.load.avg key ] }, { "Key": { //Another key. This is db.load.avg broken down by CPU "Metric": "db.load.avg", "Dimensions": { "db.wait_event.name": "CPU", "db.wait_event.type": "CPU" } }, "DataPoints": [ { "Timestamp": 1540857660.0, //Minute1 "Value": 0.35 }, { "Timestamp": 1540857720.0, //Minute2 "Value": 0.15 }, //... 60 datapoints for the CPU key ] }, //... In total we have 8 key/datapoints entries, 1) total, 2-8) Top Wait Events ] //end of MetricList } //end of response
In dieser Antwort gibt es acht Einträge in der MetricList
. Davon bezieht sich ein Eintrag auf den db.load.avg
-Gesamtwert und sieben Einträge jeweils auf den db.load.avg
-Wert, der auf eines der sieben Top-Warteereignisse aufgeteilt ist. Im Gegensatz zum ersten Beispiel, bei dem eine Gruppierungsdimension vorlag, muss für jede Gruppierung der Metrik ein Schlüssel vorliegen. Für jede Metrik kann nicht nur ein Schlüssel vorhanden sein, wie im Anwendungsfall der Basiszählermetrik.
Abrufen des DB-Lastdurchschnitts für Top-SQL-Anweisungen
Im folgenden Beispiel werden db.wait_events
entsprechend der 10 Top-SQL-Anweisungen gruppiert. Es gibt zwei verschiedene Gruppen für SQL-Anweisungen.
-
db.sql
– Die vollständige SQL-Anweisung, wieselect * from customers where customer_id = 123
-
db.sql_tokenized
– Die SQL-Anweisung mit Token, wieselect * from customers where customer_id = ?
Beim Analysieren der Datenbank-Performance kann es nützlich sein, SQL-Anweisungen, die sich nur durch ihre Parameter unterscheiden, als ein logisches Element zu betrachten. In diesem Fall können Sie db.sql_tokenized
beim Abfragen verwenden. In manchen Fällen, insbesondere wenn Sie an Explain-Plänen interessiert sind, ist es jedoch sinnvoller, die vollständigen SQL-Anweisungen mit Parametern zu untersuchen und die Abfrage nach db.sql
zu gruppieren. Zwischen SQL-Anweisungen mit Token und vollständigen SQL-Anweisungen besteht eine Beziehung der Über-/Unterordnung. Mehrere vollständige (untergeordnete) SQL-Anweisungen befinden sich unter derselben (übergeordneten) SQL-Anweisung mit Token.
Der Befehl in diesem Beispiel ähnelt dem Befehl unter Abrufen des DB-Lastdurchschnitts für Top-Warteereignisse. Die Datei query.json enthält hingegen Folgendes.
[ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.sql_tokenized", "Limit": 10 } } ]
Im folgenden Beispiel wird verwende db.sql_tokenized
.
Für Linux, macOSoder Unix:
aws pi get-resource-metrics \ --service-type RDS \ --identifier db-
ID
\ --start-time2018-10-29T00:00:00Z
\ --end-time2018-10-30T00:00:00Z
\ --period-in-seconds3600
\ --metric-queries file://query.json
Windows:
aws pi get-resource-metrics ^ --service-type RDS ^ --identifier db-
ID
^ --start-time2018-10-29T00:00:00Z
^ --end-time2018-10-30T00:00:00Z
^ --period-in-seconds3600
^ --metric-queries file://query.json
In diesem Beispiel werden Abfragen über 24 Stunden mit einer Stunde durchgeführt period-in-seconds.
Das Beispiel gibt die Metrik db.load.avg
und eine GroupBy
-Sortierung der sieben Top-Warteereignisse an. Weitere Informationen zu gültigen Werten für dieses Beispiel finden Sie unter DimensionGroup in der Performance Insights-API-Referenz.
Die Antwort sieht in etwa so aus:
{ "AlignedStartTime": 1540771200.0, "AlignedEndTime": 1540857600.0, "Identifier": "db-XXX", "MetricList": [ //11 entries in the MetricList { "Key": { //First key is total "Metric": "db.load.avg" } "DataPoints": [ //Each DataPoints list has 24 per-hour Timestamps and a value { "Value": 1.6964980544747081, "Timestamp": 1540774800.0 }, //... 24 datapoints ] }, { "Key": { //Next key is the top tokenized SQL "Dimensions": { "db.sql_tokenized.statement": "INSERT INTO authors (id,name,email) VALUES\n( nextval(?) ,?,?)", "db.sql_tokenized.db_id": "pi-2372568224", "db.sql_tokenized.id": "AKIAIOSFODNN7EXAMPLE" }, "Metric": "db.load.avg" }, "DataPoints": [ //... 24 datapoints ] }, // In total 11 entries, 10 Keys of top tokenized SQL, 1 total key ] //End of MetricList } //End of response
Diese Antwort umfasst 11 Einträge in der MetricList
(1 gesamt, 10 Top-SQL mit Token), wobei jeder Eintrage 24 DataPoints
pro Stunde aufweist.
Für SQL-Anweisungen mit Token gibt es in jeder Dimensionsliste drei Einträge:
-
db.sql_tokenized.statement
– Die SQL-Anweisung mit Token. -
db.sql_tokenized.db_id
– Entweder die native Datenbank-ID zum Verweisen auf die SQL-Anweisung oder eine synthetische ID, die von Performance Insights generiert wird, wenn keine native Datenbank-ID verfügbar ist. In diesem Beispiel wird die synthetische IDpi-2372568224
zurückgegeben. -
db.sql_tokenized.id
– Die ID der Abfrage innerhalb von Performance-Insights.In der AWS Management Console wird diese ID als Support-ID bezeichnet. Es wird so genannt, weil die ID Daten sind, die der AWS-Support untersuchen kann, um Ihnen bei der Behebung eines Problems mit Ihrer Datenbank zu helfen. AWS nimmt die Sicherheit und den Datenschutz Ihrer Daten sehr ernst und fast alle Daten werden mit Ihrem AWS KMS-Kundenstamm (CMK) verschlüsselt gespeichert. Daher sind diese Daten für keinen Benutzer innerhalb von AWS einsehbar. Im vorherigen Beispiel wird sowohl
tokenized.statement
als auchtokenized.db_id
verschlüsselt gespeichert. Bei einem Problem mit Ihrer Datenbank kann der AWS Support Sie anhand der Support-ID unterstützen.
Beim Abfragen empfiehlt es sich ggf., eine Group
in GroupBy
anzugeben. Für eine präzisere Kontrolle der Daten, die zurückgegeben werden, sollten Sie allerdings die Dimensionsliste angeben. Wenn z. B. lediglich eine db.sql_tokenized.statement
erforderlich ist, kann der query.json-Datei ein Dimensions
-Attribut hinzugefügt werden.
[ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.sql_tokenized", "Dimensions":["db.sql_tokenized.statement"], "Limit": 10 } } ]
Abrufen des nach SQL gefilterten DB-Lastdurchschnitts
Die vorherige Abbildung zeigt, dass eine bestimmte Abfrage ausgewählt ist, und das Stapelflächendiagramm der durchschnittlichen aktiven Top-Sitzungen ist auf diese Abfrage beschränkt. Obwohl sich die Abfrage nach wie vor auf die sieben Top-Gesamtwarteereignisse bezieht, wird der Wert der Antwort gefiltert. Durch das Filtern werden nur die Sitzungen berücksichtigt, die mit dem entsprechenden Filter übereinstimmen.
Die entsprechende API-Abfrage in diesem Beispiel ähnelt dem Befehl unter Abrufen des DB-Lastdurchschnitts für Top-SQL-Anweisungen. Die Datei query.json enthält hingegen Folgendes.
[ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.wait_event", "Limit": 5 }, "Filter": { "db.sql_tokenized.id": "AKIAIOSFODNN7EXAMPLE" } } ]
Für Linux, macOSoder Unix:
aws pi get-resource-metrics \ --service-type RDS \ --identifier db-
ID
\ --start-time2018-10-30T00:00:00Z
\ --end-time2018-10-30T01:00:00Z
\ --period-in-seconds60
\ --metric-queries file://query.json
Windows:
aws pi get-resource-metrics ^ --service-type RDS ^ --identifier db-
ID
^ --start-time2018-10-30T00:00:00Z
^ --end-time2018-10-30T01:00:00Z
^ --period-in-seconds60
^ --metric-queries file://query.json
Die Antwort sieht in etwa so aus:
{ "Identifier": "db-XXX", "AlignedStartTime": 1556215200.0, "MetricList": [ { "Key": { "Metric": "db.load.avg" }, "DataPoints": [ { "Timestamp": 1556218800.0, "Value": 1.4878117913832196 }, { "Timestamp": 1556222400.0, "Value": 1.192823803967328 } ] }, { "Key": { "Metric": "db.load.avg", "Dimensions": { "db.wait_event.type": "io", "db.wait_event.name": "wait/io/aurora_redo_log_flush" } }, "DataPoints": [ { "Timestamp": 1556218800.0, "Value": 1.1360544217687074 }, { "Timestamp": 1556222400.0, "Value": 1.058051341890315 } ] }, { "Key": { "Metric": "db.load.avg", "Dimensions": { "db.wait_event.type": "io", "db.wait_event.name": "wait/io/table/sql/handler" } }, "DataPoints": [ { "Timestamp": 1556218800.0, "Value": 0.16241496598639457 }, { "Timestamp": 1556222400.0, "Value": 0.05163360560093349 } ] }, { "Key": { "Metric": "db.load.avg", "Dimensions": { "db.wait_event.type": "synch", "db.wait_event.name": "wait/synch/mutex/innodb/aurora_lock_thread_slot_futex" } }, "DataPoints": [ { "Timestamp": 1556218800.0, "Value": 0.11479591836734694 }, { "Timestamp": 1556222400.0, "Value": 0.013127187864644107 } ] }, { "Key": { "Metric": "db.load.avg", "Dimensions": { "db.wait_event.type": "CPU", "db.wait_event.name": "CPU" } }, "DataPoints": [ { "Timestamp": 1556218800.0, "Value": 0.05215419501133787 }, { "Timestamp": 1556222400.0, "Value": 0.05805134189031505 } ] }, { "Key": { "Metric": "db.load.avg", "Dimensions": { "db.wait_event.type": "synch", "db.wait_event.name": "wait/synch/mutex/innodb/lock_wait_mutex" } }, "DataPoints": [ { "Timestamp": 1556218800.0, "Value": 0.017573696145124718 }, { "Timestamp": 1556222400.0, "Value": 0.002333722287047841 } ] } ], "AlignedEndTime": 1556222400.0 } //end of response
In dieser Antwort werden alle Werte gemäß des Beitrags der SQL-Anweisung mit Token AKIAIOSFODNN7EXAMPLE gefiltert, die in der query.json-Datei angegeben ist. Die Schlüssel sind möglicherweise in einer anderen Reihenfolge angeordnet als bei einer Abfrage ohne Filter, da die gefilterte SQL-Anweisung von den fünf Top-Warteereignisse beeinflusst wurde.
Abrufen des Volltextes einer SQL-Anweisung
Im folgenden Beispiel wird der Volltext einer SQL-Anweisung für die DB-Instance abgerufe db-10BCD2EFGHIJ3KL4M5NO6PQRS5
. --group
ist db.sql
und --group-identifier
ist db.sql.id
. In diesem Beispiel my-sql-id
stellt eine SQL-ID dar, die durch Aufrufen von pi get-resource-metrics
oder abgerufen wurdepi describe-dimension-keys
.
Führen Sie den folgenden Befehl aus.
Für Linux, macOSoder Unix:
aws pi get-dimension-key-details \ --service-type RDS \ --identifier db-10BCD2EFGHIJ3KL4M5NO6PQRS5 \ --group db.sql \ --group-identifier
my-sql-id
\ --requested-dimensions statement
Windows:
aws pi get-dimension-key-details ^ --service-type RDS ^ --identifier db-10BCD2EFGHIJ3KL4M5NO6PQRS5 ^ --group db.sql ^ --group-identifier
my-sql-id
^ --requested-dimensions statement
In diesem Beispiel sind die Dimensionsdetails verfügbar. Performance Insights ruft also den vollständigen Text der SQL-Anweisung ab, ohne ihn abzuschneiden.
{ "Dimensions":[ { "Value": "SELECT e.last_name, d.department_name FROM employees e, departments d WHERE e.department_id=d.department_id", "Dimension": "db.sql.statement", "Status": "AVAILABLE" }, ... ] }
Erstellen eines Leistungsanalyseberichts für einen bestimmten Zeitraum
Im folgenden Beispiel wird ein Leistungsanalysebericht mit der Startzeit 1682969503
und der Endzeit 1682979503
für diedb-loadtest-0
-Datenbank erstellt.
aws pi-test create-performance-analysis-report \ --service-type RDS \ --identifier db-loadtest-0 \ --start-time 1682969503 \ --end-time 1682979503 \ --endpoint-url https://api.titan.pi.a2z.com \ --region us-west-2
Die Antwort ist der eindeutige Bezeichner report-0234d3ed98e28fb17
für den Bericht.
{ "AnalysisReportId": "report-0234d3ed98e28fb17" }
Abrufen eines Leistungsanalyseberichts
Im folgenden Beispiel werden die Details des Analyseberichts für den Bericht report-0d99cc91c4422ee61
abgerufen.
aws pi-test get-performance-analysis-report \ --service-type RDS \ --identifier db-loadtest-0 \ --analysis-report-id report-0d99cc91c4422ee61 \ --endpoint-url https://api.titan.pi.a2z.com \ --region us-west-2
Die Antwort enthält den Berichtsstatus, die ID, Zeitdetails und Einblicke.
{ "AnalysisReport": { "Status": "Succeeded", "ServiceType": "RDS", "Identifier": "db-loadtest-0", "StartTime": 1680583486.584, "AnalysisReportId": "report-0d99cc91c4422ee61", "EndTime": 1680587086.584, "CreateTime": 1680587087.139, "Insights": [ ... (Condensed for space) ] } }
Auflisten aller Leistungsanalyseberichte für die DB-Instance
Das folgende Beispiel listet alle verfügbaren Leistungsanalyseberichte für die db-loadtest-0
-Datenbank auf.
aws pi-test list-performance-analysis-reports \ --service-type RDS \ --identifier db-loadtest-0 \ --endpoint-url https://api.titan.pi.a2z.com \ --region us-west-2
In der Antwort werden alle Berichte mit der Berichts-ID, dem Status und den Details zum Zeitraum aufgeführt.
{ "AnalysisReports": [ { "Status": "Succeeded", "EndTime": 1680587086.584, "CreationTime": 1680587087.139, "StartTime": 1680583486.584, "AnalysisReportId": "report-0d99cc91c4422ee61" }, { "Status": "Succeeded", "EndTime": 1681491137.914, "CreationTime": 1681491145.973, "StartTime": 1681487537.914, "AnalysisReportId": "report-002633115cc002233" }, { "Status": "Succeeded", "EndTime": 1681493499.849, "CreationTime": 1681493507.762, "StartTime": 1681489899.849, "AnalysisReportId": "report-043b1e006b47246f9" }, { "Status": "InProgress", "EndTime": 1682979503.0, "CreationTime": 1682979618.994, "StartTime": 1682969503.0, "AnalysisReportId": "report-01ad15f9b88bcbd56" } ] }
Löschen eines Leistungsanalyseberichts
Im folgenden Beispiel wird der Analysebericht für die db-loadtest-0
-Datenbank gelöscht.
aws pi-test delete-performance-analysis-report \ --service-type RDS \ --identifier db-loadtest-0 \ --analysis-report-id report-0d99cc91c4422ee61 \ --endpoint-url https://api.titan.pi.a2z.com \ --region us-west-2
Hinzufügen eines Tags zu einem Leistungsanalysebericht
Im folgenden Beispiel wird ein Tag mit dem Schlüssel name
und dem Wert test-tag
zum Bericht report-01ad15f9b88bcbd56
hinzugefügt.
aws pi-test tag-resource \ --service-type RDS \ --resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \ --tags Key=name,Value=test-tag \ --endpoint-url https://api.titan.pi.a2z.com \ --region us-west-2
Auflisten aller Tags für einen Leistungsanalysebericht
Das folgende Beispiel listet alle Tags für den Bericht report-01ad15f9b88bcbd56
auf.
aws pi-test list-tags-for-resource \ --service-type RDS \ --resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \ --endpoint-url https://api.titan.pi.a2z.com \ --region us-west-2
In der Antwort werden der Wert und der Schlüssel für alle dem Bericht hinzugefügten Tags aufgeführt:
{ "Tags": [ { "Value": "test-tag", "Key": "name" } ] }
Löschen der Tags eines Leistungsanalyseberichts
Im folgenden Beispiel wird das Tag name
aus dem Bericht report-01ad15f9b88bcbd56
gelöscht.
aws pi-test untag-resource \ --service-type RDS \ --resource-arn arn:aws:pi:us-west-2:356798100956:perf-reports/RDS/db-loadtest-0/report-01ad15f9b88bcbd56 \ --tag-keys name \ --endpoint-url https://api.titan.pi.a2z.com \ --region us-west-2
Nachdem das Tag gelöscht wurde, wird beim Abrufen der API list-tags-for-resource
dieses Tag nicht mehr aufgelistet.