From 30a52c57082aef26776997142a8b6ff0777bf003 Mon Sep 17 00:00:00 2001 From: Stepanov Andrey Date: Sat, 13 May 2023 09:07:54 +0300 Subject: [PATCH 1/4] Update index.d.ts - Index.d.ts - fix mixed content types --- index.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.d.ts b/index.d.ts index 15d4e269..e44b5162 100644 --- a/index.d.ts +++ b/index.d.ts @@ -9,9 +9,9 @@ export type PrometheusMetricsVersion = '0.0.4'; export type OpenMetricsMIME = 'application/openmetrics-text'; export type OpenMetricsVersion = '1.0.0'; -export type PrometheusContentType = - `${OpenMetricsMIME}; version=${OpenMetricsVersion}; charset=${Charset}`; export type OpenMetricsContentType = + `${OpenMetricsMIME}; version=${OpenMetricsVersion}; charset=${Charset}`; +export type PrometheusContentType = `${PrometheusMIME}; version=${PrometheusMetricsVersion}; charset=${Charset}`; export type RegistryContentType = From 6a4fb3f427dfcea2d74d6912963d99b45c58fe70 Mon Sep 17 00:00:00 2001 From: Stepanov Andrey Date: Sat, 13 May 2023 09:51:42 +0300 Subject: [PATCH 2/4] Update index.d.ts - add generic definition for registry using types --- index.d.ts | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/index.d.ts b/index.d.ts index e44b5162..0109de9c 100644 --- a/index.d.ts +++ b/index.d.ts @@ -119,7 +119,7 @@ export const prometheusContentType: PrometheusContentType; */ export const openMetricsContentType: OpenMetricsContentType; -export class AggregatorRegistry extends Registry { +export class AggregatorRegistry extends Registry { /** * Gets aggregated metrics for all workers. * @return {Promise} Promise that resolves with the aggregated @@ -136,7 +136,7 @@ export class AggregatorRegistry extends Registry { * `registry.getMetricsAsJSON()`. * @return {Registry} aggregated registry. */ - static aggregate(metricsArr: Array): Registry; // TODO Promise? + static aggregate(metricsArr: Array): Registry; // TODO Promise? /** * Sets the registry or registries to be aggregated. Call from workers to @@ -145,7 +145,10 @@ export class AggregatorRegistry extends Registry { * aggregated. * @return {void} */ - static setRegistries(regs: Array | Registry): void; + static setRegistries(regs: + | Array | Registry> + | Registry + | Registry): void; } /** @@ -655,13 +658,13 @@ export namespace Summary { /** * Push metrics to a Pushgateway */ -export class Pushgateway { +export class Pushgateway { /** * @param url Complete url to the Pushgateway. If port is needed append url with :port * @param options Options * @param registry Registry */ - constructor(url: string, options?: any, registry?: Registry); + constructor(url: string, options?: any, registry?: Registry); /** * Add metric and overwrite old ones @@ -729,8 +732,8 @@ export function exponentialBuckets( count: number, ): number[]; -export interface DefaultMetricsCollectorConfiguration { - register?: Registry; +export interface DefaultMetricsCollectorConfiguration { + register?: Registry; prefix?: string; gcDurationBuckets?: number[]; eventLoopMonitoringPrecision?: number; @@ -741,8 +744,8 @@ export interface DefaultMetricsCollectorConfiguration { * Configure default metrics * @param config Configuration object for default metrics collector */ -export function collectDefaultMetrics( - config?: DefaultMetricsCollectorConfiguration, +export function collectDefaultMetrics( + config?: DefaultMetricsCollectorConfiguration, ): void; export interface defaultMetrics { From 535f49dc1860f328f14d6bcf81bc3e1f0785cabe Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Sat, 13 May 2023 18:28:46 +0200 Subject: [PATCH 3/4] prettier --- index.d.ts | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/index.d.ts b/index.d.ts index 0109de9c..a0968138 100644 --- a/index.d.ts +++ b/index.d.ts @@ -119,7 +119,9 @@ export const prometheusContentType: PrometheusContentType; */ export const openMetricsContentType: OpenMetricsContentType; -export class AggregatorRegistry extends Registry { +export class AggregatorRegistry< + T extends RegistryContentType, +> extends Registry { /** * Gets aggregated metrics for all workers. * @return {Promise} Promise that resolves with the aggregated @@ -136,7 +138,9 @@ export class AggregatorRegistry extends Registry< * `registry.getMetricsAsJSON()`. * @return {Registry} aggregated registry. */ - static aggregate(metricsArr: Array): Registry; // TODO Promise? + static aggregate( + metricsArr: Array, + ): Registry; // TODO Promise? /** * Sets the registry or registries to be aggregated. Call from workers to @@ -145,10 +149,14 @@ export class AggregatorRegistry extends Registry< * aggregated. * @return {void} */ - static setRegistries(regs: - | Array | Registry> - | Registry - | Registry): void; + static setRegistries( + regs: + | Array< + Registry | Registry + > + | Registry + | Registry, + ): void; } /** @@ -732,7 +740,9 @@ export function exponentialBuckets( count: number, ): number[]; -export interface DefaultMetricsCollectorConfiguration { +export interface DefaultMetricsCollectorConfiguration< + T extends RegistryContentType, +> { register?: Registry; prefix?: string; gcDurationBuckets?: number[]; From 81a00c10187394b9661caa87d47193501fd6feee Mon Sep 17 00:00:00 2001 From: Simen Bekkhus Date: Sat, 13 May 2023 18:29:55 +0200 Subject: [PATCH 4/4] changelog --- CHANGELOG.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53c8e619..fc109037 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,6 @@ project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] -### Changed - -- Cleanup code and refactor to be more efficient - ### Breaking - drop support for Node.js versions 10, 12 and 17 @@ -23,6 +19,8 @@ project adheres to [Semantic Versioning](http://semver.org/). avoid failures from the server when using `Content-Encoding: gzip` header. - Refactor `escapeString` helper in `lib/registry.js` to improve performance and avoid an unnecessarily complex regex. +- Cleanup code and refactor to be more efficient +- Correct TS types for working with OpenMetrics ### Added