feat(observability): Replace Prometheus package with OpenTelemetry

This commit is contained in:
Julian Tölle 2022-02-27 17:57:33 +01:00
parent f67383b761
commit 6b1640b753
22 changed files with 2391 additions and 568 deletions

32
src/logger/logger.ts Normal file
View file

@ -0,0 +1,32 @@
import { context, trace } from "@opentelemetry/api";
import Pino, { Logger, LoggerOptions } from "pino";
export const loggerOptions: LoggerOptions = {
level: "debug",
formatters: {
level(label) {
return { level: label };
},
log(object) {
const span = trace.getSpan(context.active());
if (!span) return { ...object };
const { spanId, traceId } = trace
.getSpan(context.active())
?.spanContext();
return { ...object, spanId, traceId };
},
},
transport:
process.env.NODE_ENV === "local"
? {
target: "pino-pretty",
options: {
colorize: true,
levelFirst: true,
translateTime: true,
},
}
: null,
};
export const logger: Logger = Pino(loggerOptions);