@promster/metrics
Version:
Metrics utilities used by all other server integrations
144 lines (143 loc) • 5.13 kB
text/typescript
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.cts.map