1.0.2 • Published 5 years ago

jad-tracer v1.0.2

Weekly downloads
1
License
ISC
Repository
github
Last release
5 years ago

jad-tracer文档

安装

npm install jad-tracer --save

初始化

import { InitTracer } from 'jad-tracer';

InitTracer({
    serviceName: `serviceName`,
    serverUrl: 'serverUrl'
});

监听DOM

暂时不支持表单内容监听

import { InitDom } from 'jad-tracer';

InitDom();
<button data-apmclick="btn">监听click事件</button>
<a data-apmhover="link" href="http://dsdsd">监听hover事件</a>

设置追踪用户

import { InitUser } from 'jad-tracer';

InitUser({
    username: username,
    id: id,
    email: email
});

捕捉全局错误

暂时只有Angular版本的Demo

  • error-handle.service.ts

    import { ErrorHandler, Injectable } from '@angular/core';
    import { AddError } 'jad-tracer';
    
    @Injectable()
    export class GlobalErrorHandler implements ErrorHandler {
        constructor() {}
        handleError(error) {
            AddError(error);
            throw error;
        }
    }
  • app.module.ts

    import { NgModule, ErrorHandler } from '@angular/core';
    
    @NgModule({
        declarations: [],
        imports: [
        ],
        providers: [
            {
                provide: ErrorHandler,
                useClass: GlobalErrorHandler
            }
        ],
        bootstrap: []
    })
    export class AppModule {}

监听页面跳转

由于APM自身限制,除捕捉错误不会中断页面跳转事件,其它任何自定义上报事件都会中断页面自动捕捉行为,导致页面停留时长不准确

页面跳转会自动捕捉Http请求,如果被中断,则不会记录后续请求

暂时只有Angular版本的Demo

import { StartPageJump, EndPageJump } 'jad-tracer';
import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
import { filter } from 'rxjs/operators';

@Component({
    selector: 'app',
    styleUrls: [ '' ],
    templateUrl: ''
})
export class DemoComponent implements OnInit {
    constructor(
        public router: Router
    ) {}
    ngOnInit() {
        
        let StartPage = StartPageJump('url');
        this.router.events.pipe(filter((val) => val instanceof NavigationEnd)).subscribe((val: any) => {
            if (StartPage) {
                EndPageJump(val.urlAfterRedirects, StartPage);
            }
            StartPage = StartPageJump('url');
        });
    }
}

监听Http响应

建议不要在http-handle.service.ts中全局使用,对有需要的服务单独进行监听

import { StartHttp, EndHttp } from 'jad-tracer';

const HttpTransaction = StartHttp('get', 'url', data ? data : null);

// 异步结果
EndHttp(body, HttpTransaction);
1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago