Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Memantau Panjang Barisan Storan Azure Individu Anda
Pemantauan Baris Gilir Storan Azure: Menjejaki Panjang Baris Individu
Ringkasnya: Baris Storan Azure tidak mempunyai metrik panjang baris gilir individu terbina dalam. Walau bagaimanapun, anda boleh menggunakan SDK Azure untuk membuat pertanyaan approximate_message_count
dan menjejaki panjang setiap baris gilir. Gunakan OpenTelemetry untuk mengeluarkan data ini sebagai metrik tersuai. Contoh projek tersedia untuk mengautomasikan proses ini melalui Azure Functions, membolehkan pemantauan yang boleh dipercayai dan berskala.
Jika anda menggunakan Azure Storage Queues dan perlu (atau hanya mahu) memantau panjang setiap baris gilir secara individu, saya ada berita buruk. ?
Azure hanya menyediakan jumlah metrik kiraan mesej untuk keseluruhan akaun storan melalui ciri metrik terbina dalamnya. Malangnya, ini menjadikan metrik terbina dalam ini kurang berguna jika anda perlu menjejak bilangan mesej untuk satu baris gilir.
Imej di atas menunjukkan contoh penunjuk terbina dalam. Terdapat dua baris gilir pada bila-bila masa, tetapi kami tidak mempunyai cara untuk mengenal pasti bilangan mesej dalam setiap baris gilir. Penapisan dilumpuhkan dan tiada metrik khusus untuk kiraan mesej baris gilir seperti yang ditunjukkan di bawah.
Mengapa penting untuk memantau panjang baris gilir individu?
Memantau panjang baris gilir individu mungkin penting atas sebab berikut. Contohnya, jika anda menguruskan berbilang baris gilir, anda mungkin mahu:
Sama ada anda sedang menyahpepijat atau menskalakan, mengetahui kiraan mesej setiap baris gilir membantu memastikan sistem anda sihat.
Berita baik?
Walaupun Azure tidak menyediakan fungsi ini di luar kotak, terdapat penyelesaian yang mudah dan catatan blog ini akan membimbing anda melalui proses tersebut.
Seperti yang dinyatakan sebelum ini, Azure tidak menyediakan panjang gilir storan individu sebagai metrik terbina dalam. Memandangkan orang ramai telah meminta ciri ini sejak lima tahun yang lalu, ia mungkin bukan tugas yang mudah untuk Microsoft melaksanakannya sebagai metrik standard. Oleh itu, mencari penyelesaian mungkin pilihan terbaik anda.
Sememangnya, ini membawa kepada soalan: Jika penunjuk standard tidak menyediakan fungsi ini, adakah terdapat cara lain untuk mendapatkannya? ?
Tinjauan lebih dekat pada SDK Akaun Storan Azure mendedahkan sifat baris gilir approximate_message_count
yang memberi anda akses kepada maklumat yang anda perlukan - hanya melalui kaedah yang berbeza.
Mengetahui perkara ini, bukankah bagus jika anda boleh menggunakan data ini untuk menjejak panjang baris gilir sebagai metrik?
Berikut ialah pemikiran: Bagaimana jika anda melakukan ini? ?
Anda boleh menanyakan panjang setiap giliran, membuat volum indeks dan kemas kini biasa.
marilah kita secara beransur -ansur menguraikannya.
Menggunakan Python SDK, anda boleh mendapatkan panjang satu giliran dengan mudah. Lihat fragmen kod berikut:
<code class="language-python">from azure.identity import DefaultAzureCredential from azure.storage.queue import QueueClient STORAGE_ACCOUNT_URL = "<storage-account-url>" QUEUE_NAME = "<queue-name>" STORAGE_ACCOUNT_KEY = "<key>" credentials = STORAGE_ACCOUNT_KEY or DefaultAzureCredential() client = QueueClient( STORAGE_ACCOUNT_URL, queue_name=QUEUE_NAME, credential=credentials, ) try: properties = client.get_queue_properties() message_count = properties.approximate_message_count print(message_count) except Exception as e: logger.exception(e)</code>
Sejak SDK dibina di atas API REST, SDK lain juga menyediakan fungsi yang sama. Berikut adalah rujukan API REST dan SDK dalam bahasa lain:
Seterusnya, anda membuat penunjuk kuantitatif untuk mengesan panjang giliran.
PeraturanOpenTelemetryadalah jenis penunjuk yang mengukur nilai titik masa tertentu, yang menjadikannya sangat sesuai untuk menjejaki panjang giliran yang berubah.
Atas sebab ini, kami akan menggunakan
, yang merupakan rangka kerja pemerhatian sumber terbuka, yang menjadi lebih popular kerana pelbagai fungsi dalam mengumpul petunjuk, penjejakan dan balak. Berikut adalah contoh menggunakan OpenTelemetry untuk menghantar panjang giliran sebagai ukuran:
OpenTelemetry adalah satu lagi kelebihan integrasi bersepadu dengan pelbagai alat pemerhatian (seperti Prometheus, Azure Application Insights, Grafana, dll.).<code class="language-python">from opentelemetry.metrics import Meter, get_meter_provider meter = get_meter_provider().get_meter(METER_NAME) gauge = meter.create_gauge( name=gauge_name, description=gauge_description, unit="messages" ) new_length = None ⋮ # 获取 approximate_message_count 并将其设置为 new_length 的代码 gauge.set(new_length)</code>
Dalam persekitaran pengeluaran, barisan pemantauan berterusan bukan sekadar penunjuk pengekstrakan. Anda perlu memastikan bahawa sistem itu boleh dipercayai, boleh diperluaskan mengikut permintaan, dan boleh menangani kesalahan yang berpotensi (seperti masalah rangkaian atau banyak data). Sebagai contoh, anda tidak mahu pertanyaan kegagalan untuk menghentikan proses pemantauan anda.
Jika anda berminat untuk memahami bagaimana menjadikannya menyesuaikan diri dengan persekitaran pengeluaran, saya telah mencipta item contoh: Azure-Storage-Queue-Monitor. Item ini membungkus semua kandungan yang kita bincangkan dengan fungsi azure yang berjalan pada pemicu pemasa. Ia memproses keanjalan, kesesuaian dan skalabiliti untuk memastikan bahawa anda boleh memantau barisan dengan pasti.
Kesimpulan
Atas ialah kandungan terperinci Cara Memantau Panjang Barisan Storan Azure Individu Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!