Merge pull request #1924 from Infisical/misc/metrics-observability

feat: added setup for production observability (metrics via OTEL)
This commit is contained in:
Maidul Islam
2024-11-19 13:56:29 -05:00
committed by GitHub
13 changed files with 1866 additions and 25 deletions
+21
View File
@@ -0,0 +1,21 @@
import opentelemetry from "@opentelemetry/api";
import fp from "fastify-plugin";
export const apiMetrics = fp(async (fastify) => {
const apiMeter = opentelemetry.metrics.getMeter("API");
const latencyHistogram = apiMeter.createHistogram("API_latency", {
unit: "ms"
});
fastify.addHook("onResponse", async (request, reply) => {
const { method } = request;
const route = request.routerPath;
const { statusCode } = reply;
latencyHistogram.record(reply.elapsedTime, {
route,
method,
statusCode
});
});
});