全部产品
Search
文档中心

Simple Log Service:Akselerasi Query

更新时间:Jul 02, 2025

Simple Log Service mendukung cache global dan komputasi konkuren untuk mempercepat query pada data deret waktu. Topik ini menjelaskan prinsip-prinsip cache global, komputasi konkuren, serta parameter terkait.

Prinsip

Berikut adalah penjelasan prinsip cache global dan komputasi konkuren.

Cache Global

imageSecara default, mesin komputasi Query Prometheus tidak menyimpan hasil query dalam cache. Setiap kali Anda melakukan query data, semua data dihitung ulang. Hal ini membuat query menjadi tidak efisien, terutama dalam skenario dengan volume data besar dan rentang waktu query panjang. Fitur cache global mendukung penggunaan kembali hasil tertentu dari query yang sama. Jika pernyataan PromQL dan parameter step yang Anda tentukan untuk sebuah query sama dengan pengaturan sebelumnya, kedua query tersebut dianggap identik, dan hasil dari query sebelumnya dapat digunakan kembali. Fitur ini menggunakan kembali hasil query dalam rentang waktu yang sama dan secara terpisah meng-query data di luar rentang waktu tersebut.

Penting
  • Setelah mengaktifkan fitur cache global, sistem mencocokkan rentang waktu query berdasarkan kelipatan bulat dari nilai parameter step. Hal ini meningkatkan rasio hit cache dan efisiensi query. Setelah query selesai, hasilnya diperbarui dalam cache.

  • Untuk menjaga integritas data, hasil query yang tidak lengkap tidak disimpan dalam cache. Hasil query dari data di luar rentang waktu yang tersimpan dalam cache juga tidak disimpan.

Komputasi konkuren

Secara default, data yang diperoleh melalui eksekusi pernyataan query Prometheus standar dihitung pada server dalam satu coroutine. Dalam skenario dengan banyak deret waktu, rentang waktu query panjang, dan logika komputasi kompleks, kecepatan query menjadi lambat. Simple Log Service mengadaptasi mesin Prometheus untuk mendukung query konkuren dan terdistribusi. Fitur komputasi konkuren membagi query PromQL berdasarkan interval waktu atau deret waktu, lalu menjadwalkannya ke beberapa server untuk dieksekusi. Kinerja query pada beberapa server meningkat 2 hingga 10 kali dibandingkan dengan query pada server tunggal.

  • Pembagian Berdasarkan Interval Waktu

    Dalam contoh ini, interval eksekusi query adalah 12 jam. Query dibagi menjadi 6 subquery yang dieksekusi dalam interval 2 jam. Enam subquery ini dijalankan secara konkuren, dan hasilnya digabungkan.

    query:    sum(metric)
    interval: 12h
    step:     2m
  • Pembagian Berdasarkan Deret Waktu

    Dalam contoh ini, sebuah metrik berisi 500.000 deret waktu, dan jumlah tugas konkuren global diatur menjadi 10. Total 10 tugas dijalankan secara konkuren, dengan setiap tugas menghitung data terkait 50.000 deret waktu. Setelah tugas-tugas selesai, hasilnya digabungkan.

Penting
  • Anda tidak perlu khawatir apakah komputasi konkuren berlaku pada query PromQL. Mesin komputasi deret waktu dari Simple Log Service secara otomatis mengidentifikasi query PromQL yang cocok untuk komputasi konkuren dan menjadwalkannya ke beberapa node untuk dieksekusi.

  • Komputasi konkuren cocok untuk skenario dengan rentang waktu query panjang atau jumlah deret waktu besar untuk sebuah metrik. Namun, jika volume data kecil, komputasi konkuren dapat memengaruhi kinerja query. Untuk skenario bisnis dengan rentang waktu query panjang atau jumlah deret waktu besar, kami sarankan mengonfigurasi parameter komputasi konkuren dalam mode HTTP FormValue.

  • Dalam skenario komputasi agregasi, penggunaan Aggregation without() hanya sedikit meningkatkan kinerja komputasi. Sebagai contoh, Anda dapat menggunakan agg without() metric{} untuk melakukan query. Dalam query ini, operasi by dilakukan pada semua label. Jumlah sampel dalam set hasil hampir tidak berkurang karena sejumlah besar hasil antara perlu dirangkum dan di-aggregasi. Kinerja komputasi hanya sedikit meningkat. Jika banyak deret waktu terlibat, bahkan penurunan kinerja mungkin terjadi. Jika Anda melakukan operasi by pada beberapa label, kinerja komputasi juga hanya sedikit meningkat.

