Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (options.host || options.hostname) {
const value = options.host || options.hostname
span.addAttribute(HttpPlugin.ATTRIBUTE_HTTP_HOST, `${value}`)
}
span.addAttribute(HttpPlugin.ATTRIBUTE_HTTP_METHOD, method)
span.addAttribute(HttpPlugin.ATTRIBUTE_HTTP_PATH, `${options.path}`)
span.addAttribute(HttpPlugin.ATTRIBUTE_HTTP_ROUTE, `${options.path}`)
if (userAgent) {
span.addAttribute(
HttpPlugin.ATTRIBUTE_HTTP_USER_AGENT, userAgent.toString())
}
span.addAttribute(HttpPlugin.ATTRIBUTE_HTTP_STATUS_CODE, `${response.statusCode}`)
span.setStatus(HttpPlugin.convertTraceStatus(response.statusCode || 0))
// Message Event ID is not defined
span.addMessageEvent(MessageEventType.SENT, uuid.v4().split('-').join(''))
span.end()
})
err.code.toString()
);
}
span.addAttribute(GrpcPlugin.ATTRIBUTE_GRPC_ERROR_NAME, err.name);
span.addAttribute(
GrpcPlugin.ATTRIBUTE_GRPC_ERROR_MESSAGE,
err.message
);
} else {
span.setStatus(CanonicalCode.OK);
span.addAttribute(
GrpcPlugin.ATTRIBUTE_GRPC_STATUS_CODE,
grpcTypes.status.OK.toString()
);
}
span.addMessageEvent(MessageEventType.SENT, 1);
// record stats: new RPCs on client-side inherit the tag context from
// the current Context.
const parentTagCtx = plugin.stats
? plugin.stats.getCurrentTagContext()
: new TagMap();
if (parentTagCtx.tags.size > 0) {
GrpcPlugin.setTagContext(metadata, parentTagCtx);
}
parentTagCtx.set(
clientStats.GRPC_CLIENT_METHOD,
{ value: span.name },
UNLIMITED_PROPAGATION_MD
);
GrpcPlugin.recordStats(
span.kind,
const userAgent =
headers['user-agent'] || headers['User-Agent'] || null
span.addAttribute(Http2Plugin.ATTRIBUTE_HTTP_HOST, `${url.parse(authority).host}`)
span.addAttribute(
Http2Plugin.ATTRIBUTE_HTTP_METHOD, `${headers[':method']}`)
span.addAttribute(
Http2Plugin.ATTRIBUTE_HTTP_PATH, `${headers[':path']}`)
span.addAttribute(
Http2Plugin.ATTRIBUTE_HTTP_ROUTE, `${headers[':path']}`)
if (userAgent) {
span.addAttribute(
Http2Plugin.ATTRIBUTE_HTTP_USER_AGENT, `${userAgent}`)
}
span.addMessageEvent(MessageEventType.SENT, uuid.v4().split('-').join(''))
span.end()
})
);
span.addAttribute(
Http2Plugin.ATTRIBUTE_HTTP_PATH,
`${headers[':path']}`
);
span.addAttribute(
Http2Plugin.ATTRIBUTE_HTTP_ROUTE,
`${headers[':path']}`
);
if (userAgent) {
span.addAttribute(
Http2Plugin.ATTRIBUTE_HTTP_USER_AGENT,
`${userAgent}`
);
}
span.addMessageEvent(MessageEventType.SENT, 1);
span.end();
});
const adaptMessageEventType = (
type: MessageEventType
): opencensus.proto.trace.v1.Span.TimeEvent.MessageEvent.Type => {
switch (type) {
case MessageEventType.SENT: {
return opencensus.proto.trace.v1.Span.TimeEvent.MessageEvent.Type.SENT;
}
case MessageEventType.RECEIVED: {
return opencensus.proto.trace.v1.Span.TimeEvent.MessageEvent.Type
.RECEIVED;
}
default: {
return opencensus.proto.trace.v1.Span.TimeEvent.MessageEvent.Type
.TYPE_UNSPECIFIED;
}
}
};
span.addAttribute(
HttpPlugin.ATTRIBUTE_HTTP_USER_AGENT,
userAgent.toString()
);
}
if (response.statusCode) {
span.addAttribute(
HttpPlugin.ATTRIBUTE_HTTP_STATUS_CODE,
response.statusCode.toString()
);
span.setStatus(HttpPlugin.parseResponseStatus(response.statusCode));
tags.set(stats.HTTP_CLIENT_STATUS, {
value: response.statusCode.toString(),
});
}
span.addMessageEvent(MessageEventType.SENT, 1);
if (plugin.options.applyCustomAttributesOnSpan) {
plugin.options.applyCustomAttributesOnSpan(span, request, response);
}
HttpPlugin.recordStats(span.kind, tags, Date.now() - startTime);
span.end();
});