chore: Improve tracing

This commit is contained in:
Tom Moor
2022-03-08 16:41:02 -08:00
parent 85f333b2fd
commit 79ba8dad30
3 changed files with 21 additions and 7 deletions

View File

@@ -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,

View File

@@ -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();

View File

@@ -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;