Deskripsi Konfigurasi

Tabel berikut menjelaskan parameter yang dapat dikonfigurasikan untuk akselerasi query. Parameter ini dapat dikonfigurasikan dalam mode MetricsConfig atau HTTP FormValue.

Kategori

Parameter

Deskripsi

MetricsConfig

FormValue

Deskripsi

parallel_config

(parameter komputasi konkuren)

enable

Menentukan apakah akan mengaktifkan komputasi konkuren. Secara default, komputasi konkuren dinonaktifkan.

Didukung

Didukung

Komputasi konkuren membagi query menjadi beberapa subquery dan menjadwalkan subquery ke beberapa node komputasi anak untuk dieksekusi. Hasil subquery digabungkan pada node komputasi utama.

mode

Mode yang digunakan untuk mengonfigurasi komputasi konkuren. Nilai valid:

  • auto: Sistem secara otomatis memilih tingkat konkurensi berdasarkan hasil query terbaru.

  • static: Anda perlu mengonfigurasi pembagian waktu dan tingkat konkurensi secara manual.

Didukung

Tidak Didukung

Anda dapat mengonfigurasi komputasi konkuren dalam mode auto atau static. Untuk mengonfigurasi komputasi konkuren dalam mode static, kami sarankan Anda berkonsultasi dengan dukungan teknis Simple Log Service.

timePieceInterval

Interval waktu berdasarkan mana query dibagi. Satuan: detik. Nilai valid: [3600, 86400 × 30]. Nilai default: 21600, yang setara dengan 6 jam.

Didukung

Didukung

Interval waktu berdasarkan mana query dibagi. Satuan: detik. Di konsol Simple Log Service, Anda harus menentukan nilai yang akurat hingga jam.

timePieceCount

Jumlah subquery yang dapat Anda peroleh setelah pembagian berdasarkan interval waktu yang ditentukan. Nilai valid: 1 hingga 16. Nilai default: 8.

Didukung

Didukung

Jumlah subquery yang dapat Anda peroleh setelah pembagian berdasarkan interval waktu yang ditentukan.

totalParallelCount

Jumlah tugas konkuren global. Nilai valid: 2 hingga 64. Nilai default: 8.

Didukung

Didukung

Anda dapat membagi query berdasarkan deret waktu. Parameter ini menentukan jumlah total tugas yang dapat dihasilkan untuk sebuah metrik. Sebagai contoh, sebuah metrik berisi 5 juta deret waktu, dan jumlah tugas konkuren global diatur menjadi 10. Total 10 tugas dijalankan secara konkuren. Setiap tugas menghitung data terkait dengan 500.000 deret waktu.

parallelCountPerHost

Jumlah tugas konkuren pada server. Nilai valid: 1 hingga 8. Nilai default: 2.

Didukung

Didukung

Anda dapat membagi query berdasarkan deret waktu. Tugas-tugas yang diperoleh setelah pembagian dijadwalkan ke server yang berbeda untuk dieksekusi. Parameter ini menentukan jumlah tugas yang diperoleh setelah pembagian pada server.

query_cache_config

(parameter cache global)

enable

Menentukan apakah akan mengaktifkan cache global. Secara default, cache global dinonaktifkan.

Didukung

Didukung

Setelah Anda mengaktifkan cache global, fitur ini dapat menggunakan kembali beberapa hasil dari query yang sama.

