метрики хранилища Azure на уровне контейнера

Я имею в виду документацию, предоставленную azure по адресу

https://docs.microsoft.com/en-us/azure/storage/common/storage-metrics-in-azure-monitor#read-metric-values-with-the-net-sdk < / а>

Я внес изменения и заставил код работать для java, используя зависимость azure-mgmt-monitor. Вот код

public void listStorageMetricDefinition() {
    String resourceId = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}";
    String subscriptionId = "*****************************";
    String tenantId = "*****************************";
    String applicationId = "*****************************";
    String accessKey = "*****************************";

    ApplicationTokenCredentials credentials = (ApplicationTokenCredentials) new ApplicationTokenCredentials(
            applicationId, tenantId, accessKey, AzureEnvironment.AZURE).withDefaultSubscriptionId(subscriptionId);
    MonitorManagementClientImpl clientImpl = new MonitorManagementClientImpl(credentials);

    Date startTime = DateTime.now().minusMinutes(30).toDate();
    Date endTime = DateTime.now().toDate();
    //DateTime must be in below format
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    String startInterval = dateFormat.format(startTime);
    String endInterval = dateFormat.format(endTime);
    String timespan = startInterval + "/" + endInterval;
    Period interval = Period.minutes(1);
    String metricNames = "Egress";
    String aggregation = "Total";
    Integer top = null;
    String orderby = null;
    String filter = null;
    String metricNamespace = null;

    ResponseInner response = clientImpl.metrics().list(resourceId, timespan, interval, metricNames, aggregation,
            top, orderby, filter, null, metricNamespace);
    List<MetricInner> value = response.value();
    for (MetricInner metric : value) {
        System.out.println("id " + metric.id());
        System.out.println("name " + metric.name().value());
        System.out.println("type " + metric.type());
        System.out.println("unit " + metric.unit());
        List<TimeSeriesElement> timeseries = metric.timeseries();
        timeseries.forEach(ts -> {
            ts.data().forEach(dt -> {
                System.out.println(dt.timeStamp() + "--" + dt.total());
            });
        });
    }
}

Используя указанное выше, я могу читать значения метрик на уровне учетной записи хранения, но как я могу найти метрики на уровне контейнера? например если у меня есть 3 контейнера в моей учетной записи хранения, мне нужно найти метрики для каждого контейнера, а не для полной учетной записи хранения.

Подскажите, пожалуйста, есть ли другие способы найти метрики на уровне контейнера.


person Prabhat    schedule 03.04.2020    source источник
comment
Насколько мне известно, у нас нет способа получить метрику для контейнера хранилища Azure. Мы просто можем получить метрики для уровня учетной записи хранения Azure или уровня контейнера хранения Azure. Дополнительные сведения см. На странице docs.microsoft.com/en-us/azure/storage/common/   -  person Jim Xu    schedule 07.04.2020
comment
Я нашел решение для этого, мы можем включить аналитику хранилища для учетной записи хранения, которая создаст контейнер с именем $ logs, а затем будет использовать эти журналы для построения ваших метрик, поскольку журналы содержат каждую деталь.   -  person Prabhat    schedule 07.04.2020


Ответы (1)


Прямого способа сделать это нельзя, но этого можно добиться, настроив мониторинг для учетной записи хранения. Перейдите по ссылке ниже, чтобы настроить мониторинг,

https://docs.microsoft.com/en-us/azure/storage/common/storage-monitor-storage-account

После того, как учетная запись хранения настроена для мониторинга, в вашей учетной записи хранения будет создан новый контейнер с именем $ logs. Этот новый контейнер не отображается на портале Azure, но вы можете просмотреть и изучить этот новый контейнер с помощью инструмента Azure Storage Explorer. Ссылка на скачивание инструмента приведена ниже.

https://azure.microsoft.com/en-us/features/storage-explorer/

Журналы внутри контейнера $ logs разделяются по дате и времени в отдельные папки.

/blob/yyyy/MM/dd/HHmm/000000.log

/blob/yyyy/MM/dd/HHmm/000001.log

где mm всегда будет 00.

введите здесь описание изображения

Схему журналов можно найти в документации по Azure по адресу location.

https://docs.microsoft.com/en-us/rest/api/storageservices/storage-analytics-log-format

Можно прочитать файл журнала, используя формат схемы, и создать полезные метрики, если он есть.

person Prabhat    schedule 07.04.2020