Инвариантные нарушения группируются в отчетах об ошибках Stackdriver

Я часто использую "инвариантный" модуль npm в своем коде, чтобы выполнять проверки во время выполнения и выдавать ошибки. Проблема в том, что отчеты об ошибках Stackdriver, кажется, группируют все эти ошибки вместе, потому что они происходят из одной и той же функции и / или начинаются с фразы «Нарушение инварианта ...».

Есть ли способ предотвратить такое группирование без рефакторинга всего кода?

Для меня это большая проблема, потому что некоторые критические ошибки не обнаруживаются и не регистрируются как новые, так что это в некотором роде решает большую часть того, почему у меня вообще есть отчеты об ошибках.

----- некоторые образцы ----

{ Invariant Violation: You are not allowed to report the same data as the previous report
    at invariant (/srv/node_modules/invariant/invariant.js:40:15)
    at Object.<anonymous> (/srv/src/modules/loads/respond.ts:123:5)
    at Generator.next (<anonymous>)
    at fulfilled (/srv/build/modules/loads/respond.js:4:58)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7) name: 'Invariant Violation', framesToPop: 1 }

{ Invariant Violation: User uoipWa1yARgdudN4mFmtYrYoOID3 is not subscribed to flight 2f0291571b06322e2737b627fdca2ff0
    at invariant (/srv/node_modules/invariant/invariant.js:40:15)
    at Object.<anonymous> (/srv/src/modules/loads/request.ts:373:3)
    at Generator.next (<anonymous>)
    at fulfilled (/srv/build/modules/loads/request.js:4:58)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7) name: 'Invariant Violation', framesToPop: 1 }

person Thijs Koerselman    schedule 19.04.2019    source источник
comment
Не могли бы вы привести пару примеров того, как выглядит полученный стек / исключение?   -  person Kirk Kelsey    schedule 31.05.2019
comment
Я добавил несколько образцов   -  person Thijs Koerselman    schedule 02.06.2019


Ответы (1)


Мое лучшее предложение - исправить нарушения инвариантов, а затем пометить группу ошибок как "Решено". Любые дополнительные инвариантные ошибки будут рассматриваться как новые.

person Kirk Kelsey    schedule 06.06.2019
comment
Я не могу просто исправить все нарушения. Некоторые из них запускаются поведением пользователя, и чтобы предотвратить их, клиенту необходимо изменить проверку UX / на стороне клиента. Также некоторые из них являются результатом сложных зависимостей и периодически возникающих системных сбоев. Но группировка также происходит для других ошибок, которые не являются неизменными нарушениями. Мне еще предстоит обнаружить закономерность, лежащую в основе этого, но это большой беспорядок. - person Thijs Koerselman; 06.06.2019