Служебная шина Тема / Очередь Мониторинг на размер приближается к своему пределу - PullRequest
0 голосов
/ 27 мая 2018

У нас есть довольно много тем / очередей служебной шины Azure.Любая данная тема имеет МАКСИМАЛЬНЫЙ РАЗМЕР, и ее можно достичь этого предела по различным причинам, не связанным с загрузкой, а именно.неподтвержденные подписки, прикрепленные к теме и т. д.

У нас было несколько сбоев, когда тема достигла своих предельных размеров, поскольку у нас были неподтвержденные подписки.Мы ищем фундаментальный мониторинг, где

  1. Если размер темы> X% от МАКСИМАЛЬНОГО РАЗМЕРА, мы получаем электронное письмо / уведомление.
  2. Любая тема в производственном пространстве имен должна автоматически добавляться в мониторинг.Для dev можно забыть добавить мониторинг
    при добавлении новой темы в пространство имен.

Хотя 2. хорошо иметь, но иметь только 1. тоже хорошо.

Сервисная шина Azure в настоящее время имеет «Метрики» в предварительном просмотре, и есть несколько метрик, которые мы можем настроить, чтобы получать оповещения.Похоже, что это на очень ранних стадиях, и даже вышеупомянутое требование не может быть выполнено.

Я что-то упустил или мне нужно создать пользовательский мониторинг с использованием функций Azure / приложений логики, вызвав API-интерфейсы REST, выставленные по адресу - https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/monitoring-supported-metrics?redirectedfrom=MSDN#microsoftservicebusnamespaces

https://www.servicebus360.com/, для продажи вышеуказанной функциональностино мое требование очень элементарно.

Ответы [ 2 ]

0 голосов
/ 21 июня 2018

Размер очереди / темы теперь доступен в Azure Monitor Metrics .Как и на этапе предварительного просмотра, значения могут не отражаться мгновенно.Но эти показатели можно отслеживать с помощью Azure Monitor , который также находится на этапе предварительного просмотра.

0 голосов
/ 02 июня 2018

Да, можно получить подробные сведения об использовании пространства Azure Service Bus Queues.Ниже приведен пример консольного приложения (C # + .NET Framework 4.7 + WindowsAzure.ServiceBus 4.1.10), которое вычисляет свободное пространство в данной очереди.Используйте TopicDescription для тем.

private static async Task GetFreeSpace(string connectionString, string queueName)
{
    if (string.IsNullOrWhiteSpace(connectionString))
    {
        throw new ArgumentException("Service bus connection string cannot be null, empty or whitespace.");
    }

    if (string.IsNullOrWhiteSpace(queueName))
    {
        throw new ArgumentException("Service bus queue name cannot be null, empty or whitespace.");
    }

    NamespaceManager nm = NamespaceManager.CreateFromConnectionString(connectionString);
    QueueDescription queueDescription = await nm.GetQueueAsync(queueName);

    double spaceUsedInMB = 0;
    double freeSpaceInMB = 0;
    double percentageFreeSpace = 100;

    if (queueDescription.SizeInBytes > 0)
    {
        spaceUsedInMB = (queueDescription.SizeInBytes / 1024.0 / 1024.0);
        freeSpaceInMB = queueDescription.MaxSizeInMegabytes - spaceUsedInMB;
        percentageFreeSpace = 100 * freeSpaceInMB / queueDescription.MaxSizeInMegabytes;
    }

    Console.WriteLine($"Max Size (MB) = {queueDescription.MaxSizeInMegabytes:0.00000}");
    Console.WriteLine($"Used Space (MB) = {spaceUsedInMB:0.00000}");
    Console.WriteLine($"Free Space (MB) = {freeSpaceInMB:0.00000}");
    Console.WriteLine($"Free Space (%) = {percentageFreeSpace:0.00000}");
}

Вот содержимое файла packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="WindowsAzure.ServiceBus" version="4.1.10" targetFramework="net47" />
</packages>

Это можно автоматизировать с помощью таймера, если он соответствует вашим требованиям.Более подробную информацию можно найти по адресу https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer.

Кроме того, согласно документации https://docs.microsoft.com/en-us/powershell/module/azurerm.servicebus/get-azurermservicebusqueue?view=azurermps-6.1.0 эти данные также можно получить с помощью PowerShell.

...