improve monitoring the solution

This commit is contained in:
Peter Maquiran
2024-07-30 15:52:07 +01:00
parent 8f0625eed4
commit edcaf951c2
11 changed files with 167 additions and 27 deletions
@@ -52,11 +52,13 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
}
const span = _tracerInstance.startSpan(name);
let finish = false
const data = {
event: {},
tags: {},
status: {} as any,
logs:[]
}
const returnObject = {
@@ -83,14 +85,22 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
if(key =='outcome' && value == 'failed') {
returnObject.hasError('error')
if(!autoFinish) {
returnObject.finish()
}
} else if (key =='outcome' && value == 'success') {
span.setStatus({code: SpanStatusCode.OK, message:name})
if(!autoFinish) {
returnObject.finish()
}
}
},
log(message: string, data: Object) {
log(message: string, dataObject: Object) {
const spanId = span.spanContext().spanId;
const _tracer = OpentelemetryLogging.getTracer('logging')
const spanContext = _tracer.startSpan(name)
data = convertAttributesToString(data)
dataObject = convertAttributesToString(dataObject)
if(environment.apiURL != 'https://gdqas-api.oapr.gov.ao/api/') {
openTelemetryLogging.send({
@@ -99,7 +109,7 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
payload: {
message: message,
object: {
...data,
...dataObject,
spanId,
name,
user: SessionStore?.user?.FullName,
@@ -110,11 +120,15 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
})
}
data.logs.push(dataObject)
},
getAttribute: (key: string) => {
return data.tags[key]
},
finish: () => {
if(finish) return
if(environment.apiURL != 'https://gdqas-api.oapr.gov.ao/api/') {
span.end();
UseCaseCounter.add(1, {user: SessionStore?.user?.FullName, outcome:data.tags['outcome'] || data.status?.code , usecase: name})
@@ -123,6 +137,8 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
if(bugPrint && (data.tags['outcome'] == 'failed' || data.status?.code == SpanStatusCode.ERROR)) {
console.error(name, data)
}
finish = true
},
hasError:(message: string) => {
if(data.status?.code != SpanStatusCode.ERROR) {