Sentry.io Управление областями ошибок / контекстами на асинхронном сервере Node.js - PullRequest
0 голосов
/ 25 октября 2019

Обычно у вас есть параллельные запросы в Node.js. И вы, вероятно, хотите дополнить возможные ошибки данными, специфичными для каждого запроса. Эти специфичные для запроса данные могут быть собраны в различных частях приложения через

  • Sentry.configureScope(scope => scope.setSomeUsefulData(...))
  • Sentry.addBreadcrumb({ ... })

Позже где-нибудь вглубокий вложенный асинхронный вызов функции. Выдается ошибка. Как Sentry узнает, какие из ранее собранных данных действительно имеют отношение к этой конкретной ошибке, учитывая, что запросы обрабатываются одновременно, и в момент возникновения ошибки нет доступа к некоторой «области» часового механизма, чтобы получить данные, относящиеся к этому конкретному запросу, что привело кв сообщении об ошибке.

Или я должен пропустить область наблюдения через все мои вызовы функций? Например,

server.on('request', (requestContext) => {
  // Create new Sentry scope
  Sentry.configureScope(sentryScope => {
    Products.getProductById(id, sentryScope); // And pass it on
  });
});

// all the way down until...

function parseNumber(input, sentryScope) {
  // ...
}

Или часовой использует какую-то магию для сопоставления определенных данных с соответствующими событиями? Или я что-то упустил?

...