# @appsignal/opentelemetry-instrumentation-bullmq 中文文档

规范地址：https://npmcn.com/package/%40appsignal/opentelemetry-instrumentation-bullmq/

版本：0\.9\.0
npm 元数据更新时间：2026-09-10T10:18:12.891Z
中文译文更新时间：2026-11-06T12:28:44.480Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：74.5 kB，15 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- peer 依赖：bullmq ^2 \|\| ^3 \|\| ^4 \|\| ^5，@opentelemetry/api ^1\.3\.0
- 首次发布：2024-06-10T11:19:47.676Z
- 最新版本发布：2026-08-24T11:23:47.995Z
- 近 30 天下载量：329657（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 2 个）

## 中文简介

BullMQ信息框架的自动仪器

## 安装

```sh
npm install @appsignal/opentelemetry-instrumentation-bullmq
```

也可以使用：`pnpm add @appsignal/opentelemetry-instrumentation-bullmq`、`yarn add @appsignal/opentelemetry-instrumentation-bullmq`、`bun add @appsignal/opentelemetry-instrumentation-bullmq`

## README

# 用于节点.js的 OpenTelemotry Bullmq 仪器

[![Node.js CI](https://github.com/appsignal/opentelemetry-instrumentation-bullmq/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/appsignal/opentelemetry-instrumentation-bullmq/actions/workflows/ci.yml) [![npm version](https://badge.fury.io/js/@appsignal%2Fopentelemetry-instrumentation-bullmq.svg)](https://badge.fury.io/js/@appsignal%2Fopentelemetry-instrumentation-bullmq)

本单元提供自动追查仪器 [布尔MQ](https://docs.bullmq.io/)。 。 。 .

与 OpenTeleometry JS API 和 SDK 兼容 `1.0+`。 。 。 .

## 安装

```bash
npm install --save @appsignal/opentelemetry-instrumentation-bullmq
```

### 支持的版本

-   `[2.x, 3.x, 4.x, 5.x]`

仪器很可能会支持更早的"公牛MQ"版本,但我还没有测试过.

## 使用量

打开遥测公牛MQ 仪器化使用户能够自动从BullMQ的工作和工人中收集痕量数据并导出到选择的后端.

要装入仪表,请在仪表列表中指定为 `registerInstrumentations`。目前没有配置选项.

```javascript
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const { registerInstrumentations } = require("@opentelemetry/instrumentation");
const {
  BullMQInstrumentation,
} = require("@appsignal/opentelemetry-instrumentation-bullmq");

const provider = new NodeTracerProvider();
provider.register();

registerInstrumentations({
  instrumentations: [
    new BullMQInstrumentation({
      // configuration options, see below
    }),
  ],
});
```

## 配置选项

| 名称 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| `emitCreateSpansForBulk` | `boolean` | `true` | 是否为每个工作排出一个创建间隔 `Queue.addBulk` 或者说 `FlowProducer.addBulk`。表示总体散装作业的跨度无论怎样都会释放出. |
| `emitCreateSpansForFlow` | `boolean` | `true` | 是否为每个工作排出一个创建间隔 `FlowProducer.add` 或者说 `FlowProducer.addBulk`。表示总流量操作的跨度无论怎样都会被释放出. |
| `requireParentSpanForPublish` | `boolean` | `false` | 是否在无父跨时省略发布跨度(以及创建子跨度,用于批量和流量操作),意味着创建的跨度将是新跟踪的根跨. |
| `useProducerSpanAsConsumerParent` | `boolean` | `false` | 是否使用生产者类型(创建或发布)作为消费者类型(进程)的母体。 当设定为真实时,消费者和生产者的跨度将是同一跟踪的一部分。 当设定为虚假时,消费者的跨度会与生产者的跨度分开跟踪,并包含与生产者的跨度的链接. |

## 排出间距

该仪器旨在遵守 [传讯西班牙人的开放遥测语义公约](https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/)尽可能在这些跨度中使用语义公约的属性.

| 名称 | 宽度 | `messaging.bullmq.operation.name` 属性 [\[1\] (中文(简体) )](https://npmcn.com/package/%40appsignal/opentelemetry-instrumentation-bullmq/#readme-emitted-spans-note-1) | 说明 |
| --- | --- | --- | --- |
| `{queueName} publish` | `PRODUCER` | `Queue.add` | 队列中新增任务 . |
| `{queueName} publish` | `INTERNAL` [\[2\]](https://npmcn.com/package/%40appsignal/opentelemetry-instrumentation-bullmq/#readme-emitted-spans-note-2) | `Queue.addBulk` | 将新任务以批量添加到队列中 . |
| `{queueName} publish` | `INTERNAL` [\[3\]](https://npmcn.com/package/%40appsignal/opentelemetry-instrumentation-bullmq/#readme-emitted-spans-note-3) | `FlowProducer.add` | 在队列中添加新的工作流程 . |
| `(bulk) publish` | `INTERNAL` [\[2\]](https://npmcn.com/package/%40appsignal/opentelemetry-instrumentation-bullmq/#readme-emitted-spans-note-2) [\[3\]](https://npmcn.com/package/%40appsignal/opentelemetry-instrumentation-bullmq/#readme-emitted-spans-note-3) | `FlowProducer.addBulk` | 新增的工作流量会以批量加入队列. |
| `{queueName} create` | `PRODUCER` | `Job.add` | 每个个人工作都加入了一个队列. 只在批量或流量作业中排放。 儿童出版期. [\[4\]](https://npmcn.com/package/%40appsignal/opentelemetry-instrumentation-bullmq/#readme-emitted-spans-note-4) |
| `{queueName} process` | `CONSUMER` | `Worker.run` | 每一次由工人执行的工作。 与相应的出厂间隔相接. [\[5\]](https://npmcn.com/package/%40appsignal/opentelemetry-instrumentation-bullmq/#readme-emitted-spans-note-5) |

-   **\[1\] (中文(简体) )**: 代表应用程序中为触发该跨度而调用的 BullMQ 函数.
-   **\[2\]**: 当 `emitCreateSpansForBulk` 配置选项设置为 `false`,这是一个 `PRODUCER` 间距.
-   **\[3\]**: 当 `emitCreateSpansForFlow` 配置选项设置为 `false`,这是一个 `PRODUCER` 间距.
-   **\[4\]**: 将不向 `Queue.addBulk` 财务报告和审定财务报表 `FlowProducer.addBulk` 当 `emitCreateSpansForBulk` 配置选项是 `false`,或呼吁 `FlowProducer.add` 财务报告和审定财务报表 `FlowProducer.addBulk` 当 `emitCreateSpansForFlow` 配置选项设置为 `false`。 。 。 .
-   **\[5\]**: 如果 `requireParentSpanForPublish` 设置为 `true`在这种情况下,没有建立任何联系.

## 有用链接

-   关于OpenTeleometry的更多信息,请访问: [https://opentelemetry.io/ 互联网档案馆的存檔,存档日期2013-12-02](https://opentelemetry.io/)
-   更多关于 OpenTelemology JavaScript 的信息 : [https://github.com/open-teleometry/open-teleometry-js (中文(简体) )](https://github.com/open-telemetry/opentelemetry-js)
-   为帮助或反馈此项目, 打开一个问题或提交 PR

## 许可证

Apache 2. 0 - 见 [自由主义](https://opensource.org/licenses/Apache-2.0) 更多信息.

## 捐款

欢迎捐款。 随便你打开一个问题或提交公关 我想在某个时候把这个包裹列入开远测量-js-相接图中。 在那之前 它住在这里.

BullMQ对Redis的依赖性很强,这意味着Redis(目前)是仪器的测试依赖. 要运行测试, 您应该在默认端口的本地主机上运行 redis 服务器 。 如果你安装了插头,你就可以 `docker-compose up` 准备出发.

## 常见问题

### @appsignal/opentelemetry-instrumentation-bullmq 是什么？

BullMQ信息框架的自动仪器

### 如何安装 @appsignal/opentelemetry-instrumentation-bullmq？

在项目目录运行 npm install @appsignal/opentelemetry-instrumentation-bullmq，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@opentelemetry/api（^1\.3\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @appsignal/opentelemetry-instrumentation-bullmq 支持 TypeScript 吗？

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

### @appsignal/opentelemetry-instrumentation-bullmq 支持 ESM 还是 CommonJS？

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

### @appsignal/opentelemetry-instrumentation-bullmq 可以商用吗？

@appsignal/opentelemetry-instrumentation-bullmq 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @appsignal/opentelemetry-instrumentation-bullmq 的下载量有多少？

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

### @appsignal/opentelemetry-instrumentation-bullmq 还在维护吗？

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

