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);
|
scope.setTag("request_id", requestId as string);
|
||||||
}
|
}
|
||||||
|
|
||||||
const authType = ctx.state ? ctx.state.authType : undefined;
|
const authType = ctx.state?.authType ?? undefined;
|
||||||
|
|
||||||
if (authType) {
|
if (authType) {
|
||||||
scope.setTag("auth_type", authType);
|
scope.setTag("auth_type", authType);
|
||||||
}
|
}
|
||||||
|
|
||||||
const userId =
|
const teamId = ctx.state?.user?.teamId ?? undefined;
|
||||||
ctx.state && ctx.state.user ? ctx.state.user.id : undefined;
|
if (teamId) {
|
||||||
|
scope.setTag("team_id", teamId);
|
||||||
|
}
|
||||||
|
|
||||||
|
const userId = ctx.state?.user?.id ?? undefined;
|
||||||
if (userId) {
|
if (userId) {
|
||||||
scope.setUser({
|
scope.setUser({
|
||||||
id: userId,
|
id: userId,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { Next } from "koa";
|
import { Next } from "koa";
|
||||||
import { User, Team, ApiKey } from "@server/models";
|
import { User, Team, ApiKey } from "@server/models";
|
||||||
|
import tracer from "@server/tracing";
|
||||||
import { getUserForJWT } from "@server/utils/jwt";
|
import { getUserForJWT } from "@server/utils/jwt";
|
||||||
import { AuthenticationError, UserSuspendedError } from "../errors";
|
import { AuthenticationError, UserSuspendedError } from "../errors";
|
||||||
import { ContextWithState } from "../types";
|
import { ContextWithState } from "../types";
|
||||||
@@ -97,6 +98,16 @@ export default function auth(
|
|||||||
user.updateActiveAt(ctx.request.ip);
|
user.updateActiveAt(ctx.request.ip);
|
||||||
ctx.state.token = String(token);
|
ctx.state.token = String(token);
|
||||||
ctx.state.user = user;
|
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();
|
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
|
// 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
|
// in the environment then we can safely attempt to start the DD tracer
|
||||||
if (process.env.DD_API_KEY) {
|
if (process.env.DD_API_KEY) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
tracer.init({
|
||||||
require("dd-trace").init({
|
|
||||||
// SOURCE_COMMIT is used by Docker Hub
|
// SOURCE_COMMIT is used by Docker Hub
|
||||||
// SOURCE_VERSION is used by Heroku
|
// SOURCE_VERSION is used by Heroku
|
||||||
version: process.env.SOURCE_COMMIT || process.env.SOURCE_VERSION,
|
version: process.env.SOURCE_COMMIT || process.env.SOURCE_VERSION,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export {};
|
export default tracer;
|
||||||
|
|||||||
Reference in New Issue
Block a user