@@ -9,20 +9,22 @@ import type { MessageVersionGeneratingFunction, PrometheusMetricParams } from '.
9
9
export abstract class PrometheusMessageMetric <
10
10
MessagePayload extends object ,
11
11
MetricType extends Metric ,
12
+ MetricParams extends
13
+ PrometheusMetricParams < MessagePayload > = PrometheusMetricParams < MessagePayload > ,
12
14
> implements MessageMetricsManager < MessagePayload >
13
15
{
14
16
/** Fallbacks to null if metrics are disabled on app level */
15
17
protected readonly metric : MetricType
16
18
17
19
protected readonly messageVersionGeneratingFunction : MessageVersionGeneratingFunction < MessagePayload >
18
20
19
- private readonly metricParams : PrometheusMetricParams < MessagePayload >
21
+ private readonly metricParams : MetricParams
20
22
21
23
/**
22
24
* @param metricParams - metrics parameters (see PrometheusMetricParams)
23
25
* @param client - use it to specify custom Prometheus client
24
26
*/
25
- constructor ( metricParams : PrometheusMetricParams < MessagePayload > , client ?: typeof promClient ) {
27
+ constructor ( metricParams : MetricParams , client ?: typeof promClient ) {
26
28
this . metricParams = metricParams
27
29
this . messageVersionGeneratingFunction =
28
30
this . resolveMessageVersionGeneratingFunction ( metricParams )
@@ -38,15 +40,12 @@ export abstract class PrometheusMessageMetric<
38
40
}
39
41
40
42
private resolveMessageVersionGeneratingFunction (
41
- metricParams : PrometheusMetricParams < MessagePayload > ,
43
+ metricParams : MetricParams ,
42
44
) : MessageVersionGeneratingFunction < MessagePayload > {
43
45
const messageVersion = metricParams . messageVersion
44
46
return typeof messageVersion === 'function' ? messageVersion : ( ) => messageVersion
45
47
}
46
48
47
- protected abstract createMetric (
48
- client : typeof promClient ,
49
- metricParams : PrometheusMetricParams < MessagePayload > ,
50
- ) : MetricType
49
+ protected abstract createMetric ( client : typeof promClient , metricParams : MetricParams ) : MetricType
51
50
abstract registerProcessedMessage ( metadata : ProcessedMessageMetadata < MessagePayload > ) : void
52
51
}
0 commit comments