mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 08:40:38 +00:00
Fix/tracing cleanup (#342)
* tracing usability * fix bug in prev commit * more cleanup * further tracing UI cleanup
This commit is contained in:
@@ -761,6 +761,7 @@ class CallSession extends Emitter {
|
|||||||
}
|
}
|
||||||
if (!skip) {
|
if (!skip) {
|
||||||
const {span, ctx} = this.rootSpan.startChildSpan(`verb:${task.summary}`);
|
const {span, ctx} = this.rootSpan.startChildSpan(`verb:${task.summary}`);
|
||||||
|
span.setAttributes({'verb.summary': task.summary});
|
||||||
task.span = span;
|
task.span = span;
|
||||||
task.ctx = ctx;
|
task.ctx = ctx;
|
||||||
await task.exec(this, resources);
|
await task.exec(this, resources);
|
||||||
@@ -782,19 +783,22 @@ class CallSession extends Emitter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (0 === this.tasks.length && this.requestor instanceof WsRequestor && !this.callGone) {
|
if (0 === this.tasks.length && this.requestor instanceof WsRequestor && !this.callGone) {
|
||||||
let span;
|
//let span;
|
||||||
try {
|
try {
|
||||||
const {span} = this.rootSpan.startChildSpan('waiting for commands');
|
//const {span} = this.rootSpan.startChildSpan('waiting for commands');
|
||||||
const {reason, queue, command} = await this._awaitCommandsOrHangup();
|
//const {reason, queue, command} = await this._awaitCommandsOrHangup();
|
||||||
|
/*
|
||||||
span.setAttributes({
|
span.setAttributes({
|
||||||
'completion.reason': reason,
|
'completion.reason': reason,
|
||||||
'async.request.queue': queue,
|
'async.request.queue': queue,
|
||||||
'async.request.command': command
|
'async.request.command': command
|
||||||
});
|
});
|
||||||
span.end();
|
span.end();
|
||||||
|
*/
|
||||||
|
await this._awaitCommandsOrHangup();
|
||||||
if (this.callGone) break;
|
if (this.callGone) break;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
span.end();
|
//span.end();
|
||||||
this.logger.info(err, 'CallSession:exec - error waiting for new commands');
|
this.logger.info(err, 'CallSession:exec - error waiting for new commands');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1288,8 +1292,8 @@ class CallSession extends Emitter {
|
|||||||
this.wakeupResolver = null;
|
this.wakeupResolver = null;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const {span} = this.rootSpan.startChildSpan('async command');
|
|
||||||
const {queue, command} = resolution;
|
const {queue, command} = resolution;
|
||||||
|
const {span} = this.rootSpan.startChildSpan(`recv cmd: ${command}`);
|
||||||
span.setAttributes({
|
span.setAttributes({
|
||||||
'async.request.queue': queue,
|
'async.request.queue': queue,
|
||||||
'async.request.command': command
|
'async.request.command': command
|
||||||
|
|||||||
@@ -30,6 +30,12 @@ class TaskConfig extends Task {
|
|||||||
if (this.bargeIn[k]) this.gatherOpts[k] = this.bargeIn[k];
|
if (this.bargeIn[k]) this.gatherOpts[k] = this.bargeIn[k];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.data.reset) {
|
||||||
|
if (typeof this.data.reset === 'string') this.data.reset = [this.data.reset];
|
||||||
|
}
|
||||||
|
else this.data.reset = [];
|
||||||
|
|
||||||
if (this.bargeIn.sticky) this.autoEnable = true;
|
if (this.bargeIn.sticky) this.autoEnable = true;
|
||||||
this.preconditions = (this.bargeIn.enable || this.record?.action || this.listen?.url || this.data.amd) ?
|
this.preconditions = (this.bargeIn.enable || this.record?.action || this.listen?.url || this.data.amd) ?
|
||||||
TaskPreconditions.Endpoint :
|
TaskPreconditions.Endpoint :
|
||||||
@@ -47,11 +53,7 @@ class TaskConfig extends Task {
|
|||||||
const phrase = [];
|
const phrase = [];
|
||||||
|
|
||||||
/* reset recognizer and/or synthesizer to default values? */
|
/* reset recognizer and/or synthesizer to default values? */
|
||||||
if (this.data.reset) {
|
if (this.data.reset.length) phrase.push(`reset ${this.data.reset.join(',')}`);
|
||||||
if (typeof this.data.reset === 'string') this.data.reset = [this.data.reset];
|
|
||||||
phrase.push(`reset ${this.data.reset.join(',')}`);
|
|
||||||
}
|
|
||||||
else this.data.reset = [];
|
|
||||||
|
|
||||||
if (this.bargeIn.enable) phrase.push('enable barge-in');
|
if (this.bargeIn.enable) phrase.push('enable barge-in');
|
||||||
if (this.hasSynthesizer) {
|
if (this.hasSynthesizer) {
|
||||||
@@ -70,7 +72,7 @@ class TaskConfig extends Task {
|
|||||||
}
|
}
|
||||||
if (this.data.amd) phrase.push('enable amd');
|
if (this.data.amd) phrase.push('enable amd');
|
||||||
if (this.notifyEvents) phrase.push(`event notification ${this.notifyEvents ? 'on' : 'off'}`);
|
if (this.notifyEvents) phrase.push(`event notification ${this.notifyEvents ? 'on' : 'off'}`);
|
||||||
return `${this.name}{${phrase.join(',')}`;
|
return `${this.name}{${phrase.join(',')}}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
async exec(cs, {ep} = {}) {
|
async exec(cs, {ep} = {}) {
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ class Task extends Emitter {
|
|||||||
if (this.actionHook) {
|
if (this.actionHook) {
|
||||||
const type = this.name === TaskName.Redirect ? 'session:redirect' : 'verb:hook';
|
const type = this.name === TaskName.Redirect ? 'session:redirect' : 'verb:hook';
|
||||||
const params = results ? Object.assign(this.cs.callInfo.toJSON(), results) : this.cs.callInfo.toJSON();
|
const params = results ? Object.assign(this.cs.callInfo.toJSON(), results) : this.cs.callInfo.toJSON();
|
||||||
const span = this.startSpan(type, {'hook.url': this.actionHook});
|
const span = this.startSpan(`${type} (${this.actionHook})`);
|
||||||
const b3 = this.getTracingPropagation('b3', span);
|
const b3 = this.getTracingPropagation('b3', span);
|
||||||
const httpHeaders = b3 && {b3};
|
const httpHeaders = b3 && {b3};
|
||||||
span.setAttributes({'http.body': JSON.stringify(params)});
|
span.setAttributes({'http.body': JSON.stringify(params)});
|
||||||
|
|||||||
Reference in New Issue
Block a user