>백엔드 개발 >파이썬 튜토리얼 >개별 Azure 저장 대기열의 길이를 모니터링하는 방법

개별 Azure 저장 대기열의 길이를 모니터링하는 방법

DDD
DDD원래의
2025-01-27 22:12:11353검색
Azure Storage queue 모니터링 : 단일 대기열의 길이 간단히 말해서 : Azure Storage 큐에는 단일 큐 길이 표시기가 없습니다. 그러나 Azure SDK를 사용하여 쿼리를하고 각 대기열의 길이를 추적 할 수 있습니다. OpenTelemetry를 사용 하여이 데이터를 사용자 정의 표시기로 보냅니다. 예제 항목을 사용하여 Azure 기능을 통해이 프로세스를 자동화하여 신뢰할 수 있고 확장 가능한 모니터링을 달성 할 수 있습니다. Azure를 사용하여 대기열을 저장하고 각 대기열의 길이를 개별적으로 모니터링하기 위해 필요한 (또는 원한다), 나쁜 소식이 있습니다. ? Azure는 내장 인덱스 기능을 통해 전체 스토리지 계정의 총 뉴스 지표 수만 제공합니다. 불행히도, 단일 대기열의 메시지 수를 추적 해야하는 경우,이 내장 된 표시기가 덜 유용합니다. 위의 그림은 내장 된 표시기의 예를 보여줍니다. 주어진 시간에는 두 개의 대기열이 있지만 각 대기열 사이에 얼마나 많은 정보가 있는지 알 수 없습니다. 스크리닝 기능이 비활성화되어 있으며 아래와 같이 큐 메시지에 대한 특정 표시기가 없습니다.

approximate_message_count 단일 대기열의 길이를 모니터링하는 것이 왜 중요한가? <..> 모니터 모니터 단일 큐의 길이가 중요 할 수 있습니다. 그 이유는 다음과 같습니다. 예를 들어, 여러 대기열을 관리하는 경우 다음과 같이 희망 할 수 있습니다.

시스템 중단을 피하기 위해 독성 메시지 큐

추적.

특정 대기열의 압력을 모니터링하여 메시지를 효율적으로 처리하는지 확인하십시오.

스케일링 결정 관리

큐를 관찰함으로써 다른 하중의 성장.

How to Monitor the Length of Your Individual Azure Storage Queues 디버깅 또는 스케일링에 관계없이 각 대기열의 메시지 수를 이해하면 시스템의 건강을 유지하는 데 도움이됩니다.

좋은 소식? Azure는 상자에 사용되는이 기능을 제공하지 않지만이 블로그 에서이 프로세스를 완료하도록 안내하는 간단한 솔루션이 있습니다.

지표를 얻는 방법

앞에서 언급 한 바와 같이, Azure는 단일 스토리지 대기열 길이를 내장 지표로 제공하지 않았습니다. 사람들이 지난 5 년 동안이 기능을 요청한 것을 감안할 때 Microsoft의 경우 표준 지표로 구현하는 것이 간단한 작업이 아닐 수 있습니다. 따라서 솔루션을 찾는 것이 최선의 선택 일 수 있습니다. How to Monitor the Length of Your Individual Azure Storage Queues 당연히, 이것은 그러한 질문으로 이어집니다.

표준 표시기 가이 함수를 제공하지 않으면 다른 방법이 있습니까? >> > Azure Storage Account SDK에주의 깊게 확인하십시오. 큐 속성 는 다른 방법을 통해 필요한 정보에 액세스 할 수 있습니다.

이것을 알면,이 데이터를 사용하여 큐의 길이를 표시기로 추적 할 수 있다면 좋지 않습니까? 이것은 아이디어입니다. 이렇게하면 어떻게해야합니까? ? 각 큐의 길이를 쿼리하고 인덱스 볼륨 및 일반 업데이트를 만들 수 있습니다.

점차적으로 분해합시다.

대기열 길이 를 가져옵니다
  1. Python SDK를 사용하면 큐의 단일 길이를 쉽게 검색 할 수 있습니다. 다음 코드 조각을 참조하십시오

    SDK는 나머지 API에 구축되므로 다른 SDK도 유사한 기능을 제공합니다. 다음은 다른 언어로 된 REST API 및 SDK의 참조입니다.

    REST API-MS-APPROXIMATE MESSAGES-COUNT : int-value
  2. .NET -ApproximateMessagesCount
java -getApproximateMessagesCount ()

<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>
수량 규정을 생성하고 표시 지표

다음으로, 큐 길이를 추적하기위한 정량적 표시기를 만듭니다.
  • 규칙
  • 는 특정 시점 값을 측정하는 표시기 유형으로, 변화하는 큐 길이를 추적하는 데 매우 적합합니다.
  • 이러한 이유로, 우리는
  • opentelemetry 를 사용하여 오픈 소스 관찰 프레임 워크인데, 이는 지표, 추적 및 로그를 수집하는 다기능으로 인해 점점 더 인기가 높아지고 있습니다. 다음은 OpenTeLemetry를 사용하여 대기열 길이를 측정 값으로 보내는 예입니다.
opentelemetry는 다양한 관측 도구 (예 : Prometheus, Azure Application Insights, Grafana 등)와 통합 통합의 또 다른 장점입니다.
  1. 생산 환경에 적응하게 만드십시오

  2. 위의 방법은 실험에 매우 적합하지만 생산 환경에 적응하려면보다 강력한 솔루션이 필요할 수 있습니다. 이것은 탄력성과 확장 성이 재생되는 곳입니다.
생산 환경에서 지속적인 모니터링 큐는 추출 지표만이 아닙니다. 시스템이 신뢰할 수 있고 수요에 따라 확장 될 수 있으며 잠재적 결함 (예 : 네트워크 문제 또는 많은 데이터)을 처리 할 수 ​​있습니다. 예를 들어, 모니터링 프로세스를 중지하기 위해 실패 문의를 원하지 않습니다.

생산 환경에 적응하는 방법을 이해하는 데 관심이 있다면 예제 항목 : Azure-Storage-Veue-Monitor. 이 항목은 타이머 트리거에서 실행되는 Azure 함수에 대해 논의하는 모든 내용을 포장합니다. 탄력성, 동시성 및 확장 성을 처리하여 대기열을 안정적으로 모니터링 할 수 있도록합니다.

결론

이제 단일 대기열의 길이를 추적하고이 기능을 환경에 맞게 설정하는 단계를 마스터했습니다. 시도해 보면 언제든지 경험이나 개선을 공유하십시오 -나는 당신의 아이디어를 듣고 문제가 발생할 때 당신을 도와 드리게되어 기쁩니다! 나는 당신에게 행복한 모니터링을 기원합니다! ?

위 내용은 개별 Azure 저장 대기열의 길이를 모니터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.