Команда Dandelion недавно разработала интерфейсный инструмент сбора ошибок под названием frontend-tracker. Этот инструмент в основном используется для обнаружения ошибок на интерфейсных веб-страницах и отправки информации об ошибках на назначенный сервер. В духе открытого исходного кода я поделится им с вами сейчас. , Я надеюсь, что это может помочь каждому получить удобство на работе, и вы можете использовать его для общения и делиться им со своими друзьями вокруг вас.
Frontend Tracker
представлять
Frontend Tracker может находить ошибки на front-end страницах и отправлять их на указанный сервер до того, как пользователь их заметит.
Функции
- Регистрировать и отправлять ошибки, сгенерированные внешними страницами
- ошибки скрипта журнала
- Журнал ошибок запроса XHR
- Запишите время запроса XHR
- Регистрировать медленные запросы XHR
- Записывать XHR-запросы из разных источников
- Ошибки загрузки ресурсов журнала
- Журнал загрузки ресурсов из разных источников
- Конфигурация URL, совместимая с регулярными выражениями
Установить
Код Frontend-Tracker может быть использован с помощью Bower
bower install frontend-tracker --save
или используйте нпм
npm install frontend-tracker --save
Или загрузите ZIP-пакет напрямую, чтобы получить файл .
Просто добавьте его на страницу, где нужно отслеживать ошибки
<script src="path/to/package/dist/tracker.min.js">
настроить
Добавьте следующий код в свой код, чтобы начать Frontend Tracker
<script type="text/javascript">
window.setTracker({
endpoint: '',
xhr: {
log: {
crossOrigin: true,
slowRequest: true,
timeout: true,
error: true
},
origin: [
'http://www.pgyer.com',
/.*\.tracup\.com/,
],
timeLimit: {
send: 0,
load: 0,
total: 0
},
exclude: []
},
resource: {
log: {
crossOrigin: true,
error: true
},
origin: [],
exclude: []
},
script: {
log: {
error: true
},
exclude: []
}
})
</script>
элемент конфигурации
endpoint
String
Required
xhr
Object
Required
Для поведения при ошибке конфигурации XHR
имя | Типы | Описание функции |
---|---|---|
log | Required, Object | |
log.crossOrigin | Required, Boolean, Default: false |
При установкеtrue При регистрации междоменных запросов XHR |
log.slowRequest | Required, Boolean, Default: false |
когда установлено наtrue медленные запросы XHR при регистрации |
log.timeout | Required, Boolean, Default: false |
когда установлено наtrue Когда тайм-аут запроса на запись XHR |
log.error | Required, Boolean, Default: false |
когда установлено наtrue Ошибка регистрации запроса XHR |
origin | Optional, Array | Установите URI внутри домена, поддерживает регулярные выражения |
timeLimit | Optional, Object | Значение с привязкой ко времени, используемое для описания медленных запросов XHR. |
timeLimit.send | int, Default: 0 | Время (мс) до отправки запроса до начала приема данных,0 Нет предела |
timeLimit.load | int, Default: 0 | Время получения содержимого ответа (мс),0 значит без ограничений |
timeLimit.total | int, Default: 0 | общее время нахождения запроса (мс),0 значит без ограничений |
exclude | Optional, Array |
resource
Object
Required
имя | Типы | Описание функции |
---|---|---|
log | Required, Object | Настройка поведения журнала ошибок ресурсов |
log.crossOrigin | Required, Boolean, Default: false |
когда установлено наtrue При регистрации запросов ресурсов из разных источников |
log.error | Required, Boolean, Default: false |
когда установлено наtrue Плохие запросы ресурсов регистрируются, когда |
origin | Optional, Array | Установите URI внутри домена, поддерживает регулярные выражения |
exclude | Optional, Array | Установить игнорирование неправильного URI, поддержка регулярных выражений |
script
Object Required
Используется для настройки поведения скрипта при возникновении ошибок
name | type | description |
---|---|---|
log | Required, Object | Настройка поведения журнала ошибок ресурсов |
log.error | Required, Boolean, Default: false |
когда установлено наtrue Ошибка сценария записи |
exclude | Optional, Array | Установить игнорирование URI файла сценария ошибки, поддержка регулярных выражений |
Обработка сообщений об ошибках
Информация об ошибке будет отправлена (POST) в виде JSON в заданную конечную точку.
поле
имя | стоимость | описывать |
---|---|---|
type | String | тип ошибкиXHR , RESOURCE , SCRIPT типа |
data | Object | Подробное сообщение об ошибке |
currentURL | string | Произошла ошибка URL |
userAgent | string | User-Agent браузера, в котором произошла ошибка |
data.message
Полученная подробная информация нуждается в анализеdata.detail
получить
Типы | data.detail Структура |
описывать |
---|---|---|
XHR | {request: String, response: {status: int, response: String},timing: {send: int, load: int, total: int}} | request : запрошенный URL,status : код состояния,response : содержание ответа,send : время отправки (мс),load : время приема (мс),total : Общее время (MS) |
RESOURCE | {tagname: String, resourceURL: String} | tagname : Этикетка,resourceURL : URI ресурса |
SCRIPT | {file: String, line: int, column: int, trace: String} | file : имя файла сценария,line : номер строки,column : номер столбца,trace : стек вызовов |
Способ авторизации
Внешний трекер сGPL-3 licensedРазрешенное использование.
Кодовую базу и более подробную информацию можно найти здесь: [GitHub.com/PGbaby/front…]