/************************************************** * Metrics type definitions for Veryfront * @module **************************************************/ import type { Counter, Histogram, Meter } from "../tracing/api-shim.js"; export type RSCRequestKind = "manifest" | "page" | "stream" | "action" | "error" | "flight_page"; export interface ObservabilityMetrics { recordRender: (durationMs: number) => void; recordCacheGet: (hit: boolean) => void; recordCacheSet: () => void; recordCacheInvalidate: (count: number) => void; recordHttpRequest: () => void; recordRSCRequest: (type: Exclude, attributes?: Record) => void; recordRSCStream: (durationMs: number) => void; } export interface VeryfrontMetrics { requests: number; jitHttpResolved: number; jitHttpBlocked: number; jitHttpFetchMsTotal: number; rscManifest: number; rscPage: number; rscStream: number; rscAction: number; rscErrors: number; rscStreamHistogram?: { boundaries: number[]; counts: number[]; }; cacheGets: number; cacheHits: number; cacheMisses: number; cacheSets: number; cacheInvalidations: number; moduleServeTotal: number; moduleServeOk: number; moduleServeNotFound: number; moduleServeError: number; moduleTransformTotal: number; moduleTransformDurationMsTotal: number; routeManifestLruHits: number; routeManifestLruMisses: number; ssrHistogram?: { boundaries: number[]; counts: number[]; }; corsRejections: number; /** SSR answered 404 because a project's published source could not be read. */ ssrSourceUnavailable: number; securityHeadersApplied: number; apiRequests2xx: number; apiRequests4xx: number; apiRequests5xx: number; apiRetries: number; contentRequestScopedHits: number; contentPersistentCacheHits: number; contentFileListHits: number; contentNetworkFetches: number; contentNetworkFetchMsTotal: number; contentPreviewRequests: number; contentProductionRequests: number; contentNetworkHistogram?: { boundaries: number[]; counts: number[]; }; } export interface MetricsState extends VeryfrontMetrics { _ssrCounts: number[]; _contentNetworkCounts: number[]; } export interface OtelInstruments { meter?: Meter; ssrHistogram?: Histogram; requestCounter?: Counter; jitResolvedCounter?: Counter; jitBlockedCounter?: Counter; cacheGetCounter?: Counter; cacheHitCounter?: Counter; cacheMissCounter?: Counter; cacheSetCounter?: Counter; cacheInvalidateCounter?: Counter; moduleServeCounter?: Counter; moduleTransformCounter?: Counter; moduleTransformDurationHistogram?: Histogram; routeManifestLookupCounter?: Counter; } //# sourceMappingURL=types.d.ts.map