Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengambil metrik dengan API Wawasan Performa
Saat Wawasan Kinerja diaktifkan, API menyediakan visibilitas ke dalam kinerja instans. Amazon CloudWatch Logs menyediakan sumber otoritatif untuk metrik pemantauan terjual untuk layanan. AWS
Wawasan Performa menawarkan tampilan spesifik domain dari muatan basis data yang diukur sebagai sesi aktif rata-rata (AAS). Metrik ini muncul sebagai set data deret waktu dua dimensi bagi konsumen API. Dimensi waktu data menyediakan data muatan DB untuk setiap titik waktu dalam rentang waktu yang dikueri. Setiap titik waktu menguraikan keseluruhan muatan dalam hubungannya dengan dimensi yang diminta, seperti Query, Wait-state, Application, atau Host, yang diukur pada titik waktu tersebut.
Amazon DocumentDB Performance Insights memantau instans Amazon DocumentDB DB Anda sehingga Anda dapat menganalisis dan memecahkan masalah kinerja database. Salah satu cara untuk menampilkan data Wawasan Performa dapat ditemukan di Konsol Manajemen AWS. Wawasan Performa juga menyediakan API publik sehingga Anda dapat mengueri data Anda sendiri. Anda dapat menggunakan API untuk melakukan tindakan berikut:
-
Membongkar data ke dalam basis data
-
Menambahkan data Wawasan Performa ke dasbor pemantauan yang ada
-
Merancang alat pemantauan
Untuk menggunakan API Performance Insights, aktifkan Performance Insights di salah satu instans Amazon DocumentDB Anda. Untuk informasi tentang cara mengaktifkan Wawasan Performa, lihat Mengaktifkan dan menonaktifkan Wawasan Kinerja. Untuk informasi selengkapnya tentang API Performance Insights, lihat Referensi API Performance Insights.
API Wawasan Performa menyediakan operasi berikut.
|
Tindakan Wawasan Performa |
AWS CLI perintah |
Deskripsi |
|---|---|---|
|
Mengambil kunci dimensi N teratas untuk metrik dalam jangka waktu tertentu. |
||
|
Mengambil atribut dari grup dimensi tertentu untuk instans DB atau sumber data. Misalnya, jika Anda menentukan ID kueri, dan jika detail dimensi tersedia, |
||
GetResourceMetadata |
Mengambil metadata untuk fitur yang berbeda. Misalnya, metadata mungkin menunjukkan bahwa fitur diaktifkan atau dinonaktifkan pada instans DB tertentu. |
|
|
Mengambil metrik Wawasan Performa untuk sekumpulan sumber data, selama periode waktu tertentu. Anda dapat menyediakan grup dimensi dan dimensi tertentu, serta memberikan kriteria penggabungan dan pemfilteran untuk setiap grup. |
||
ListAvailableResourceDimensions |
Mengambil dimensi yang dapat dikueri untuk setiap jenis metrik yang ditentukan pada instans tertentu. |
|
ListAvailableResourceMetrics |
Mengambil semua metrik jenis metrik tertentu yang tersedia yang dapat dikueri untuk instans DB tertentu. |
Topik
AWS CLI untuk Performance Insights
Anda dapat melihat data Wawasan Performa menggunakan AWS CLI. Anda dapat menampilkan bantuan untuk perintah AWS CLI untuk Wawasan Performa dengan memasukkan berikut ini di baris perintah.
aws pi help
Jika Anda belum menginstal, lihat AWS CLI Menginstal Antarmuka Baris AWS Perintah di Panduan AWS CLI Pengguna untuk informasi tentang menginstalnya.
Mengambil metrik deret waktu
Operasi GetResourceMetrics mengambil satu atau beberapa metrik deret waktu dari data Wawasan Performa. GetResourceMetrics memerlukan metrik dan periode waktu, dan menampilkan respons dengan daftar poin data.
Misalnya, Konsol Manajemen AWS penggunaan GetResourceMetrics untuk mengisi bagan Metrik Penghitung dan bagan Pemuatan Database, seperti yang terlihat pada gambar berikut.
Semua metrik yang ditampilkan oleh GetResourceMetrics adalah metrik deret waktu standar, dengan pengecualian db.load. Metrik ini ditampilkan dalam bagan Muatan Basis Data. Metrik db.load berbeda dengan metrik deret waktu lainnya karena Anda dapat membaginya menjadi beberapa sub-komponen yang disebut dimensi. Di gambar sebelumnya, db.load dibagi dan dikelompokkan berdasarkan status tunggu yang membentuk db.load.
catatan
GetResourceMetrics juga dapat menampilkan metrik db.sampleload, tetapi metrik db.load sesuai di sebagian besar kasus.
Untuk informasi tentang metrik penghitung yang ditampilkan oleh GetResourceMetrics, lihat Performance Insights untuk metrik counter.
Penghitungan berikut didukung untuk metrik:
-
Rata-rata – Nilai rata-rata untuk metrik selama periode waktu tertentu. Tambahkan
.avgke nama metrik. -
Minimum – Nilai minimum metrik selama periode waktu tertentu. Tambahkan
.minke nama metrik. -
Maksimum – Nilai maksimum metrik selama periode waktu tertentu. Tambahkan
.maxke nama metrik. -
Jumlah – Jumlah nilai metrik selama periode waktu tertentu. Tambahkan
.sumke nama metrik. -
Jumlah sampel – Frekuensi pengumpulan metrik selama periode waktu tertentu. Tambahkan
.sample_countke nama metrik.
Sebagai contoh, misalkan sebuah metrik dikumpulkan selama 300 detik (5 menit), dan metrik tersebut dikumpulkan satu kali setiap menit. Nilai untuk setiap menit adalah 1, 2, 3, 4, dan 5. Dalam kasus ini, penghitungan berikut ditampilkan:
-
Rata-rata – 3
-
Minimum – 1
-
Maksimum – 5
-
Jumlah – 15
-
Jumlah sampel – 5
Untuk informasi tentang menggunakan get-resource-metrics AWS CLI perintah, lihat get-resource-metrics.
Untuk opsi --metric-queries, tentukan satu atau beberapa kueri yang diinginkan untuk mendapatkan hasil. Setiap kueri terdiri dari Metric wajib dan GroupBy opsional serta parameter Filter. Berikut ini adalah contoh spesifikasi opsi --metric-queries.
{ "Metric": "string", "GroupBy": { "Group": "string", "Dimensions": ["string", ...], "Limit": integer }, "Filter": {"string": "string" ...}
AWS CLI contoh untuk Performance Insights
Contoh berikut menunjukkan cara menggunakan Performance AWS CLI Insights.
Topik
Mengambil metrik penghitung
Tangkapan layar berikut menunjukkan dua bagan metrik penghitung dalam Konsol Manajemen AWS.
Contoh berikut menunjukkan cara mengumpulkan data yang sama yang digunakan oleh Konsol Manajemen AWS untuk menghasilkan dua bagan metrik penghitung.
Untuk Linux, macOS, atau Unix:
aws pi get-resource-metrics \ --service-type DOCDB \ --identifier db-ID\ --start-time2022-03-13T8:00:00Z\ --end-time2022-03-13T9:00:00Z\ --period-in-seconds60\ --metric-queries '[{"Metric": "os.cpuUtilization.user.avg" }, {"Metric": "os.cpuUtilization.idle.avg"}]'
Untuk Windows:
aws pi get-resource-metrics ^ --service-type DOCDB ^ --identifier db-ID^ --start-time2022-03-13T8:00:00Z^ --end-time2022-03-13T9:00:00Z^ --period-in-seconds60^ --metric-queries '[{"Metric": "os.cpuUtilization.user.avg" }, {"Metric": "os.cpuUtilization.idle.avg"}]'
Anda juga dapat membuat perintah menjadi lebih mudah dibaca dengan menentukan file untuk opsi --metrics-query. Contoh berikut menggunakan file yang disebut query.json untuk opsi tersebut. File memiliki konten berikut.
[ { "Metric": "os.cpuUtilization.user.avg" }, { "Metric": "os.cpuUtilization.idle.avg" } ]
Jalankan perintah berikut untuk menggunakan file.
Untuk Linux, macOS, atau Unix:
aws pi get-resource-metrics \ --service-type DOCDB \ --identifier db-ID\ --start-time2022-03-13T8:00:00Z\ --end-time2022-03-13T9:00:00Z\ --period-in-seconds60\ --metric-queries file://query.json
Untuk Windows:
aws pi get-resource-metrics ^ --service-type DOCDB ^ --identifier db-ID^ --start-time2022-03-13T8:00:00Z^ --end-time2022-03-13T9:00:00Z^ --period-in-seconds60^ --metric-queries file://query.json
Contoh sebelumnya menentukan nilai-nilai berikut untuk opsi:
-
--service-type-DOCDBuntuk Amazon DocumentDB -
--identifier– ID sumber daya untuk instans DB -
--start-timedan--end-time– NilaiDateTimeISO 8601 untuk periode kueri, dengan berbagai format yang didukung
Ini akan dikueri selama rentang waktu satu jam:
-
--period-in-seconds–60untuk kueri per menit -
--metric-queries– Rangkaian dua kueri, masing-masing hanya untuk satu metrik.Nama metrik menggunakan titik untuk mengklasifikasikan metrik dalam kategori yang berguna, dengan elemen terakhir sebagai fungsi. Dalam contoh, fungsinya adalah
avguntuk setiap kueri. Seperti halnya Amazon CloudWatch, fungsi yang didukung adalahminmax,total, danavg.
Responsnya terlihat seperti berikut.
{ "AlignedStartTime": "2022-03-13T08:00:00+00:00", "AlignedEndTime": "2022-03-13T09:00:00+00:00", "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4", "MetricList": [ { "Key": { "Metric": "os.cpuUtilization.user.avg" }, "DataPoints": [ { "Timestamp": "2022-03-13T08:01:00+00:00", //Minute1 "Value": 3.6 }, { "Timestamp": "2022-03-13T08:02:00+00:00", //Minute2 "Value": 2.6 }, //.... 60 datapoints for the os.cpuUtilization.user.avg metric { "Key": { "Metric": "os.cpuUtilization.idle.avg" }, "DataPoints": [ { "Timestamp": "2022-03-13T08:01:00+00:00", "Value": 92.7 }, { "Timestamp": "2022-03-13T08:02:00+00:00", "Value": 93.7 }, //.... 60 datapoints for the os.cpuUtilization.user.avg metric ] } ] //end of MetricList } //end of response
Respons ini memiliki Identifier, AlignedStartTime, dan AlignedEndTime. B nilai --period-in-seconds adalah 60, waktu mulai dan akhir telah disesuaikan dengan menit. Jika --period-in-seconds adalah 3600, waktu mulai dan akhir akan disesuaikan dengan jam.
MetricList dalam respons memiliki sejumlah entri, masing-masing dengan entri Key dan DataPoints. Masing-masing DataPoint memiliki Timestamp dan Value. Masing-masing daftar Datapoints memiliki 60 poin data karena kueri tersebut adalah untuk data per menit selama satu jam, dengan Timestamp1/Minute1, Timestamp2/Minute2, dan seterusnya, hingga Timestamp60/Minute60.
Karena kueri tersebut adalah untuk dua metrik penghitung yang berbeda, ada dua elemen dalam respons MetricList.
Mengambil rata-rata beban DB untuk status tunggu teratas
Contoh berikut adalah query yang sama yang Konsol Manajemen AWS digunakan untuk menghasilkan grafik garis area bertumpuk. Contoh ini mengambil db.load.avg untuk jam terakhir dengan beban dibagi menurut tujuh status tunggu teratas. Perintah ini sama dengan perintah dalam Mengambil metrik penghitung. Namun, file query.json berisi konten berikut.
[ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.wait_state", "Limit": 7 } } ]
Jalankan perintah berikut.
Untuk Linux, macOS, atau Unix:
aws pi get-resource-metrics \ --service-type DOCDB \ --identifier db-ID\ --start-time2022-03-13T8:00:00Z\ --end-time2022-03-13T9:00:00Z\ --period-in-seconds60\ --metric-queries file://query.json
Untuk Windows:
aws pi get-resource-metrics ^ --service-type DOCDB ^ --identifier db-ID^ --start-time2022-03-13T8:00:00Z^ --end-time2022-03-13T9:00:00Z^ --period-in-seconds60^ --metric-queries file://query.json
Contoh menentukan metrik db.load.avg dan a GroupBy dari tujuh status tunggu teratas. Untuk detail tentang nilai yang valid untuk contoh ini, lihat DimensionGroup dalam Referensi API Wawasan Kinerja.
Responsnya terlihat seperti berikut.
{ "AlignedStartTime": "2022-04-04T06:00:00+00:00", "AlignedEndTime": "2022-04-04T06:15:00+00:00", "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4", "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": "2022-04-04T06:01:00+00:00",//Minute1 "Value": 0.0 }, { "Timestamp": "2022-04-04T06:02:00+00:00",//Minute2 "Value": 0.0 }, //... 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_state.name": "CPU" } }, "DataPoints": [ { "Timestamp": "2022-04-04T06:01:00+00:00",//Minute1 "Value": 0.0 }, { "Timestamp": "2022-04-04T06:02:00+00:00",//Minute2 "Value": 0.0 }, //... 60 datapoints for the CPU key ] },//... In total we have 3 key/datapoints entries, 1) total, 2-3) Top Wait States ] //end of MetricList } //end of response
Dalam tanggapan ini, ada tiga entri dalam. MetricList Ada satu entri untuk totaldb.load.avg, dan tiga entri masing-masing untuk db.load.avg dibagi menurut salah satu dari tiga negara tunggu teratas. Karena ada dimensi pengelompokan (tidak seperti contoh pertama), harus ada satu kunci untuk setiap pengelompokan metrik. Tidak boleh hanya ada satu kunci untuk setiap metrik, seperti dalam kasus penggunaan metrik penghitung dasar.
Mengambil rata-rata beban DB untuk Query teratas
Contoh berikut dikelompokkan db.wait_state oleh 10 pernyataan kueri teratas. Ada dua kelompok berbeda untuk pernyataan kueri:
-
db.query— Pernyataan kueri lengkap, seperti{"find":"customers","filter":{"FirstName":"Jesse"},"sort":{"key":{"$numberInt":"1"}}} -
db.query_tokenized— Pernyataan kueri tokenized, seperti{"find":"customers","filter":{"FirstName":"?"},"sort":{"key":{"$numberInt":"?"}},"limit":{"$numberInt":"?"}}
Saat menganalisis kinerja database, akan berguna untuk mempertimbangkan pernyataan kueri yang hanya berbeda dengan parameternya sebagai satu item logika. Jadi, Anda dapat menggunakan db.query_tokenized saat melakukan kueri. Namun, terutama ketika Anda tertarikexplain(), terkadang lebih berguna untuk memeriksa pernyataan kueri lengkap dengan parameter. Ada hubungan orang tua-anak antara kueri tokenized dan full, dengan beberapa kueri lengkap (turunan) dikelompokkan di bawah kueri tokenized yang sama (induk).
Perintah dalam contoh ini terlihat seperti perintah dalam Mengambil rata-rata beban DB untuk status tunggu teratas. Namun, file query.json berisi konten berikut.
[ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.query_tokenized", "Limit": 10 } } ]
Contoh berikut menggunakan db.query_tokenized.
Untuk Linux, macOS, atau Unix:
aws pi get-resource-metrics \ --service-type DOCDB \ --identifier db-ID\ --start-time2022-03-13T8:00:00Z\ --end-time2022-03-13T9:00:00Z\ --period-in-seconds3600\ --metric-queries file://query.json
Untuk Windows:
aws pi get-resource-metrics ^ --service-type DOCDB ^ --identifier db-ID^ --start-time2022-03-13T8:00:00Z^ --end-time2022-03-13T9:00:00Z^ --period-in-seconds3600^ --metric-queries file://query.json
Contoh ini menanyakan lebih dari 1 jam, dengan satu menit period-in-seconds.
Contoh menentukan metrik db.load.avg dan a GroupBy dari tujuh status tunggu teratas. Untuk detail tentang nilai yang valid untuk contoh ini, lihat DimensionGroup dalam Referensi API Wawasan Kinerja.
Responsnya terlihat seperti berikut.
{ "AlignedStartTime": "2022-04-04T06:00:00+00:00", "AlignedEndTime": "2022-04-04T06:15:00+00:00", "Identifier": "db-NQF3TTMFQ3GTOKIMJODMC3KQQ4", "MetricList": [ {//A list of key/datapoints "Key": { "Metric": "db.load.avg" }, "DataPoints": [ //... 60 datapoints for the total db.load.avg key ] }, { "Key": {//Next key are the top tokenized queries "Metric": "db.load.avg", "Dimensions": { "db.query_tokenized.db_id": "pi-1064184600", "db.query_tokenized.id": "77DE8364594EXAMPLE", "db.query_tokenized.statement": "{\"find\":\"customers\",\"filter\":{\"FirstName\":\"?\"},\"sort\":{\"key\":{\"$numberInt\":\"?\"}},\"limit\" :{\"$numberInt\":\"?\"},\"$db\":\"myDB\",\"$readPreference\":{\"mode\":\"primary\"}}" } }, "DataPoints": [ //... 60 datapoints ] }, // In total 11 entries, 10 Keys of top tokenized queries, 1 total key ] //End of MetricList } //End of response
Respons ini memiliki 11 entri dalam MetricList (total 1, 10 kueri tokenized teratas), dengan setiap entri memiliki 24 per jam. DataPoints
Untuk kueri tokenized, ada tiga entri di setiap daftar dimensi:
-
db.query_tokenized.statement— Pernyataan kueri tokenized. -
db.query_tokenized.db_id— ID sintetis yang dihasilkan Performance Insights untuk Anda. Contoh ini menampilkan ID sintetispi-1064184600. -
db.query_tokenized.id– ID kueri di dalam Wawasan Performa.Dalam Konsol Manajemen AWS, ID ini disebut Support ID. Ini dinamakan ini karena ID adalah data yang AWS Support dapat memeriksa untuk membantu Anda memecahkan masalah dengan database Anda. AWS mengambil keamanan dan privasi data Anda dengan sangat serius, dan hampir semua data disimpan terenkripsi dengan Anda. AWS KMS key Oleh karena itu, tidak ada orang di dalam yang AWS dapat melihat data ini. Di contoh sebelumnya, baik
tokenized.statementmaupuntokenized.db_iddisimpan dengan enkripsi. Jika Anda memiliki masalah dengan database Anda, AWS Support dapat membantu Anda dengan mereferensikan ID Dukungan.
Ketika melakukan kueri, mungkin lebih mudah untuk menentukan Group dalam GroupBy. Namun, untuk kontrol lebih mendetail atas data yang ditampilkan, tentukan daftar dimensi. Misalnya, jika yang dibutuhkan hanya db.query_tokenized.statement, atribut Dimensions dapat ditambahkan ke file query.json.
[ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.query_tokenized", "Dimensions":["db.query_tokenized.statement"], "Limit": 10 } } ]
Mengambil rata-rata beban DB yang disaring oleh Query
Kueri API terkait dalam contoh ini sama seperti perintah di Mengambil rata-rata beban DB untuk Query teratas. Namun, file query.json berisi konten berikut.
[ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.wait_state", "Limit": 5 }, "Filter": { "db.query_tokenized.id": "AKIAIOSFODNN7EXAMPLE" } } ]
Dalam tanggapan ini, semua nilai difilter sesuai dengan kontribusi kueri token AKIAIOSFODNN7 CONTOH yang ditentukan dalam file query.json. Kunci juga mungkin mengikuti urutan yang berbeda dari kueri tanpa filter, karena ini adalah lima status tunggu teratas yang memengaruhi kueri yang difilter.