import { prometheus } from "@hono/prometheus"; import { Counter, Histogram, Registry } from "prom-client"; export const registry = new Registry(); export const { printMetrics } = prometheus({ registry: registry, prefix: "karakeep_", collectDefaultMetrics: true, }); export const workerStatsCounter = new Counter({ name: "karakeep_worker_stats", help: "Stats for each worker", labelNames: ["worker_name", "status"], }); export const crawlerStatusCodeCounter = new Counter({ name: "karakeep_crawler_status_codes_total", help: "HTTP status codes encountered during crawling", labelNames: ["status_code"], }); export const bookmarkCrawlLatencyHistogram = new Histogram({ name: "karakeep_bookmark_crawl_latency_seconds", help: "Latency from bookmark creation to crawl completion (excludes recrawls and imports)", buckets: [ 0.1, 0.25, 0.5, 1, 2.5, 5, 7.5, 10, 15, 20, 30, 45, 60, 90, 120, 180, 300, 600, 900, 1200, ], }); registry.registerMetric(workerStatsCounter); registry.registerMetric(crawlerStatusCodeCounter); registry.registerMetric(bookmarkCrawlLatencyHistogram);