# @christiangalsterer/kafkajs-prometheus-exporter 中文文档

规范地址：https://npmcn.com/package/%40christiangalsterer/kafkajs-prometheus-exporter/

版本：3\.2\.1
npm 元数据更新时间：2025-09-14T11:24:20.277Z
中文译文更新时间：2026-11-09T15:07:04.727Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40christiangalsterer/kafkajs-prometheus-exporter
原文对照：https://npmcn.com/package/%40christiangalsterer/kafkajs-prometheus-exporter/?lang=original
项目主页：https://github.com/christiangalsterer/kafkajs-prometheus-exporter#readme
源码仓库：https://github.com/christiangalsterer/kafkajs-prometheus-exporter

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：108 kB，39 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：2 个
- 首次发布：2023-08-26T13:28:22.761Z
- 最新版本发布：2025-09-14T11:24:20.094Z
- 近 30 天下载量：3197（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 0 个）

## 中文简介

卡夫卡日的相模导出器

## 安装

```sh
npm install @christiangalsterer/kafkajs-prometheus-exporter
```

也可以使用：`pnpm add @christiangalsterer/kafkajs-prometheus-exporter`、`yarn add @christiangalsterer/kafkajs-prometheus-exporter`、`bun add @christiangalsterer/kafkajs-prometheus-exporter`

## README

