Наблюдение за жизненным циклом запроса SequelizeMySql

Форум по Mysql
Anonymous
Наблюдение за жизненным циклом запроса Sequelize

Сообщение Anonymous »

Я пытаюсь отладить полный жизненный цикл SQL.
В моем проекте NestJS я использую Sequelize.
Я добавил два перехватчика :

Код: Выделить всё

 sequelize.addHook('beforeFind', (options) => {
const transaction = apm.currentTransaction;
if (transaction) {
const span = transaction.startSpan('SQL Query', 'db');
(options as any).apmSpan = span;
}
});

sequelize.addHook(
'afterFind',
async (
instancesOrInstance: Model | readonly Model[],
options: FindOptions,
) => {

const span = (options as any).apmSpan;
if (span) {
span.end();
}
},
);
В Kibana APM для некоторых запросов я вижу следующее:
[img]https:/ /i.sstatic.net/cWdFZ40g.png[/img]

Я хочу получить дополнительную информацию о том, что происходит между ловушкой beforeFind и первым запросом, отправленным в базу данных. Кроме того, что происходит, например, между двумя последовательными запросами?
Конкретно хотелось бы понять:
1)Сколько времени тратится на соединение в базу данных?
2)Сколько времени тратится на транспортировку данных после того, как база данных вернет ответ по сети?
3)Сколько времени тратится на сериализацию данных?
Как я могу отладить эти шаги в Секвелизация или APM?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ycle-watch

Вернуться в «MySql»