UNPKG

@promster/metrics

Version:

Metrics utilities used by all other server integrations

144 lines (143 loc) 5.13 kB
import * as Prometheus from "prom-client"; import { TDefaultedPromsterOptions, TGcMetrics, TGraphQlMetrics, THttpMetrics, TLabelValues, TOptionalPromsterOptions } from "@promster/types"; export type * from "@promster/types"; //#region src/client/client.d.ts declare const defaultRegister: Prometheus.Registry<"text/plain; version=0.0.4; charset=utf-8">; //#endregion //#region src/create-gc-metrics/create-gc-metrics.d.ts declare const createGcMetrics: { (options: TDefaultedPromsterOptions): TGcMetrics; defaultOptions: { getLabelValues: () => {}; labels: never[]; metricPrefix: string; metricNames: { up: string[]; }; gcCollectionInterval: number; }; }; //#endregion //#region src/create-gc-observer/create-gc-observer.d.ts declare const createGcObserver: (_metrics: TGcMetrics, options: TDefaultedPromsterOptions) => () => void; //#endregion //#region src/create-graphql-metrics/create-graphql-metrics.d.ts declare const createGraphQlMetrics: { (options: TDefaultedPromsterOptions): TGraphQlMetrics; defaultOptions: { getLabelValues: () => {}; labels: never[]; metricPrefix: string; metricTypes: string[]; metricNames: { graphQlParseDuration: string[]; graphQlValidationDuration: string[]; graphQlResolveFieldDuration: string[]; graphQlRequestDuration: string[]; graphQlErrorsTotal: string[]; }; metricPercentiles: { graphQlParseDuration: number[]; graphQlValidationDuration: number[]; graphQlResolveFieldDuration: number[]; graphQlRequestDuration: number[]; graphQlErrorsTotal: number[]; }; }; }; //#endregion //#region src/create-http-metrics/create-http-metrics.d.ts declare const createHttpMetrics: { (options: TDefaultedPromsterOptions): THttpMetrics; defaultOptions: { getLabelValues: () => {}; labels: never[]; metricPrefix: string; metricTypes: string[]; metricNames: { httpRequestsTotal: string[]; httpRequestDurationPerPercentileInSeconds: string[]; httpRequestDurationInSeconds: string[]; httpRequestContentLengthInBytes: string[]; httpResponseContentLengthInBytes: string[]; }; metricBuckets: { httpRequestContentLengthInBytes: number[]; httpRequestDurationInSeconds: number[]; }; metricPercentiles: { httpRequestDurationPerPercentileInSeconds: number[]; httpResponseContentLengthInBytes: number[]; }; }; }; //#endregion //#region src/end-measurement-from/end-measurement-from.d.ts declare function endMeasurementFrom(start: [number, number]): { durationS: number; }; //#endregion //#region src/sort-labels/sort-labels.d.ts declare function sortLabels(unsortedLabels: TLabelValues): TLabelValues; //#endregion //#region src/timing/timing.d.ts declare class Timing { #private; static NS_PER_SEC: bigint; constructor(); value(): { seconds: undefined; } | { seconds: number; }; reset(): this; end(): this; } declare const timing: { start(): Timing; }; //#endregion //#region src/create-request-recorder/create-request-recorder.d.ts type TRecordingOptions = { labels: TLabelValues; requestContentLength?: number; responseContentLength?: number; }; type TLegacyTiming = [number, number]; type TRequestRecorder = (_timing: Timing | TLegacyTiming, _recordingOptions: TRecordingOptions) => void; declare const createRequestRecorder: { (metrics: THttpMetrics, options?: TOptionalPromsterOptions): TRequestRecorder; defaultOptions: TOptionalPromsterOptions; }; //#endregion //#region src/environment/kubernetes.d.ts declare const isRunningInKubernetes: () => boolean; //#endregion //#region src/environment/skip-metrics-in-environment.d.ts type TSkipMetricsInEnvironmentOptions = { detectKubernetes?: TOptionalPromsterOptions['detectKubernetes']; }; declare const skipMetricsInEnvironment: (options: TSkipMetricsInEnvironmentOptions) => boolean; //#endregion //#region src/normalizers/method/method.d.ts declare const normalizeMethod: (method: string) => string; //#endregion //#region src/normalizers/path/path.d.ts declare const normalizePath: (path: string) => string; //#endregion //#region src/normalizers/status-code/status-code.d.ts declare const normalizeStatusCode: (statusCode: number) => number; //#endregion //#region src/normalizers/index.d.ts declare const defaultNormalizers: { normalizeStatusCode: (statusCode: number) => number; normalizePath: (path: string) => string; normalizeMethod: (method: string) => string; }; //#endregion //#region src/summary/summary.d.ts declare const getSummary: () => Promise<string>; declare const getContentType: () => "text/plain; version=0.0.4; charset=utf-8"; //#endregion export { Prometheus, type Timing as TPromsterTiming, type TRequestRecorder, createGcMetrics, createGcObserver, createGraphQlMetrics, createHttpMetrics, createRequestRecorder, defaultNormalizers, defaultRegister, endMeasurementFrom, getContentType, getSummary, isRunningInKubernetes, normalizeMethod, normalizePath, normalizeStatusCode, skipMetricsInEnvironment, sortLabels, timing }; //# sourceMappingURL=index.d.ts.map