Topik ini menjelaskan cara memanggil operasi GetHistograms dari Simple Log Service SDK for Python untuk memeriksa distribusi log dalam rentang waktu tertentu, serta menyediakan contoh kode.
Prasyarat
Pengguna Resource Access Management (RAM) telah dibuat dan izin yang diperlukan telah diberikan kepada pengguna RAM. Untuk informasi lebih lanjut, lihat Buat Pengguna RAM dan Berikan Izin kepada Pengguna RAM.
Variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi. Untuk informasi lebih lanjut, lihat Konfigurasikan Variabel Lingkungan di Linux, macOS, dan Windows.
PentingPasangan AccessKey dari akun Alibaba Cloud memiliki izin untuk semua operasi API. Kami menyarankan Anda menggunakan pasangan AccessKey dari pengguna RAM untuk memanggil operasi API atau melakukan pemeliharaan rutin O&M.
Kami menyarankan Anda tidak menyimpan ID AccessKey atau rahasia AccessKey dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor, dan keamanan semua sumber daya dalam akun Anda dapat terganggu.
Simple Log Service SDK for Python telah diinstal. Untuk informasi lebih lanjut, lihat Instal Simple Log Service SDK for Python.
Log telah ditulis ke penyimpanan log. Untuk informasi lebih lanjut, lihat Ikhtisar Pengumpulan Data.
Catatan penggunaan
Dalam contoh ini, titik akhir publik Layanan Log Sederhana untuk wilayah Tiongkok (Hangzhou) digunakan, yaitu https://cn-hangzhou.log.aliyuncs.com. Jika Anda ingin mengakses Layanan Log Sederhana dengan menggunakan layanan Alibaba Cloud lainnya yang berada di wilayah yang sama dengan proyek Anda, Anda dapat menggunakan titik akhir internal Layanan Log Sederhana, yaitu https://cn-hangzhou-intranet.log.aliyuncs.com. Untuk informasi lebih lanjut tentang 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.66Contoh kode
Berikut ini adalah contoh kode yang menunjukkan cara memeriksa distribusi permintaan PUT dalam 1 menit:
import time
import os
from aliyun.log import LogClient
from aliyun.log import GetHistogramsRequest
# Konfigurasikan variabel lingkungan. Dalam contoh ini, ID AccessKey dan rahasia AccessKey diperoleh 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 Sederhana. Dalam contoh ini, titik akhir Layanan Log Sederhana untuk wilayah Tiongkok (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir sebenarnya.
endpoint = "cn-hangzhou.log.aliyuncs.com"
# Buat klien Layanan Log Sederhana.
client = LogClient(endpoint, accessKeyId, accessKey)
# Nama proyek.
project_name = "ali-test-project"
# Nama penyimpanan log.
logstore_name = "ali-test-logstore"
if __name__ == '__main__':
# Periksa distribusi permintaan PUT dalam 1 menit.
query = "request_method:PUT"
# Konfigurasikan parameter from_time dan to_time untuk menentukan waktu mulai dan waktu akhir rentang waktu tempat Anda ingin memeriksa log. Atur nilainya ke 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)
# Hanya subinterval tempat log didistribusikan yang dikembalikan.
for Histogram in response.get_histograms():
if Histogram.get_count() > 0:
Histogram.log_print()Berikut ini adalah contoh hasil yang diharapkan. Jumlah permintaan untuk tiga subinterval dalam 1 menit adalah 83, 32, dan 43, dan hasilnya lengkap.
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: CompleteReferensi
Layanan Log Sederhana juga kompatibel dengan SDK Alibaba Cloud. Untuk informasi lebih lanjut, lihat Layanan Log Sederhana_Pusat SDK_Alibaba Cloud OpenAPI Explorer.
Layanan Log Sederhana menyediakan antarmuka baris perintah (CLI) untuk memenuhi persyaratan konfigurasi otomatis dalam Layanan Log Sederhana. Untuk informasi lebih lanjut, lihat Ikhtisar CLI Layanan Log Sederhana.
Untuk informasi lebih lanjut tentang operasi GetHistograms, lihat GetHistograms.
Untuk informasi lebih lanjut tentang contoh kode, lihat Alibaba Cloud Simple Log Service SDK for Python di GitHub.