mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 08:40:38 +00:00
Feature/opentelemetry (#89)
* initial adds for otel tracing * initial basic testing * basic tracing for incoming calls * linting * add traceId to the webhook params * trace webhook calls * tracing: add new commands as tags when receiving async commands over websocket * tracing new commands * add summary for config verb * trace async commands * bugfix: undefined ref * tracing: give time for final webhooks before closing root span * tracing bugfix: span for background gather was not ended * tracing - minor tag changes * tracing - add span atttribute for reason call ended * trace call status webhooks, add app version to trace output * config: add support for automatically re-enabling * env var to customize service name in tracing UI * config: change to use 'sticky' attribute to re-enable bargein automatically * fix warnings * when adulting create a new root span * when background gather triggers bargein via vad clear queue of tasks * additional trace attributes for dial and refer * fix dial tracing * add better summary for dial * fix prev commit * add exponential backoff to WsRequestor reconnection logic * add calling number to log metadata, as this will be frequently the key data given for troubleshooting * add accountSid to log metadata * make handshake timeout for ws connections configurable with default 1.5 secs * rename env var * fix bug prev checkin * logging fixes * consistent env naming
This commit is contained in:
@@ -138,7 +138,20 @@ class TaskDial extends Task {
|
||||
}
|
||||
|
||||
get summary() {
|
||||
if (this.target.length === 1) return `${this.name}{type=${this.target[0].type}}`;
|
||||
if (this.target.length === 1) {
|
||||
const target = this.target[0];
|
||||
switch (target.type) {
|
||||
case 'phone':
|
||||
case 'teams':
|
||||
return `${this.name}{type=${target.type},number=${target.number}}`;
|
||||
case 'user':
|
||||
return `${this.name}{type=${target.type},name=${target.name}}`;
|
||||
case 'sip':
|
||||
return `${this.name}{type=${target.type},sipUri=${target.sipUri}}`;
|
||||
default:
|
||||
return `${this.name}`;
|
||||
}
|
||||
}
|
||||
else return `${this.name}{${this.target.length} targets}`;
|
||||
}
|
||||
|
||||
@@ -384,6 +397,7 @@ class TaskDial extends Task {
|
||||
this._killOutdials();
|
||||
}, this.timeout * 1000);
|
||||
|
||||
this.span.setAttributes('dial.target', JSON.stringify(this.target));
|
||||
this.target.forEach(async(t) => {
|
||||
try {
|
||||
t.url = t.url || this.confirmUrl;
|
||||
@@ -420,7 +434,9 @@ class TaskDial extends Task {
|
||||
target: t,
|
||||
opts,
|
||||
callInfo: cs.callInfo,
|
||||
accountInfo: cs.accountInfo
|
||||
accountInfo: cs.accountInfo,
|
||||
rootSpan: cs.rootSpan,
|
||||
startSpan: this.startSpan.bind(this)
|
||||
});
|
||||
this.dials.set(sd.callSid, sd);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user