Konfigurasikan akselerasi query dalam mode MetricsConfig

MetricsConfig adalah parameter independen yang disediakan oleh Simple Log Service untuk setiap Metricstore. Anda dapat mengonfigurasi parameter MetricsConfig di konsol Simple Log Service atau menggunakan SDK. Setelah mengonfigurasi atau memperbarui parameter MetricsConfig, tunggu selama 3 menit agar konfigurasi berlaku.

Konfigurasikan pengaturan akselerasi query dari Metricstore di konsol Simple Log Service

Di halaman Metricstore Attribute, lakukan operasi berikut. Untuk informasi lebih lanjut tentang cara mengakses halaman Metricstore Attribute, lihat Ubah Konfigurasi Metricstore.

Anda dapat mengonfigurasi komputasi konkuren dalam mode berikut:

  • Dalam mode auto, Simple Log Service memperkirakan tingkat konkurensi untuk tugas komputasi konkuren saat ini berdasarkan jumlah data yang ditarik oleh query yang sama dalam hasil query tugas terbaru.

  • Dalam mode static, Anda dapat mengonfigurasi tingkat konkurensi secara manual. Untuk mengonfigurasi komputasi konkuren dalam mode static, kami sarankan berkonsultasi dengan dukungan teknis Simple Log Service.

image

Konfigurasikan parameter MetricsConfig dari Metricstore menggunakan SDK

Simple Log Service SDK for Java menyediakan operasi yang dapat digunakan untuk memodifikasi parameter MetricsConfig. Anda dapat mengonfigurasi bidang untuk parameter MetricsConfig dalam format JSON. Contoh:

{
  "parallel_config": {
    "enable": true,
    "mode": "static",
    "parallel_count_per_host": 2,
    "time_piece_count": 8,
    "time_piece_interval": 21600,
    "total_parallel_count": 8
  },
  "query_cache_config": {
    "enable": true
  }
}

Tabel berikut menjelaskan pemetaan antara parameter yang digunakan untuk mengonfigurasi akselerasi query, bidang parameter MetricsConfig dalam format JSON, dan bidang kunci dalam parameter FormValue.

Kategori

Parameter

MetricsConfig

FormValue

parallel_config

enable

enable

x-sls-parallel-enable

mode

mode

None

timePieceInterval

time_piece_interval

x-sls-parallel-time-piece-interval

timePieceCount

time_piece_count

x-sls-parallel-time-piece-count

totalParallelCount

total_parallel_count

x-sls-parallel-count

parallelCountPerHost

parallel_count_per_host

x-sls-parallel-count-per-host

query_cache_config

enable

enable

x-sls-global-cache-enable

Konfigurasikan akselerasi query dalam mode HTTP FormValue

Anda dapat mengonfigurasi akselerasi query dalam mode MetricsConfig atau HTTP FormValue. Jika menggunakan mode HTTP FormValue, pengaturan hanya berlaku untuk permintaan saat ini. Untuk informasi lebih lanjut tentang API HTTP terkait Metricstore, lihat Operasi API untuk Query Metrik.

Contoh berikut menjelaskan cara mengonfigurasi cache global dan komputasi konkuren dalam mode HTTP FormValue:

Cache Global

Tambahkan x-sls-global-cache-enable=true untuk mengaktifkan cache global.

https://{project}.{sls-endpoint}/prometheus/{project}/{metricstore}/api/v1/query_range?query=sum(up)&start=1690876800&end=1690877800&step=10&x-sls-global-cache-enable=true

Komputasi konkuren

Tambahkan x-sls-parallel-enable=true&x-sls-parallel-count=16 untuk mengaktifkan komputasi konkuren dan atur tingkat konkurensi menjadi 16.

https://{project}.{sls-endpoint}/prometheus/{project}/{metricstore}/api/v1/query_range?query=sum(up)&start=1690876800&end=1690877800&step=10&x-sls-parallel-enable=true&x-sls-parallel-count=16