Skip to content

ОтелРезультатПроизводстваМетрик ​

Результат Произвести продюсера метрик: статус и произведённые метрики.

Описание ​

Продюсер метрик (ИнтерфейсПродюсерМетрик) возвращает этот объект из Произвести: так читатель узнаёт, произведены ли метрики, завершилось ли производство ошибкой или не уложилось в таймаут (спецификация Metrics SDK, раздел Produce batch: Produce SHOULD provide a way to let the caller know whether it succeeded, failed or timed out).

Статус — строка:

СтатусКонстантаЧто делает читатель
"Success"СтатусУспех()Добавляет Метрики к данным сбора
"Failure"СтатусОшибка()Пишет в лог предупреждение со статусом и СообщениеОшибки, метрики не использует; результат сбора — ошибка
"Timeout"СтатусТаймаут()Пишет в лог предупреждение, метрики не использует; результат сбора — таймаут, если других сбоев нет

Другой статус читатель считает ошибкой, как "Failure".

Константы статусов — методы объекта, поэтому в конструктор статус передают строкой. Поля результата — экспортные переменные: их можно задать и после создания объекта.

Конструктор ​

bsl
Новый ОтелРезультатПроизводстваМетрик(НачальныйСтатус, НачальныеМетрики, НачальноеСообщение)
ПараметрТипПо умолчаниюОписание
НачальныйСтатусСтрока"Success"Статус: "Success", "Failure" или "Timeout"
НачальныеМетрикиМассив из ОтелДанныеМетрики, НеопределеноНеопределеноПроизведённые метрики (ОтелДанныеМетрики); Неопределено — пустой массив
НачальноеСообщениеСтрока""Сообщение об ошибке для статусов "Failure" и "Timeout"

Свойства ​

СвойствоТипПо умолчаниюОписание
СтатусСтрока"Success"Статус результата
МетрикиМассив из ОтелДанныеМетрикипустой массивПроизведённые метрики; читатель берёт их только при статусе "Success"
СообщениеОшибкиСтрока""Сообщение об ошибке; читатель пишет его в лог

Методы ​

СтатусУспех ​

Возвращает константу статуса успешного производства.

Возвращает: Строка — "Success"


СтатусОшибка ​

Возвращает константу статуса ошибки.

Возвращает: Строка — "Failure"


СтатусТаймаут ​

Возвращает константу статуса таймаута: продюсер не уложился в отведённое время.

Возвращает: Строка — "Timeout"


Успех ​

Проверяет, что производство успешно. Так читатели проверяют результат продюсера.

Возвращает: Булево — Истина, если Статус равен "Success"

Пример ​

bsl
// Успех: метрики продюсера
Метрики = Новый Массив();
Метрики.Добавить(Данные); // ОтелДанныеМетрики
Результат = Новый ОтелРезультатПроизводстваМетрик("Success", Метрики);

// Ошибка источника
Результат = Новый ОтелРезультатПроизводстваМетрик("Failure", , "Источник метрик недоступен");

// Таймаут: статус по константе объекта
Результат = Новый ОтелРезультатПроизводстваМетрик();
Результат.Статус = Результат.СтатусТаймаут();
Результат.СообщениеОшибки = "Источник не ответил в срок";

// Проверка результата, например в тесте продюсера
Результат = Продюсер.Произвести(Новый ОтелРесурс(), 0);
Если Результат.Успех() Тогда
    Для Каждого Данные Из Результат.Метрики Цикл
        Сообщить(Данные.Имя());
    КонецЦикла;
Иначе
    Сообщить(Результат.Статус + ": " + Результат.СообщениеОшибки);
КонецЕсли;

См. также ​