lynkr
Version:
Self-hosted LLM gateway and tier-routing proxy for Claude Code, Cursor, and Codex. Routes across Ollama, AWS Bedrock, OpenRouter, Databricks, Azure OpenAI, llama.cpp, and LM Studio with prompt caching, MCP tools, and 60-80% cost savings.
31 lines (24 loc) • 757 B
JavaScript
const { getMetricsCollector } = require("../../observability/metrics");
/**
* Metrics collection middleware
*
* Performance: Minimal overhead, non-blocking
*/
function metricsMiddleware(req, res, next) {
const startTime = Date.now();
// Capture response finish
res.on("finish", () => {
const duration = Date.now() - startTime;
const metrics = getMetricsCollector();
// Record request metrics
metrics.recordRequest(req.method, req.path || req.url, res.statusCode, duration);
// Record budget/rate limit blocks
if (res.statusCode === 429) {
metrics.recordRateLimitBlock();
} else if (res.statusCode === 402) {
metrics.recordBudgetBlock();
}
});
next();
}
module.exports = { metricsMiddleware };