首页 > 解决方案 > 在 Nx NestJS 项目中使用 npm 链接包注册 prom-client 指标

问题描述

我有一个 Nx NestJS 项目,其中一些库作为 npm 链接包。一种是注册指标并公开端点/指标。在 Nx NestJS 主项目中,我创建了一个新指标,该指标已成功注册,但如果我在链接包中注册,则注册表成功(我可以使用 registry.getSingleMetric() 方法获得)但未在 /metrics 中公开端点。我怎样才能使整个注册过程正常工作?注册过程是通过使用 GraphQL 解析器中的自定义装饰器完成的,如下所示:</p>

import { GraphQLMetric, GraphQLOperationType } from "../models"
import { createPrometheusMetric, extractMetricHelp, extractMetricName } from "../utils"

export function GraphQLMetrics(params: { type: GraphQLOperationType; metrics: GraphQLMetric[] }) {
    return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
        if (params.metrics?.length) {
            params.metrics.forEach((m) => {
                createPrometheusMetric(extractMetricName(params.type, propertyKey, m), extractMetricHelp(params.type, propertyKey, m), m)
            })
        }
    }
}

我使用的 Prometheus Metrics 控件库的特定是 prom-client

标签: nestjsmetricsprom-client

解决方案


推荐阅读