chore: Improve tracing
This commit is contained in:
@@ -35,15 +35,17 @@ export function requestErrorHandler(error: any, ctx: ContextWithState) {
|
||||
scope.setTag("request_id", requestId as string);
|
||||
}
|
||||
|
||||
const authType = ctx.state ? ctx.state.authType : undefined;
|
||||
|
||||
const authType = ctx.state?.authType ?? undefined;
|
||||
if (authType) {
|
||||
scope.setTag("auth_type", authType);
|
||||
}
|
||||
|
||||
const userId =
|
||||
ctx.state && ctx.state.user ? ctx.state.user.id : undefined;
|
||||
const teamId = ctx.state?.user?.teamId ?? undefined;
|
||||
if (teamId) {
|
||||
scope.setTag("team_id", teamId);
|
||||
}
|
||||
|
||||
const userId = ctx.state?.user?.id ?? undefined;
|
||||
if (userId) {
|
||||
scope.setUser({
|
||||
id: userId,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Next } from "koa";
|
||||
import { User, Team, ApiKey } from "@server/models";
|
||||
import tracer from "@server/tracing";
|
||||
import { getUserForJWT } from "@server/utils/jwt";
|
||||
import { AuthenticationError, UserSuspendedError } from "../errors";
|
||||
import { ContextWithState } from "../types";
|
||||
@@ -97,6 +98,16 @@ export default function auth(
|
||||
user.updateActiveAt(ctx.request.ip);
|
||||
ctx.state.token = String(token);
|
||||
ctx.state.user = user;
|
||||
|
||||
if (tracer) {
|
||||
const span = tracer.scope().active();
|
||||
console.log(span);
|
||||
if (span !== null) {
|
||||
span.setTag("request.userId", user.id);
|
||||
span.setTag("request.teamId", user.teamId);
|
||||
span.setTag("request.authType", ctx.state.authType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return next();
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import tracer from "dd-trace";
|
||||
|
||||
// If the DataDog agent is installed and the DD_API_KEY environment variable is
|
||||
// in the environment then we can safely attempt to start the DD tracer
|
||||
if (process.env.DD_API_KEY) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
require("dd-trace").init({
|
||||
tracer.init({
|
||||
// SOURCE_COMMIT is used by Docker Hub
|
||||
// SOURCE_VERSION is used by Heroku
|
||||
version: process.env.SOURCE_COMMIT || process.env.SOURCE_VERSION,
|
||||
});
|
||||
}
|
||||
|
||||
export {};
|
||||
export default tracer;
|
||||
|
||||
Reference in New Issue
Block a user