View a markdown version of this page

Menggunakan logging kueri lambat Amazon Neptune - Amazon Neptune

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan logging kueri lambat Amazon Neptune

Mengidentifikasi, men-debug, dan mengoptimalkan kueri yang berjalan lambat bisa jadi sulit. Ketika logging kueri lambat Neptunus diaktifkan, atribut dari semua kueri yang berjalan lama secara otomatis dicatat untuk membuat proses ini lebih mudah.

catatan

Slow-query logging diperkenalkan di rilis mesin Neptune 1.2.1.0.

Anda mengaktifkan logging kueri lambat menggunakan parameter cluster neptune_en able_slow_query_log DB. Secara default, parameter ini diatur kedisabled. Mengaturnya ke info atau mengaktifkan debug logging kueri lambat. Peng info aturan mencatat beberapa atribut berguna dari setiap kueri yang berjalan lambat, sedangkan debug pengaturan mencatat semua atribut yang tersedia.

Untuk menetapkan ambang batas untuk apa yang dianggap sebagai kueri berjalan lambat, gunakan parameter cluster DB neptune_slow_query_log_untuk menentukan jumlah milidetik setelah kueri yang berjalan dianggap lambat dan dicatat saat logging kueri lambat diaktifkan. Nilai default adalah 5000 milidetik (5 detik).

Anda dapat mengatur parameter cluster DB ini di Konsol Manajemen AWS, atau menggunakan perintah modify-db-cluster-parameter- AWS CLI group, atau fungsi manajemen. ModifyDBClusterParameterGroup

catatan

Parameter pencatatan kueri lambat bersifat dinamis, artinya mengubah nilainya tidak memerlukan atau menyebabkan restart cluster DB Anda.

Untuk melihat log kueri lambat di Konsol Manajemen AWS

Anda dapat melihat dan mengunduh log kueri lambat di Konsol Manajemen AWS, sebagai berikut:

Pada halaman Instans, pilih instance DB, lalu gulir ke bagian Log. Anda kemudian dapat memilih file log di sana dan kemudian memilih Unduh untuk mengunduhnya.

File yang dihasilkan oleh logging kueri lambat Neptunus

File log yang dihasilkan oleh logging kueri lambat di Neptunus memiliki karakteristik sebagai berikut:

  • File dikodekan sebagai UTF-8.

  • Kueri dan atributnya dicatat dalam bentuk JSON.

  • Atribut nol dan kosong tidak dicatat, kecuali untuk queryTime data.

  • Log menjangkau beberapa file, yang jumlahnya bervariasi dengan ukuran instance.

  • Entri log tidak berurutan. Anda dapat menggunakan timestamp nilai-nilai mereka untuk memesannya.

  • Untuk melihat peristiwa terbaru, Anda mungkin harus meninjau semua file log kueri lambat.

  • File log diputar ketika mencapai 100 MiB secara agregat. Pembatasan ini tidak dapat dikonfigurasi.

Atribut kueri yang masuk dalam mode info

Atribut berikut dicatat untuk kueri lambat ketika parameter cluster neptune_enable_slow_query_log DB telah disetel keinfo:

Kelompok Atribut Deskripsi

permintaan ResponseMetadata

requestId

Minta id kueri.

requestType

Jenis permintaan, seperti HTTP atau WebSocket.

responseStatusCode

Kode status respons kueri, seperti 200.

exceptionClass

Kelas pengecualian dari kesalahan dikembalikan setelah eksekusi kueri.

QueryStats

query

String kueri.

queryFingerprint

Sidik jari dari kueri.

queryLanguage

Bahasa kueri, seperti Gremlin, SPARQL atau OpenCypher.

MemoriStats

allocatedPermits

Izin dialokasikan untuk kueri.

approximateUsedMemoryBytes

Perkiraan memori yang digunakan oleh kueri selama eksekusi.

queryTimeStats

startTime

Waktu mulai kueri (UTC).

overallRunTimeMs

Total waktu berjalan kueri, dalam milidetik.

parsingTimeMs

