diff --git a/packages/beacon-node/src/metrics/utils/registryMetricCreator.ts b/packages/beacon-node/src/metrics/utils/registryMetricCreator.ts index c4d332aa3dc0..adec6f984702 100644 --- a/packages/beacon-node/src/metrics/utils/registryMetricCreator.ts +++ b/packages/beacon-node/src/metrics/utils/registryMetricCreator.ts @@ -11,30 +11,31 @@ import { LabelKeys, LabelsGeneric, MetricsRegisterCustom, + NoLabels, StaticConfig, } from "@lodestar/utils"; import {AvgMinMax} from "./avgMinMax.js"; import {GaugeExtra} from "./gauge.js"; export class RegistryMetricCreator extends Registry implements MetricsRegisterCustom { - gauge(configuration: GaugeConfig): IGaugeExtra { + gauge(configuration: GaugeConfig): IGaugeExtra { return new GaugeExtra({...configuration, registers: [this]}); } - histogram(configuration: HistogramConfig): IHistogram { + histogram(configuration: HistogramConfig): IHistogram { return new Histogram>({...configuration, registers: [this]}); } - avgMinMax(configuration: AvgMinMaxConfig): IAvgMinMax { + avgMinMax(configuration: AvgMinMaxConfig): IAvgMinMax { return new AvgMinMax({...configuration, registers: [this]}); } /** Static metric to send string-based data such as versions, config params, etc */ - static({name, help, value}: StaticConfig): void { + static({name, help, value}: StaticConfig): void { new Gauge({name, help, labelNames: Object.keys(value), registers: [this]}).set(value, 1); } - counter(configuration: CounterConfig): ICounter { + counter(configuration: CounterConfig): ICounter { return new Counter>({...configuration, registers: [this]}); } } diff --git a/packages/utils/src/metrics.ts b/packages/utils/src/metrics.ts index a1f30b6ec20f..1e621cead21a 100644 --- a/packages/utils/src/metrics.ts +++ b/packages/utils/src/metrics.ts @@ -2,9 +2,7 @@ export type LabelsGeneric = Record; export type LabelKeys = Extract; export type CollectFn = (metric: Gauge) => void; -// Type `{}` is required here as alternative types do not work -// eslint-disable-next-line @typescript-eslint/ban-types -export type NoLabels = {}; +export type NoLabels = Record; export interface Gauge { inc: NoLabels extends Labels ? (value?: number) => void : (labels: Labels, value?: number) => void; @@ -57,16 +55,16 @@ export type StaticConfig = { }; export interface MetricsRegister { - gauge(config: GaugeConfig): Gauge; - histogram(config: HistogramConfig): Histogram; - counter(config: CounterConfig): Counter; + gauge(config: GaugeConfig): Gauge; + histogram(config: HistogramConfig): Histogram; + counter(config: CounterConfig): Counter; } export interface MetricsRegisterExtra extends MetricsRegister { - gauge(config: GaugeConfig): GaugeExtra; + gauge(config: GaugeConfig): GaugeExtra; } export interface MetricsRegisterCustom extends MetricsRegisterExtra { - avgMinMax(config: AvgMinMaxConfig): AvgMinMax; - static(config: StaticConfig): void; + avgMinMax(config: AvgMinMaxConfig): AvgMinMax; + static(config: StaticConfig): void; }