keep-observers
Version:
This is a monitoring service applied to the web side Support Elasticsearch+kiban The middleware extension interface is provided by means of plug-in service compositionkeep-observers
126 lines (88 loc) • 3.81 kB
JavaScript
import KeepObserver from '../../@core/instance'
import KeepObserverLog from '../../@core/monitor/log'
import KeepObserverNetwork from '../../@core/monitor/network'
import KeepObserverHtmlElementActive from '../../@core/monitor/htmlElementActive'
import KeepObserverKibanaApmReport from '../../@core/report/kibanaApm'
import KeepObserverMiddlewareKibanaApmTrack from '../../@core/middleware/kibanaApmTrack'
import axios from 'axios'
const reportReceive = 'http://localhost:8200'
//const reportReceive = ''
const tesrRequest = 'http://localhost:9003/report'
const testTimeout = 'http://localhost:9003/timeout'
const test404 = 'http://localhost:9003/404'
const test500 = 'http://localhost:9003/500'
//实例
const ko = new KeepObserver({
// develop:true,
isInterruptNormal:true,
isGlobalElementActionCatch:true,
serverUrl:reportReceive,
serviceName: "dev-test",
agentVersion: "step_1",
})
ko.use(KeepObserverKibanaApmReport)
//注册服务插件
ko.use(KeepObserverLog)
ko.use(KeepObserverNetwork)
ko.use(KeepObserverHtmlElementActive)
//注册中间件时间轴追踪服务
ko.use(KeepObserverMiddlewareKibanaApmTrack)
const logButton = document.querySelector('.log')
logButton.addEventListener('click',function(){
console.log('aaaaaaaa',ko,ko.useMiddle)
console.error(window,1212)
console.warn(document.body,{test:'test'})
})
const networkAjaxButton = document.querySelector('.network-ajax')
networkAjaxButton.addEventListener('click',function(){
axios.post(tesrRequest,{test:111,params:{type:'post'}})
.finally(()=>new Promise((res)=>setTimeout(()=>axios.get(test404).finally(res),200)))
.finally(()=>new Promise((res)=>setTimeout(()=>axios.get(test500).finally(res),200)))
.finally(()=>new Promise((res)=>setTimeout(()=>axios.get(testTimeout).finally(res),200)))
})
const networkFetchButton = document.querySelector('.network-fetch')
networkFetchButton.addEventListener('click',function(){
fetch(tesrRequest,{method:'post',body:{test:111,params:{type:'post'}}})
.finally(()=>new Promise((res)=>setTimeout(()=>fetch(test404).finally(res),200)))
.finally(()=>new Promise((res)=>setTimeout(()=>fetch(test500).finally(res),200)))
.finally(()=>new Promise((res)=>setTimeout(()=>fetch(testTimeout).finally(res),200)))
})
var userNameValue = ''
var userIdValue = ''
var userEmailValue = ''
document.querySelector('.userName').addEventListener('input',function(e){
userNameValue = e.target.value
})
document.querySelector('.userId').addEventListener('input',function(e){
userIdValue = e.target.value
})
document.querySelector('.userEmail').addEventListener('input',function(e){
userEmailValue = e.target.value
})
document.querySelector('.setUserInfo').addEventListener('click',function(e){
ko.apis('setUserInfo',{
id: userIdValue,
username: userNameValue,
email: userEmailValue,
})
})
var captureErrorValue = ''
document.querySelector('.inputErrorMessage').addEventListener('input',function(e){
captureErrorValue = e.target.value
})
document.querySelector('.captureError').addEventListener('click',function(e){
ko.apis('captureError',captureErrorValue)
})
document.querySelector('.throwError').addEventListener('click',function(e){
throw new Error('test throwError')
})
var inputHash = ''
document.querySelector('.inputHash').addEventListener('input',function(e){
inputHash = e.target.value
})
document.querySelector('.changeHash').addEventListener('click',function(e){
window.location.href = window.location.origin + window.location.pathname + '#'+inputHash
})
document.querySelector('.pushState').addEventListener('click',function(e){
window.history.pushState(null,null,window.location.origin + window.location.pathname + '#'+inputHash)
})