Waktu penguraian kueri, dalam milidetik.

waitingTimeMs

Waktu tunggu Gremlin/SPARQL/openCypher antrian kueri, dalam milidetik

executionTimeMs

Waktu eksekusi kueri, dalam milidetik.

serializationTimeMs

Waktu serialisasi kueri, dalam milidetik.

authTimeMs

Otentikasi kueri dan waktu otorisasi, dalam milidetik.

Penghitung Pernyataan

read

Jumlah pernyataan yang dibaca.

written

Jumlah pernyataan yang ditulis.

deleted

Jumlah pernyataan yang dihapus.

Penghitung Transaksi

committed

Jumlah transaksi yang dilakukan.

rolledBack

Jumlah transaksi dibatalkan.

VertexCounter

added

Jumlah simpul ditambahkan.

removed

Jumlah simpul dihapus.

propertiesAdded

Jumlah properti simpul ditambahkan.

propertiesRemoved

Jumlah properti simpul dihapus.

EdgeCounters

added

Jumlah tepi ditambahkan.

removed

Jumlah tepi dihapus.

propertiesAdded

Jumlah properti tepi ditambahkan.

propertiesRemoved

Jumlah properti tepi dihapus.

Cache Hasil

hitCount

Jumlah hit cache hasil.

missCount

Hitungan kehilangan cache hasil.

putCount

Hitungan pasang cache hasil.

bersamaan ExecutionStats

acceptedQueryCountAtStart

Kueri paralel diterima dengan eksekusi kueri saat ini di awal.

runningQueryCountAtStart

Kueri paralel berjalan dengan eksekusi kueri saat ini di awal.

acceptedQueryCountAtEnd

Kueri paralel diterima dengan eksekusi kueri saat ini di akhir.

runningQueryCountAtEnd

Kueri paralel berjalan dengan eksekusi kueri saat ini di akhir.

QueryBatch

queryProcessingBatchSize

Ukuran batch selama pemrosesan kueri.

querySerialisationBatchSize

Ukuran batch selama serialisasi kueri.

Atribut kueri yang masuk dalam mode debug

Ketika parameter cluster neptune_enable_slow_query_log DB telah disetel kedebug, atribut penghitung penyimpanan berikut dicatat selain atribut yang dicatat sebagai dalam mode: info

Atribut Deskripsi

statementsScannedInAllIndexes

Pernyataan dipindai di semua indeks.

statementsScannedSPOGIndex

Pernyataan dipindai dalam indeks SPOG.

statementsScannedPOGSIndex

Pernyataan dipindai dalam indeks POGS.

statementsScannedGPSOIndex

Pernyataan dipindai dalam indeks GPSO.

statementsScannedOSGPIndex

Pernyataan dipindai dalam indeks OSGP.

statementsScannedInChunk

Pernyataan dipindai bersama dalam potongan.

postFilteredStatementScans

Pernyataan tersisa setelah pemfilteran posting setelah pemindaian.

distinctStatementScans

Pernyataan berbeda dipindai.

statementsReadInAllIndexes

Pernyataan dibaca setelah memindai pemfilteran pos di semua indeks.

statementsReadSPOGIndex

Pernyataan dibaca setelah memindai pemfilteran pos dalam indeks SPOG.

statementsReadPOGSIndex

Pernyataan dibaca setelah memindai pemfilteran pos dalam indeks POGS.

statementsReadGPSOIndex

Pernyataan dibaca setelah pemindaian posting pemfilteran dalam indeks GPSO.

statementsReadOSGPIndex

Pernyataan dibaca setelah pemindaian posting pemfilteran dalam indeks OSGP.

accessPathSearches

Jumlah pencarian jalur akses.

fullyBoundedAccessPathSearches

Jumlah pencarian jalur akses kunci yang sepenuhnya dibatasi.

accessPathSearchedByPrefix

Jumlah jalur akses yang dicari berdasarkan awalan.

searchesWhereRecordsWereFound

Jumlah pencarian yang memiliki 1 atau lebih catatan sebagai output.

