Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Memantau Panjang Barisan Storan Azure Individu Anda

Cara Memantau Panjang Barisan Storan Azure Individu Anda

DDD
DDDasal
2025-01-27 22:12:11353semak imbas

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.

How to Monitor the Length of Your Individual Azure Storage Queues

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.

How to Monitor the Length of Your Individual Azure Storage Queues

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:

  • Jejaki baris gilir mesej racun untuk mengelakkan gangguan sistem.
  • Pantau tekanan pada baris gilir tertentu untuk memastikan ia memproses mesej dengan cekap.
  • Urus keputusan penskalaan dengan memerhati pertumbuhan baris gilir di bawah beban yang berbeza.

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.

Cara mendapatkan metrik anda

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.

  1. Dapatkan panjang giliran

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:

  • Rest API-X-MS-Resproximate-Mesej-Messages: Int-value
  • .net -approximatemessagescount
  • java -getApproximateMessagesCount ()
  1. Buat peraturan kuantiti dan menghantar petunjuk

Seterusnya, anda membuat penunjuk kuantitatif untuk mengesan panjang giliran.

Peraturan

adalah jenis penunjuk yang mengukur nilai titik masa tertentu, yang menjadikannya sangat sesuai untuk menjejaki panjang giliran yang berubah.

Atas sebab ini, kami akan menggunakan
OpenTelemetry

, 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>

    menjadikannya menyesuaikan diri dengan persekitaran pengeluaran
  1. Walaupun kaedah di atas sangat sesuai untuk eksperimen, anda mungkin memerlukan penyelesaian yang lebih kuat untuk menyesuaikan diri dengan persekitaran pengeluaran. Di sinilah keanjalan dan skalabilitas bermain.

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

Sekarang anda telah menguasai langkah -langkah untuk mengesan panjang giliran tunggal dan menggunakannya sebagai penunjuk tersuai. Jika anda mencubanya, sila kongsi pengalaman atau peningkatan anda pada bila -bila masa -saya gembira mendengar idea anda dan membantu anda apabila anda menghadapi sebarang masalah!

Saya doakan pemantauan yang gembira! ?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn