Topik ini menjelaskan cara menggunakan operasi GetHistograms untuk mengkueri distribusi log dalam rentang waktu tertentu.
Prasyarat
Layanan Log Sederhana telah diaktifkan.
SDK Layanan Log Sederhana untuk Python telah diinisialisasi.
SDK Layanan Log Sederhana untuk Python telah diinstal. Untuk informasi selengkapnya, lihat Instal SDK Layanan Log Sederhana untuk Python.
Proyek dan penyimpanan log telah dibuat di Layanan Log Sederhana, serta log telah dikumpulkan. Untuk informasi selengkapnya, lihat Kelola proyek, Buat LogStore dasar, dan Pengumpulan data.
Perhatian
Dalam contoh ini, titik akhir publik Layanan Log Sederhana untuk wilayah Tiongkok (Hangzhou) digunakan: https://cn-hangzhou.log.aliyuncs.com.
Jika Anda mengakses Layanan Log Sederhana dari layanan Alibaba Cloud lain yang berada di wilayah yang sama dengan proyek Anda, gunakan titik akhir internal Layanan Log Sederhana: https://cn-hangzhou-intranet.log.aliyuncs.com.
Untuk informasi selengkapnya mengenai wilayah dan titik akhir yang didukung oleh Layanan Log Sederhana, lihat Titik akhir.
Log mentah
body_bytes_sent:1750
host:www.example.com
http_referer:www.example.com
http_user_agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; it-it) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
http_x_forwarded_for:203.0.XX.XX
remote_addr:203.0.XX.XX
remote_user:p288
request_length:13741
request_method:GET
request_time:71
request_uri:/request/path-1/file-1
http_code:200
time_local:11/Aug/2021:06:52:27
upstream_response_time:0.66Kode contoh
Kode berikut mengkueri distribusi permintaan PUT dalam interval satu menit.
import time
import os
from aliyun.log import LogClient
from aliyun.log import GetHistogramsRequest
# Dapatkan ID AccessKey dan AccessKey Secret dari variabel lingkungan.
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# Titik akhir layanan Log Service. Contoh ini menggunakan titik akhir untuk wilayah Tiongkok (Hangzhou). Ganti nilai ini dengan titik akhir wilayah Anda.
endpoint = "cn-hangzhou.log.aliyuncs.com"
# Buat client Log Service.
client = LogClient(endpoint, accessKeyId, accessKey)
# Nama proyek.
project_name = "ali-test-project"
# Nama Logstore.
logstore_name = "ali-test-logstore"
if __name__ == '__main__':
# Kueri distribusi permintaan PUT dalam interval satu menit.
query = "request_method:PUT"
# Rentang waktu kueri, ditentukan dalam timestamp Unix.
from_time = int(time.time()) - 60
to_time = time.time()
# Permintaan kueri.
request = GetHistogramsRequest(project_name, logstore_name, from_time, to_time, "", query)
response = client.get_histograms(request)
# Untuk menyederhanakan output, contoh ini hanya mencetak interval yang berisi data log.
for Histogram in response.get_histograms():
if Histogram.get_count() > 0:
Histogram.log_print()Output contoh menampilkan tiga interval waktu dengan jumlah permintaan masing-masing 83, 32, dan 43. Bidang progress bernilai Complete, yang menunjukkan bahwa kueri telah selesai.
Histogram:
from: 1671002771
to: 1671002780
count: 83
progress: Complete
Histogram:
from: 1671002790
to: 1671002800
count: 32
progress: Complete
Histogram:
from: 1671002800
to: 1671002810
count: 43
progress: CompleteDokumen terkait
Selain SDK aslinya, SLS juga mendukung SDK Alibaba Cloud umum. Untuk informasi selengkapnya, lihat Simple Log Service_SDK Center_Alibaba Cloud OpenAPI Explorer.
Untuk informasi selengkapnya mengenai operasi API ini, lihat Kueri distribusi log.