searchesWhereRecordsWereNotFound

Jumlah pencarian yang tidak memiliki catatan sebagai output.

totalRecordsFoundInSearches

Total catatan yang ditemukan dari semua pencarian.

statementsInsertedInAllIndexes

Jumlah pernyataan yang dimasukkan dalam semua indeks.

statementsUpdatedInAllIndexes

Jumlah pernyataan yang diperbarui di semua indeks.

statementsDeletedInAllIndexes

Jumlah pernyataan yang dihapus di semua indeks.

predicateCount

Jumlah predikat.

dictionaryReadsFromValueToIdTable

Jumlah kamus yang dibaca dari nilai ke tabel ID.

dictionaryReadsFromIdToValueTable

Jumlah kamus yang dibaca dari ID tabel nilai.

dictionaryWritesToValueToIdTable

Jumlah kamus menulis ke nilai ke tabel ID.

dictionaryWritesToIdToValueTable

Jumlah kamus menulis ke ID ke tabel nilai.

rangeCountsInAllIndexes

Jumlah penghitungan rentang di semua indeks.

deadlockCount

Jumlah kebuntuan dalam kueri.

singleCardinalityInserts

Jumlah sisipan kardinitas tunggal yang dilakukan.

singleCardinalityInsertDeletions

Jumlah pernyataan yang dihapus selama penyisipan kardinalitas tunggal.

sharedLocksWaitTimeMillis

Jumlah milidetik yang dihabiskan menunggu kunci bersama.

exclusiveLocksWaitTimeMillis

Jumlah milidetik yang dihabiskan menunggu kunci eksklusif.

Contoh pencatatan debug untuk kueri lambat

Kueri Gremlin berikut bisa memakan waktu lebih lama untuk dijalankan daripada ambang batas yang ditetapkan untuk kueri lambat:

gremlin=g.V().has('code','AUS').repeat(out().simplePath()).until(has('code','AGR')).path().by('code').limit(20).fold()

Kemudian, jika logging kueri lambat diaktifkan dalam mode debug, atribut berikut akan dicatat untuk kueri, dalam bentuk seperti ini:

{ "requestResponseMetadata": { "requestId": "5311e493-0e98-457e-9131-d250a2ce1e12", "requestType": "HTTP_GET", "responseStatusCode": 200 }, "queryStats": { "query": "gremlin=g.V().has('code','AUS').repeat(out().simplePath()).until(has('code','AGR')).path().by('code').limit(20).fold()", "queryFingerprint": "g.V().has(string0,string1).repeat(__.out().simplePath()).until(__.has(string0,string2)).path().by(string0).limit(long0).fold()", "queryLanguage": "Gremlin" }, "memoryStats": { "allocatedPermits": 20, "approximateUsedMemoryBytes": 14838 }, "queryTimeStats": { "startTime": "23/02/2023 11:42:52.657", "overallRunTimeMs": 2249, "executionTimeMs": 2229, "serializationTimeMs": 13 }, "statementCounters": { "read": 69979 }, "transactionCounters": { "committed": 1 }, "concurrentExecutionStats": { "acceptedQueryCountAtStart": 1 }, "queryBatchStats": { "queryProcessingBatchSize": 1000, "querySerialisationBatchSize": 1000 }, "storageCounters": { "statementsScannedInAllIndexes": 69979, "statementsScannedSPOGIndex": 44936, "statementsScannedPOGSIndex": 4, "statementsScannedGPSOIndex": 25039, "statementsReadInAllIndexes": 68566, "statementsReadSPOGIndex": 43544, "statementsReadPOGSIndex": 2, "statementsReadGPSOIndex": 25020, "accessPathSearches": 27, "fullyBoundedAccessPathSearches": 27, "dictionaryReadsFromValueToIdTable": 10, "dictionaryReadsFromIdToValueTable": 17, "rangeCountsInAllIndexes": 4, "sharedLocksWaitTimeMillis": 0, "exclusiveLocksWaitTimeMillis": 0 } }