@@ -9,9 +9,9 @@ export type PrometheusMetricsVersion = '0.0.4';
9
9
export type OpenMetricsMIME = 'application/openmetrics-text' ;
10
10
export type OpenMetricsVersion = '1.0.0' ;
11
11
12
- export type PrometheusContentType =
13
- `${OpenMetricsMIME } ; version=${OpenMetricsVersion } ; charset=${Charset } `;
14
12
export type OpenMetricsContentType =
13
+ `${OpenMetricsMIME } ; version=${OpenMetricsVersion } ; charset=${Charset } `;
14
+ export type PrometheusContentType =
15
15
`${PrometheusMIME } ; version=${PrometheusMetricsVersion } ; charset=${Charset } `;
16
16
17
17
export type RegistryContentType =
@@ -119,7 +119,9 @@ export const prometheusContentType: PrometheusContentType;
119
119
*/
120
120
export const openMetricsContentType : OpenMetricsContentType ;
121
121
122
- export class AggregatorRegistry extends Registry {
122
+ export class AggregatorRegistry <
123
+ T extends RegistryContentType ,
124
+ > extends Registry < T > {
123
125
/**
124
126
* Gets aggregated metrics for all workers.
125
127
* @return {Promise<string> } Promise that resolves with the aggregated
@@ -136,7 +138,9 @@ export class AggregatorRegistry extends Registry {
136
138
* `registry.getMetricsAsJSON()`.
137
139
* @return {Registry } aggregated registry.
138
140
*/
139
- static aggregate ( metricsArr : Array < Object > ) : Registry ; // TODO Promise?
141
+ static aggregate < T extends RegistryContentType > (
142
+ metricsArr : Array < Object > ,
143
+ ) : Registry < T > ; // TODO Promise?
140
144
141
145
/**
142
146
* Sets the registry or registries to be aggregated. Call from workers to
@@ -145,7 +149,14 @@ export class AggregatorRegistry extends Registry {
145
149
* aggregated.
146
150
* @return {void }
147
151
*/
148
- static setRegistries ( regs : Array < Registry > | Registry ) : void ;
152
+ static setRegistries (
153
+ regs :
154
+ | Array <
155
+ Registry < PrometheusContentType > | Registry < OpenMetricsContentType >
156
+ >
157
+ | Registry < PrometheusContentType >
158
+ | Registry < OpenMetricsContentType > ,
159
+ ) : void ;
149
160
}
150
161
151
162
/**
@@ -655,13 +666,13 @@ export namespace Summary {
655
666
/**
656
667
* Push metrics to a Pushgateway
657
668
*/
658
- export class Pushgateway {
669
+ export class Pushgateway < T extends RegistryContentType > {
659
670
/**
660
671
* @param url Complete url to the Pushgateway. If port is needed append url with :port
661
672
* @param options Options
662
673
* @param registry Registry
663
674
*/
664
- constructor ( url : string , options ?: any , registry ?: Registry ) ;
675
+ constructor ( url : string , options ?: any , registry ?: Registry < T > ) ;
665
676
666
677
/**
667
678
* Add metric and overwrite old ones
@@ -729,8 +740,10 @@ export function exponentialBuckets(
729
740
count : number ,
730
741
) : number [ ] ;
731
742
732
- export interface DefaultMetricsCollectorConfiguration {
733
- register ?: Registry ;
743
+ export interface DefaultMetricsCollectorConfiguration <
744
+ T extends RegistryContentType ,
745
+ > {
746
+ register ?: Registry < T > ;
734
747
prefix ?: string ;
735
748
gcDurationBuckets ?: number [ ] ;
736
749
eventLoopMonitoringPrecision ?: number ;
@@ -741,8 +754,8 @@ export interface DefaultMetricsCollectorConfiguration {
741
754
* Configure default metrics
742
755
* @param config Configuration object for default metrics collector
743
756
*/
744
- export function collectDefaultMetrics (
745
- config ?: DefaultMetricsCollectorConfiguration ,
757
+ export function collectDefaultMetrics < T extends RegistryContentType > (
758
+ config ?: DefaultMetricsCollectorConfiguration < T > ,
746
759
) : void ;
747
760
748
761
export interface defaultMetrics {
0 commit comments