[![GitHub Actions CI Status](https://github.com/christiangalsterer/kafkajs-prometheus-exporter/actions/workflows/build.yaml/badge.svg)](https://github.com/christiangalsterer/kafkajs-prometheus-exporter/actions/workflows/build.yaml) [![codecov](https://codecov.io/gh/christiangalsterer/kafkajs-prometheus-exporter/graph/badge.svg?token=Y91U2SLNHM)](https://codecov.io/gh/christiangalsterer/kafkajs-prometheus-exporter) [![Coverage Status](https://coveralls.io/repos/github/christiangalsterer/kafkajs-prometheus-exporter/badge.svg?branch=main)](https://coveralls.io/github/christiangalsterer/kafkajs-prometheus-exporter?branch=main) [![Known Vulnerabilities](https://snyk.io/test/github/christiangalsterer/kafkajs-prometheus-exporter/badge.svg)](https://github.com/christiangalsterer/kafkajs-prometheus-exporter/security/advisories) [![npm downloads](https://img.shields.io/npm/dt/@christiangalsterer/kafkajs-prometheus-exporter.svg)](https://www.npmjs.com/package/@christiangalsterer/kafkajs-prometheus-exporter) [![npm version](https://img.shields.io/npm/v/@christiangalsterer/kafkajs-prometheus-exporter.svg)](https://www.npmjs.com/package/@christiangalsterer/kafkajs-prometheus-exporter?activeTab=versions) [![npm license](https://img.shields.io/npm/l/@christiangalsterer/kafkajs-prometheus-exporter.svg)](https://www.npmjs.com/package/@christiangalsterer/kafkajs-prometheus-exporter) [![semver](https://img.shields.io/badge/semver-2.0.0-green)](https://semver.org/) [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org/) [![renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://developer.mend.io/github/christiangalsterer/kafkajs-prometheus-exporter) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) ![github stars](https://img.shields.io/github/stars/christiangalsterer/kafkajs-prometheus-exporter.svg)

# KafkaJS 普罗米修斯出口国

月球导出器 显示度量衡 [卡夫卡·贾斯](https://kafka.js.org/)。 。 。 .

计量单位名称沿用了下列方法使用的相同命名惯例: [卡夫卡 JMX 甲基溴](https://kafka.apache.org/documentation/#monitoring) 财务报告和审定财务报表 [微米](https://github.com/micrometer-metrics/micrometer)。这允许在仪表板上使用相同的度量衡,并跨不同技术堆栈发出警报,例如,在不同的应用中使用Spring Boot和Node.js时.

## 可用计量

出口商提供以下衡量标准.

### 生产者计量

| 计量名称 | 说明 | 标签 | 自兹 |
| --- | --- | --- | --- |
| kafka 生产者 连接 计数 | 目前与经纪人建立的有效联系的数目 |  | 0.8.0 (中文(简体) ) |
| kafka 出品人 连接 娱乐 总 | 与经纪人建立联系的总数 |  | 0.8.0 (中文(简体) ) |
| kafka 出品人 连接 接近 总计 | 与经纪人关闭的连接总数 |  | 0.8.0 (中文(简体) ) |
| kafka 出品人 请求 期限 秒 桶 | 处理生产者请求所需的时间. | 
-   _经纪人_: 经纪人



 | 3.1.0 (中文(简体) ) |
| kafka 生产者 请求 期限 秒 sum | 处理生产者申请的累计时间. | 

-   _经纪人_: 经纪人



 | 3.1.0 (中文(简体) ) |
| kafka 制作者 请求 期限 秒 计数 | 制作人申请总数. | 

-   _经纪人_: 经纪人



 | 3.1.0 (中文(简体) ) |
| kafka 制作者 请求 总计 | 发出的请求总数. | 

-   _客户端( d)_: 向服务器发送请求时的 id 字符串 。 这样做的目的是通过允许一个逻辑应用程序名称来追踪请求源以外的仅仅是ip/port. 客户端 id 在同一应用程序的多个实例中共享.
-   _经纪人_: 经纪人



 | 0.8.0 (中文(简体) ) |
| kafka 生产者 请求 大小 总计 | 发送请求的大小 . | 

-   _客户端( d)_: 向服务器发送请求时的 id 字符串 。 这样做的目的是通过允许一个逻辑应用程序名称来追踪请求源以外的仅仅是ip/port. 客户端 id 在同一应用程序的多个实例中共享.
-   _经纪人_: 经纪人



 | 0.9.0 (中文(简体) ) |
| kafka 出品人 请求 队列 大小 | 请求队列大小 . | 

-   _客户端( d)_: 向服务器发送请求时的 id 字符串 。 这样做的目的是通过允许一个逻辑应用程序名称来追踪请求源以外的仅仅是ip/port. 客户端 id 在同一应用程序的多个实例中共享.
-   _经纪人_: 经纪人



 | 0.8.0 (中文(简体) ) |

### 消费者计量

| 计量名称 | 说明 | 标签 | 自兹 |
| --- | --- | --- | --- |
| kafka 消费者 连接 计数 | 目前与经纪人建立的有效联系的数目 |  | 0.8.0 (中文(简体) ) |
| kafka 消费者 连接 娱乐 总 | 与经纪人建立联系的总数 |  | 0.8.0 (中文(简体) ) |
| kafka 消费者 连接 接近 总计 | 与经纪人关闭的连接总数 |  | 0.8.0 (中文(简体) ) |
| kafka 消费者 连接 崩溃 总计 | 与经纪人连接的崩溃总数 | 
-   _组( d)_:消费集团的ID.
-   _错误_: 导致连接崩溃的错误 .
-   _重新启动_:确定连接是否自动重新启动.



 | 0.8.0 (中文(简体) ) |
| kafka 消费者 心跳 总 | 与经纪人的心跳总数 | 

-   _组( d)_:消费集团的ID.
-   _成员( d)_:消费集团成员.



 | 0.8.0 (中文(简体) ) |
| kafka 消费者 请求 期限 秒 桶 | 处理消费者请求所需的时间. | 

-   _经纪人_: 经纪人



 | 3.1.0 (中文(简体) ) |
| kafka 消费者 请求 期限 秒 sum | 处理消费者请求的累计时间. | 

-   _经纪人_: 经纪人



 | 3.1.0 (中文(简体) ) |
| kafka 消费者 请求 期限 秒 计数 | 消费请求总数. | 

-   _经纪人_: 经纪人



 | 3.1.0 (中文(简体) ) |
| kafka 消费者 请求 总计 | 发出的请求总数. | 

-   _经纪人_: 经纪人



 | 0.8.0 (中文(简体) ) |
| kafka 消费者 请求 队列 大小 | 请求队列大小 . | 

-   _经纪人_: 经纪人



 | 0.8.0 (中文(简体) ) |
| kafka 消费者 请求 大小 总计 | 发送请求的大小 . | 

-   _经纪人_: 经纪人



 | 0.9.0 (中文(简体) ) |
| kafka 消费者 牵引 期限 秒 桶 | 处理取回请求所需的时间 . |  | 3.1.0 (中文(简体) ) |
| kafka 消费者 比较 期限 秒 sum | 处理请求的累计时间 . |  | 3.1.0 (中文(简体) ) |
| kafka 消费者 比较 长度 秒 计数 | 获取请求的总数 . |  | 3.1.0 (中文(简体) ) |
| **折旧** kafka 消费者 比较 纬度 | 处理取回请求所需的时间 . |  | 0.8.0 (中文(简体) ) |
| kafka 消费者 比较 总计 | 获取请求的总数 . |  | 0.8.0 (中文(简体) ) |
| kafka 消费者 批量 大小 总计 | 每个分区收到的字节数 | 

-   _专题_: 信息使用的主题.
-   _分区_: 将信息从中消耗的话题分出.



 | 0.9.0 (中文(简体) ) |
| kafka 消费者 批量 期限 秒 桶 | 处理一批货物花费的时间. | 

-   _专题_: 信息使用的主题.
-   _分区_: 将信息从中消耗的话题分出.



 | 3.1.0 (中文(简体) ) |
| kafka 消费者 批量 期限 秒 sum | 加工批次的累计时间. | 

-   _专题_: 信息使用的主题.
-   _分区_: 将信息从中消耗的话题分出.



 | 3.1.0 (中文(简体) ) |
| kafka 消费者 批量 期限 秒 计数 | 批次总数. | 

-   _专题_: 信息使用的主题.
-   _分区_: 将信息从中消耗的话题分出.



 | 3.1.0 (中文(简体) ) |
| **折旧** kafka 消费者 批次 纬度 | 处理一批货物花费的时间. | 

-   _专题_: 信息使用的主题.
-   _分区_: 将信息从中消耗的话题分出.



 | 0.8.0 (中文(简体) ) |

### 行政计量

| 计量名称 | 说明 | 标签 | 自兹 |
| --- | --- | --- | --- |
| kafka admin 连接 计数 | 目前与经纪人建立的有效联系的数目 |  | 1.0.0 (单位:千美元) |
| kafka admin 连接 娱乐 总 | 与经纪人建立联系的总数 |  | 1.0.0 (单位:千美元) |
| kafka admin 连接 关闭 总计 | 与经纪人关闭的连接总数 |  | 1.0.0 (单位:千美元) |
| kafka admin 请求 期限 秒 桶 | 处理行政请求所需的时间. | 
-   _经纪人_: 经纪人



 | 3.1.0 (中文(简体) ) |
| kafka admin 请求 期限 秒 sum | 处理管理请求的累计时间. | 

-   _经纪人_: 经纪人



 | 3.1.0 (中文(简体) ) |
| kafka admin 请求 期限 秒 计数 | 行政请求总数. | 

-   _经纪人_: 经纪人



 | 3.1.0 (中文(简体) ) |
| kafka admin 请求总数 | 发出的请求总数. | 

-   _经纪人_: 经纪人



 | 1.0.0 (单位:千美元) |
| kafka admin 请求 大小 总计 | 发送请求的大小 . | 

-   _经纪人_: 经纪人



 | 1.0.0 (单位:千美元) |
| kafka admin request queue 大小 | 请求队列大小 . | 

-   _经纪人_: 经纪人



 | 1.0.0 (单位:千美元) |

## 客户端ID

记录如下: [KafkaJS 文档](https://kafka.js.org/docs/configuration#client-id) 客户端- id 是同一应用程序多个实例共享的应用程序的逻辑标识符。 在出口国 v 2. 0.0 之前, 客户端 id 是指定参数 _kafkaJS 显示器_, (中文(简体) ), _卡夫卡JS用户_ 财务报告和审定财务报表 _监视器 KafkaJSAdmin_ ,但从v2.0.0开始删除,参见 [更改日志](https://npmcn.com/CHANGELOG.md) 详细情况.

直至KafkaJS仪器事件\]([https://kafka.js.org/docs/ 文书-活动](https://kafka.js.org/docs/instrumentation-events)) 不要为它的所有事件提供客户端 id **强烈的** 建议如下例所示,将客户端 id作为默认标签添加.

```ts
    kafkaExporter.monitorKafkaJSProducer(producer, register, { defaultLabels: {client_id:'nodejs-example-app'} })
```

## 示例输出

这里举出一个实例,以提供的度量符的正方形格式输出.

```sh
# HELP kafka_consumer_connection_count The current number of active connections established with a broker
# TYPE kafka_consumer_connection_count gauge
kafka_consumer_connection_count{client_id="nodejs-example-app",alice="bob"} 2

# HELP kafka_consumer_connection_creation_total The total number of connections established with a broker
# TYPE kafka_consumer_connection_creation_total counter
kafka_consumer_connection_creation_total{client_id="nodejs-example-app",alice="bob"} 2

# HELP kafka_consumer_connection_close_total The total number of connections closed with a broker
# TYPE kafka_consumer_connection_close_total counter

# HELP kafka_consumer_connection_crashed_total The total number of crashed connections with a broker
# TYPE kafka_consumer_connection_crashed_total counter

# HELP kafka_consumer_heartbeat_total The total number of heartbeats with a broker
# TYPE kafka_consumer_heartbeat_total counter
kafka_consumer_heartbeat_total{client_id="nodejs-example-app",group_id="myGroupId",member_id="nodejs-example-app-e8962841-acad-4c88-a076-f4f4fa9f27bd",alice="bob"} 7

# HELP kafka_consumer_request_total The total number of requests sent.
# TYPE kafka_consumer_request_total counter
kafka_consumer_request_total{client_id="nodejs-example-app",broker="broker1:9094",alice="bob"} 37
kafka_consumer_request_total{client_id="nodejs-example-app",broker="broker2:9094",alice="bob"} 186
kafka_consumer_request_total{client_id="nodejs-example-app",broker="broker3:9094",alice="bob"} 34

# HELP kafka_consumer_request_size_total The size of any request sent.
# TYPE kafka_consumer_request_size_total counter
kafka_consumer_request_size_total{client_id="nodejs-example-app",broker="broker1:9094",alice="bob"} 458
kafka_consumer_request_size_total{client_id="nodejs-example-app",broker="broker2:9094",alice="bob"} 40
kafka_consumer_request_size_total{client_id="nodejs-example-app",broker="broker3:9094",alice="bob"} 458

# HELP kafka_consumer_request_queue_size Size of the request queue.
# TYPE kafka_consumer_request_queue_size gauge

# HELP kafka_consumer_fetch_duration_seconds The time taken for a fetch request.
# TYPE kafka_consumer_fetch_duration_seconds histogram
kafka_consumer_fetch_duration_seconds_bucket{le="0.001",client_id="nodejs-example-app",alice="bob"} 0
kafka_consumer_fetch_duration_seconds_bucket{le="0.005",client_id="nodejs-example-app",alice="bob"} 0
kafka_consumer_fetch_duration_seconds_bucket{le="0.01",client_id="nodejs-example-app",alice="bob"} 0
kafka_consumer_fetch_duration_seconds_bucket{le="0.02",client_id="nodejs-example-app",alice="bob"} 0
kafka_consumer_fetch_duration_seconds_bucket{le="0.03",client_id="nodejs-example-app",alice="bob"} 0
kafka_consumer_fetch_duration_seconds_bucket{le="0.04",client_id="nodejs-example-app",alice="bob"} 0
kafka_consumer_fetch_duration_seconds_bucket{le="0.05",client_id="nodejs-example-app",alice="bob"} 24
kafka_consumer_fetch_duration_seconds_bucket{le="0.1",client_id="nodejs-example-app",alice="bob"} 79
kafka_consumer_fetch_duration_seconds_bucket{le="0.2",client_id="nodejs-example-app",alice="bob"} 82
kafka_consumer_fetch_duration_seconds_bucket{le="0.5",client_id="nodejs-example-app",alice="bob"} 84
kafka_consumer_fetch_duration_seconds_bucket{le="1",client_id="nodejs-example-app",alice="bob"} 86
kafka_consumer_fetch_duration_seconds_bucket{le="2",client_id="nodejs-example-app",alice="bob"} 86
kafka_consumer_fetch_duration_seconds_bucket{le="5",client_id="nodejs-example-app",alice="bob"} 86
kafka_consumer_fetch_duration_seconds_bucket{le="10",client_id="nodejs-example-app",alice="bob"} 86
kafka_consumer_fetch_duration_seconds_bucket{le="+Inf",client_id="nodejs-example-app",alice="bob"} 86
kafka_consumer_fetch_duration_seconds_sum{client_id="nodejs-example-app",alice="bob"} 6.728
kafka_consumer_fetch_duration_seconds_count{client_id="nodejs-example-app",alice="bob"} 86

# HELP kafka_consumer_fetch_total The total number of fetch requests.
# TYPE kafka_consumer_fetch_total counter
kafka_consumer_fetch_total{client_id="nodejs-example-app",alice="bob"} 86

# HELP kafka_consumer_batch_size_total The number of bytes received per partition per request
# TYPE kafka_consumer_batch_size_total counter
kafka_consumer_batch_size_total{client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 1
kafka_consumer_batch_size_total{client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 1
kafka_consumer_batch_size_total{client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 1
kafka_consumer_batch_size_total{client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 1
kafka_consumer_batch_size_total{client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 1

# HELP kafka_consumer_batch_duration_seconds The time taken for processing a batch.
# TYPE kafka_consumer_batch_duration_seconds histogram
kafka_consumer_batch_duration_seconds_bucket{le="0.001",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 21
kafka_consumer_batch_duration_seconds_bucket{le="0.005",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.01",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.02",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.03",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.04",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.05",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.1",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.2",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.5",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="1",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="2",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="5",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="10",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="+Inf",client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 28
kafka_consumer_batch_duration_seconds_sum{client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 0.12200000000000003
kafka_consumer_batch_duration_seconds_count{client_id="nodejs-example-app",topic="topic1",partition="2",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.001",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 26
kafka_consumer_batch_duration_seconds_bucket{le="0.005",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.01",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.02",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.03",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.04",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.05",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.1",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.2",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.5",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="1",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="2",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="5",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="10",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="+Inf",client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_sum{client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 0.024000000000000014
kafka_consumer_batch_duration_seconds_count{client_id="nodejs-example-app",topic="topic1",partition="1",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.001",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 25
kafka_consumer_batch_duration_seconds_bucket{le="0.005",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.01",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.02",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.03",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.04",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.05",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.1",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.2",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.5",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="1",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="2",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="5",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="10",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="+Inf",client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_sum{client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 0.025000000000000012
kafka_consumer_batch_duration_seconds_count{client_id="nodejs-example-app",topic="topic1",partition="4",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.001",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 21
kafka_consumer_batch_duration_seconds_bucket{le="0.005",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.01",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.02",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.03",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.04",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.05",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.1",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.2",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.5",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="1",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="2",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="5",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="10",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="+Inf",client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_sum{client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 0.039000000000000014
kafka_consumer_batch_duration_seconds_count{client_id="nodejs-example-app",topic="topic1",partition="3",alice="bob"} 27
kafka_consumer_batch_duration_seconds_bucket{le="0.001",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 26
kafka_consumer_batch_duration_seconds_bucket{le="0.005",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.01",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.02",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.03",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.04",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.05",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.1",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.2",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="0.5",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="1",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="2",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="5",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="10",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_bucket{le="+Inf",client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28
kafka_consumer_batch_duration_seconds_sum{client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 0.023000000000000013
kafka_consumer_batch_duration_seconds_count{client_id="nodejs-example-app",topic="topic1",partition="0",alice="bob"} 28

# HELP kafka_producer_connection_count The current number of active connections established with a broker
# TYPE kafka_producer_connection_count gauge
kafka_producer_connection_count{client_id="nodejs-example-app",foo="bar"} 342

# HELP kafka_producer_connection_creation_total The total number of connections established with a broker
# TYPE kafka_producer_connection_creation_total counter
kafka_producer_connection_creation_total{client_id="nodejs-example-app",foo="bar"} 342

# HELP kafka_producer_connection_close_total The total number of connections closed with a broker
# TYPE kafka_producer_connection_close_total counter

# HELP kafka_producer_request_total The total number of requests sent.
# TYPE kafka_producer_request_total counter
kafka_producer_request_total{client_id="nodejs-example-app",broker="broker2:9094",foo="bar"} 72
kafka_producer_request_total{client_id="nodejs-example-app",broker="broker3:9094",foo="bar"} 139
kafka_producer_request_total{client_id="nodejs-example-app",broker="broker1:9094",foo="bar"} 139

# HELP kafka_producer_request_size_total The size of any request sent.
# TYPE kafka_producer_request_size_total counter
kafka_producer_request_size_total{client_id="nodejs-example-app",broker="broker2:9094",foo="bar"} 649
kafka_producer_request_size_total{client_id="nodejs-example-app",broker="broker3:9094",foo="bar"} 457
kafka_producer_request_size_total{client_id="nodejs-example-app",broker="broker1:9094",foo="bar"} 585

# HELP kafka_producer_request_queue_size Size of the request queue.
# TYPE kafka_producer_request_queue_size gauge

# HELP kafka_admin_connection_count The current number of active connections established with a broker
# TYPE kafka_admin_connection_count gauge
kafka_admin_connection_count{client_id="nodejs-example-app",foo="bar"} 0

# HELP kafka_admin_connection_creation_total The total number of connections established with a broker
# TYPE kafka_admin_connection_creation_total counter
kafka_admin_connection_creation_total{client_id="nodejs-example-app",foo="bar"} 11

# HELP kafka_admin_connection_close_total The total number of connections closed with a broker
# TYPE kafka_admin_connection_close_total counter
kafka_admin_connection_close_total{client_id="nodejs-example-app",foo="bar"} 11

# HELP kafka_admin_request_total The total number of requests sent.
# TYPE kafka_admin_request_total counter
kafka_admin_request_total{client_id="nodejs-example-app",broker="broker2:9094",foo="bar"} 32
kafka_admin_request_total{client_id="nodejs-example-app",broker="broker3:9094",foo="bar"} 4
kafka_admin_request_total{client_id="nodejs-example-app",broker="broker1:9094",foo="bar"} 8

# HELP kafka_admin_request_size_total The size of any request sent.
# TYPE kafka_admin_request_size_total counter
kafka_admin_request_size_total{client_id="nodejs-example-app",broker="broker2:9094",foo="bar"} 5499
kafka_admin_request_size_total{client_id="nodejs-example-app",broker="broker3:9094",foo="bar"} 687
kafka_admin_request_size_total{client_id="nodejs-example-app",broker="broker1:9094",foo="bar"} 1376

# HELP kafka_admin_request_queue_size Size of the request queue.
# TYPE kafka_admin_request_queue_size gauge
```

# 使用量

## 依赖性

在您的工程中添加以下依赖性以下载软件包 [无](https://www.npmjs.com/package/@christiangalsterer/kafkajs-prometheus-exporter)。 。 。 .

```sh
npm i @christiangalsterer/kafkajs-prometheus-exporter
```

## 类型脚本

以下例子说明如何利用出口商对KafkaJS进行监测.

```ts
import { Kafka } from "kafkajs";
import { Registry, collectDefaultMetrics } from "prom-client";
import { monitorKafkaJSProducer, monitorKafkaJSConsumer, monitorKafkaJSAdmin } from "@christiangalsterer/kafkajs-prometheus-exporter";

...

// set up the KafkaJS client
const clientId = 'myClientId'
const kafka = new Kafka({
    clientId: clientId,
    brokers: ['localhost:9094'],
})

const producer = kafka.producer()
const consumer = kafka.consumer({ groupId: 'myGroupId' })
const admin = kafka.admin()

// set up the prometheus client
const register = new Registry();
collectDefaultMetrics({ register })

// monitor KafkaJS producer
monitorKafkaJSProducer(producer, register, { defaultLabels: {client_id: clientId} })

// monitor KafkaJS consumer
monitorKafkaJSConsumer(consumer, register, { defaultLabels: {client_id: clientId} })

// monitor KafkaJS admin
monitorKafkaJSAdmin(admin, register, { defaultLabels: {client_id: clientId} })

...

// connect to Kafka *after* calling monitorKafkaJSProducer() / monitorKafkaJSConsumer / monitorKafkaJSAdmin
await producer.connect()
await consumer.connect()
await admin.connect()
```

## Java 脚本

以下例子说明如何利用出口商监测KafkaJS.

```js
const Kafka = require('kafkajs')
const promClient = require( 'prom-client');
const kafkaExporter = require('@christiangalsterer/kafkajs-prometheus-exporter')

...

// set up the KafkaJS client
const clientId = 'myClientId'
const kafka = new Kafka({
    clientId: clientId,
    brokers: ['localhost:9094'],
})

const producer = kafka.producer()
const consumer = kafka.consumer({ groupId: 'myGroupId' })
const admin = kafka.admin()

// set up the prometheus client
const collectDefaultMetrics = promClient.collectDefaultMetrics;
const Registry = promClient.Registry;
const register = new Registry();
collectDefaultMetrics({ register });

// monitor KafkaJS producer
kafkaExporter.monitorKafkaJSProducer(producer, register, { defaultLabels: {client_id: clientId} })

// monitor KafkaJS consumer
kafkaExporter.monitorKafkaJSConsumer(consumer, register, { defaultLabels: {client_id: clientId} })

// monitor KafkaJS admin
kafkaExporter.monitorKafkaJSAdmin(admin, register, { defaultLabels: {client_id: clientId} })

...

// connect to Kafka *after* calling monitorKafkaJSProducer() / monitorKafkaJSConsumer / monitorKafkaJSAdmin
await producer.connect()
await consumer.connect()
await admin.connect()
```

# 配置

出口商可以通过类型可选参数指定的属性配置 _KafkaJS 生产商输出者选项_, (中文(简体) ), _KafkaJS 消费者输出选项_ 财务报告和审定财务报表 _KafkaJSAdmin 输出者选项_ 页:1.

## KafkaJS 生产商输出者选项

| 属性 | 说明 | 示例 | 自兹 |
| --- | --- | --- | --- |
| 制作人 请求时间 HistogramBuckets | Kafka 生产者 请求 期限 秒的公制 。 默认桶为\[0.001,0.005,0.01,0.02,0.03,0.04,0.05,0.1,0.2,0.5,1,2,5,10\] | \[0.001、0.005、0.01、0.02、0.03、0.04、0.05、0.1、0.2、0.5、1、2、5、10\] | 3.1.0 (中文(简体) ) |
| 默认标签 | 默认标签添加到每个参数中 . | {'foo':'bar','alice': 3} (中文(简体) ) | 0.8.0 (中文(简体) ) |

## KafkaJS 消费者输出选项

| 属性 | 说明 | 示例 | 自兹 |
| --- | --- | --- | --- |
| 消费者请求 | Kafka 消费者 请求 期限 秒的公制 。 默认桶为\[0.001,0.005,0.01,0.02,0.03,0.04,0.05,0.1,0.2,0.5,1,2,5,10\] | \[0.001、0.005、0.01、0.02、0.03、0.04、0.05、0.1、0.2、0.5、1、2、5、10\] | 3.1.0 (中文(简体) ) |
| 消费批量定义 | Kafka 消费者 批量 期限 秒的公制 。 默认桶为\[0.001,0.005,0.01,0.02,0.03,0.04,0.05,0.1,0.2,0.5,1,2,5,10\] | \[0.001、0.005、0.01、0.02、0.03、0.04、0.05、0.1、0.2、0.5、1、2、5、10\] | 0.8.0 (中文(简体) ) |
| **折旧** 消费者批量LATENCE 数据包 | Kafka 消费者 批量 纬度度度度量以秒计 。 默认桶为\[0.001,0.005,0.01,0.02,0.03,0.04,0.05,0.1,0.2,0.5,1,2,5,10\] | \[0.001、0.005、0.01、0.02、0.03、0.04、0.05、0.1、0.2、0.5、1、2、5、10\] | 0.8.0 (中文(简体) ) |
| 消费对比线 | Kafka 消费者 牵引 时间长度 秒的公制 。 默认桶为\[0.001,0.005,0.01,0.02,0.03,0.04,0.05,0.1,0.2,0.5,1,2,5,10\] | \[0.001、0.005、0.01、0.02、0.03、0.04、0.05、0.1、0.2、0.5、1、2、5、10\] | 0.8.0 (中文(简体) ) |
| **折旧** 消费者列表 HistogramBuckets | Kafka 消费者 fetch 纬度度度度量以秒计 。 默认桶为\[0.001,0.005,0.01,0.02,0.03,0.04,0.05,0.1,0.2,0.5,1,2,5,10\] | \[0.001、0.005、0.01、0.02、0.03、0.04、0.05、0.1、0.2、0.5、1、2、5、10\] | 0.8.0 (中文(简体) ) |
| 默认标签 | 默认标签添加到每个参数中 . | {'foo':'bar','alice': 3} (中文(简体) ) | 0.8.0 (中文(简体) ) |

## KafkaJSAdmin 输出者选项

| 属性 | 说明 | 示例 | 自兹 |
| --- | --- | --- | --- |
| 管理请求 | Kafka admin request duration seconds 公分数秒。 默认桶为\[0.001,0.005,0.01,0.02,0.03,0.04,0.05,0.1,0.2,0.5,1,2,5,10\] | \[0.001、0.005、0.01、0.02、0.03、0.04、0.05、0.1、0.2、0.5、1、2、5、10\] | 3.1.0 (中文(简体) ) |
| 默认标签 | 默认标签添加到每个参数中 . | {'foo':'bar','alice': 3} (中文(简体) ) | 1.0.0 (单位:千美元) |

# 格拉法纳板

Grafana 的示例 [这里](https://npmcn.com/docs/grafana/dashboard.json) 显示出口商提供的衡量标准.

以下是KafkaJS生产商衡量标准的例子: ![Grafana:KafkaJS Producer Metrics](https://npmcn.com/docs/images/grafana_kafkajs_producer_1.png "Grafana: KafkaJS Producer Metrics")

以下为KafkaJS消费者计量标准的例子: ![Grafana:KafkaJS Consumer Metrics](https://npmcn.com/docs/images/grafana_kafkajs_consumer_1.png "Grafana: KafkaJS Consumers Metrics")

以下为 KafkaJS 管理参数的例子 : ![Grafana:KafkaJS Admin Metrics](https://npmcn.com/docs/images/grafana_kafkajs_admin_1.png "Grafana: KafkaJS Admin Metrics")

# 更改日志

项目的更改可见于 [更改日志](https://npmcn.com/CHANGELOG.md)。 。 。 .

# 兼容性

下表列出出口商版本与不同的KafkaJS和舞会客户端版本的相容性.

| 导出版本 | 卡夫卡JS版本 | 舞会客户端版本 |
| --- | --- | --- |
| ^ 1. 0 | ^ 2.2.4 (中文(简体) ) | ^14.2.0 (中文(简体) ) |
| ^ 2. 0 | ^ 2.2.4 (中文(简体) ) | ^14.2.0 (中文(简体) ) |
| ^ 3. 0.0 (韩语) | ^ 2.2.4 (中文(简体) ) | ^15.0 |
| ^ 3.1.0 (中文(简体) ) | ^ 2.2.4 (中文(简体) ) | ^15.0 |

# 捐款

发言是十分受欢迎的。 如欲为该项目捐款,请遵循本报告所述步骤 [捐款准则](https://npmcn.com/CONTRIBUTING.md)。 。 。 .

# 使用导出者的项目

如果您想要支持此项目, 请在您使用此导出时在您的项目和/ 或公司中添加链接 .

# 相关项目

如果您在寻找一种方法来监视您的节点驱动程序, 请查看 [https://github.com/christiangalster/mongodb-driver-prometheus-exporter (中文(简体) )](https://github.com/christiangalsterer/mongodb-driver-prometheus-exporter)。 。 。 .

如果你正在寻找一种方法 监视节点 -派克,你可能会看到 [https://github.com/christiangalster/node-postgres-prometheus-exporter 互联网档案馆的存檔,存档日期2013-12-21](https://github.com/christiangalsterer/node-postgres-prometheus-exporter)。 。 。 .

## 常见问题

### @christiangalsterer/kafkajs-prometheus-exporter 是什么？

卡夫卡日的相模导出器

### 如何安装 @christiangalsterer/kafkajs-prometheus-exporter？

在项目目录运行 npm install @christiangalsterer/kafkajs-prometheus-exporter，或使用 pnpm add / yarn add / bun add。

### @christiangalsterer/kafkajs-prometheus-exporter 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @christiangalsterer/kafkajs-prometheus-exporter 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @christiangalsterer/kafkajs-prometheus-exporter 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @christiangalsterer/kafkajs-prometheus-exporter 可以商用吗？

@christiangalsterer/kafkajs-prometheus-exporter 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @christiangalsterer/kafkajs-prometheus-exporter 的下载量有多少？

根据 npm 官方下载统计，@christiangalsterer/kafkajs-prometheus-exporter 在 2026/10/10 – 2026/11/08 这 30 天内被下载 3,197 次，日均约 107 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @christiangalsterer/kafkajs-prometheus-exporter 还在维护吗？

最新版本 3\.2\.1 发布于 2025/09/14（1\.2 年前）；至今共发布 12 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/08/26。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

