ОтелНаблюдательИсточникаДанных
Наблюдатель источника данных entity, переводящий его события в спаны и метрики OpenTelemetry. Реализует интерфейс НаблюдательИсточникаДанных библиотеки entity.
Описание
Регистрируется на источнике данных методом ДобавитьНаблюдателя и получает события всех менеджеров, созданных из этого источника. Каждое событие entity приходит наблюдателю дважды: в ПередСобытием он начинает спан и делает его текущим, в ПослеСобытия - дописывает результат и ошибку, закрывает область, завершает спан и пишет метрики. Спан хранится в состоянии события, поэтому наблюдатель не держит общего состояния и безопасен для одновременных вызовов из разных потоков исполнения.
| Вид события entity | Спан | Метрики |
|---|---|---|
| Операция | INTERNAL {Операция} {ТипСущности} | entity.operation.duration, entity.entities |
| Запрос | CLIENT {Операция} {Таблица} | db.client.operation.duration |
| Соединение | - | db.client.connection.count, .max, .pending_requests, .wait_time, .create_time, .timeouts |
| Транзакция | - | entity.transactions |
Конструктор
ПриСозданииОбъекта
&Реализует("НаблюдательИсточникаДанных")
Процедура ПриСозданииОбъекта(Знач ПТрассировщик, Знач ПМетр = Неопределено, Знач Настройки = Неопределено)Параметры:
ПТрассировщик-ОтелТрассировщик,Неопределено- трассировщик, которым создаются спаны.Неопределеновыключает трассировку.ПМетр-ОтелМетр,Неопределено- метр, в котором регистрируются инструменты.Неопределеновыключает метрики.Настройки-Структура,Неопределено- настройки наблюдателя:ТекстЗапроса-Булево- писать текст запроса в атрибутdb.query.text. По умолчаниюИстина.Метрики-Булево- регистрировать инструменты и писать метрики. По умолчаниюИстина.
Инструменты метрик регистрируются в конструкторе, поэтому один метр на несколько наблюдателей (несколько источников данных) дает одни и те же инструменты: SDK возвращает уже зарегистрированный инструмент по имени.
Методы
ПередСобытием
Процедура ПередСобытием(Событие) ЭкспортНачинает спан операции или запроса с описательными атрибутами и делает его текущим. События соединений и транзакций спанов не порождают.
Параметры:
Событие-СобытиеИсточникаДанных- начатое событие.
ПослеСобытия
Процедура ПослеСобытия(Событие) ЭкспортДописывает в спан число строк и ошибку (событие exception, статус Error, атрибут error.type), закрывает область спана, завершает его и пишет метрики события.
Параметры:
Событие-СобытиеИсточникаДанных- завершенное событие.
Пример
Сдк = ОтелАвтоконфигурация.Инициализировать();
Наблюдатель = Новый ОтелНаблюдательИсточникаДанных(
Сдк.ПолучитьТрассировщик("entity"),
Сдк.ПолучитьМетр("entity"),
Новый Структура("ТекстЗапроса", Ложь)
);
Источник.ДобавитьНаблюдателя(Наблюдатель);
МенеджерСущностей = Новый МенеджерСущностей(Источник);