Сбор статистики ошибок AngularJS-приложения через Google Analytics
Делается через пользовательские события.
Для сбора ошбок достаточно где-то на странице подключить код аналитики (https://support.google.com/analytics/answer/1009694?hl=en).
Как можно выше на bootstrap-странице (ндексной странице) подключить «инлайновый» скрипт для обработки общих ошибок:
<script type="text/javascript">
if ()
{
var _gaq = window._gaq || [];
window.onerror = function(msg, url, line) {
var preventErrorAlert = true;
_gaq.push(['_trackEvent', 'JS Error Generic', msg, navigator.userAgent + ' -> ' + url + " : " + line, 0, true]);
return preventErrorAlert;
};
window.canLogErrors = true;
}
</script>
Для обработки ошибок внутри AngularJS нужно задать обработчик в файле с приложением:
var app = angular.module('MyApp', ['ngRoute']);
// override default angular exception handler if can log errors
if (window.canLogErrors)
{
app.factory('$exceptionHandler', function touchExceptionHandler() {
return function (exception, cause) {
exception = exception || {};
exception.message += ' (caused by "' + cause + '")';
var msg = exception.message || '',
eType = typeof exception,
stack = exception.stack || '';
_gaq.push(['_trackEvent', 'JS Error: AngularJS', eType + ': ' + msg, navigator.userAgent + ' -> ' + window.location.href + ' -:- ' + stack + " --|-- " + cause, 0, true]);
};
});
}
app.
config(['$routeProvider', function ($routeProvider)
{
...
В реальном времени ошибки отображаются здесь (В режиме реального времени → События):

Отчёты за дату можно посмотреть здесь (Поведение → События → Обзор):

Полезные ссылки:
http://docs.angularjs.org/api/ng.$exceptionHandler
http://habrahabr.ru/post/149926/
http://habrahabr.ru/company/icontext/blog/93851/
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.