ad monitoring

This commit is contained in:
Peter Maquiran
2024-08-21 11:37:47 +01:00
parent d76f2e240e
commit 82c67b8976
5 changed files with 51 additions and 19 deletions
@@ -38,12 +38,10 @@ function convertAttributesToString(obj) {
}
const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingType => {
const createTracingInstance = ({bugPrint, name, module, autoFinish, waitNThrow}): TracingType => {
const startTime = Date.now();
const requestId = uuidv4()
let _tracerInstance:Tracer
if(module == 'notification') {
@@ -54,6 +52,8 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
_tracerInstance = tracerInstance
}
let waitNThrowFunction: NodeJS.Timeout
const span = _tracerInstance.startSpan(name);
let finish = false
@@ -134,6 +134,11 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
finish: () => {
if(finish) return
if(waitNThrowFunction) {
clearTimeout(waitNThrowFunction);
returnObject.hasError('waitNThrowFunction')
}
if(environment.apiURL != 'https://gdqas-api.oapr.gov.ao/api/') {
span.setAttribute('error.list', data.errors.join(','))
span.end();
@@ -158,10 +163,15 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
return tracerInstance.startSpan(name, { root: false }, parent) as Span;
}
}
if(waitNThrow) {
waitNThrowFunction = setTimeout(returnObject.finish, waitNThrow)
}
return returnObject
}
export function XTracerAsync({ name, bugPrint, module = null, autoFinish = true, daley =0 }) {
export function XTracerAsync({ name, bugPrint, module = null, autoFinish = true, daley =0, waitNThrow = 0 }) {
return (
target: unknown,
propertyKey: string,
@@ -172,7 +182,7 @@ export function XTracerAsync({ name, bugPrint, module = null, autoFinish = true,
const tracing = createTracingInstance({bugPrint, name, module, autoFinish})
const tracing = createTracingInstance({bugPrint, name, module, autoFinish, waitNThrow})
tracing.setAttribute('User', SessionStore?.user?.FullName);
tracing.setAttribute('current.page', window.location.pathname);
@@ -208,7 +218,7 @@ export function XTracerAsync({ name, bugPrint, module = null, autoFinish = true,
}
export function XTracer({ name, bugPrint, module, autoFinish = true, daley =0 }) {
export function XTracer({ name, bugPrint, module, autoFinish = true, daley =0, waitNThrow }) {
return (
target: unknown,
propertyKey: string,
@@ -217,7 +227,7 @@ export function XTracer({ name, bugPrint, module, autoFinish = true, daley =0 })
const originalMethod = descriptor.value;
descriptor.value = function (...args: unknown[]) {
const tracing = createTracingInstance({bugPrint, name, module, autoFinish})
const tracing = createTracingInstance({bugPrint, name, module, autoFinish, waitNThrow})
tracing.setAttribute('User', SessionStore?.user?.FullName);
tracing.setAttribute('current.page', window.location.pathname);