@coralogix/opentelemetry

中文文档
0.5.1发布于 2026/11/02Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 10.9万

OpenTelemotics Node SDK的 Corlogix 扩展,包括 Corlogix APM 的交易采样器.

中文使用文档
文档目录12 节
  1. 所需资源
  2. Corlogix 变速器
  3. 辅助仪器
  4. 发送属性
  5. 交易处理器
  6. 命名如何运作
  7. 选项
  8. 与快递的交易
  9. 前缀和嵌入路由器
  10. 表达式版本支持
  11. 更改日志
  12. 许可证

Coralogix

打开遥测节点 SDK 扩展

CI npm version License: Apache-2.0


缩略语 打开遥测节点 SDK。本套件在标准OpenTeleometry追踪设置之上添加了 Corlogix 特定行为——通过采样器和/或一个 SpanProcessor,包括处理器路径上独有的自持续时间.

npm install --save @coralogix/opentelemetry

所需资源

此软件包依赖于您应用程序现有的 OpenTelemeter 设置 。 以下是: peerDependencies 并且必须同时安装:

软件包版本
@opentelemetry/api^1.7.0
@opentelemetry/sdk-trace-base^2.8.0

以下例子也使用了 @opentelemetry/resources 财务报告和审定财务报表 @opentelemetry/semantic-conventions,它们属于典型的OpenTelemory节点设置的一部分.

说明: 此套件针对 OpenTeleometry JS SDK 2.x 数据。如下所示的资源/提供者 API(resourceFromAttributes, (中文(简体) ), ATTR_SERVICE_NAME)是 2.x API;如果您仍在 SDK 1.x 上,则相应调整设置(new Resource(...), (中文(简体) ), SemanticResourceAttributes) (中文(简体) ).

Corlogix 变速器

CoralogixTransactionSampler 将现有的 OpenTeleometry 采样器包成定义、 报告并监视 Corlogix 交易。它将 Corlogix 交易属性设定在被采样的跨度上,并传播交易身份.

import { CoralogixTransactionSampler } from "@coralogix/opentelemetry";
import { AlwaysOnSampler } from "@opentelemetry/sdk-trace-base";

// Wrap your existing sampler...
const sampler = new CoralogixTransactionSampler(new AlwaysOnSampler());

// ...or omit the argument to default to a ParentBased(AlwaysOn) sampler.
const defaultSampler = new CoralogixTransactionSampler();

将采样器像其它 OpenTelemetry 采样器一样传递给您的追踪器提供者 :

import { BasicTracerProvider } from "@opentelemetry/sdk-trace-base";
import { resourceFromAttributes } from "@opentelemetry/resources";
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";

const tracerProvider = new BasicTracerProvider({
    resource: resourceFromAttributes({
        [ATTR_SERVICE_NAME]: "<your-service-name>",
    }),
    sampler: new CoralogixTransactionSampler(),
});

辅助仪器

和我们一起工作 个人自动仪器 财务报告和审定财务报表 手动仪器。捆绑的自动仪器方法是 没有 已支持.

发送属性

当一个跨度开始交易时,采样器会添加以下属性:

属性说明
cgx.transaction交易名称( 如 . GET /users/:id) (中文(简体) ).
cgx.transaction.distributed分布式交易名称在各种服务中传播.
cgx.transaction.root此跨度是否是交易的根 .

交易处理器

TransactionSpanProcessor 包裹一个 SpanExporter 标记 Corlogix 交易, 专用邮票自用时间(cgx.transaction.self_duration记录匹配的直方图(单位) s) (中文(简体) ). 它与任何样本.

命名如何运作

交易 成员 (新继承,和 cgx.transaction.root)在起始时决定。 显示名称 cgx.transaction 只有在完成的本地追踪完成后,才使用 overrideName ?? rootSpan.name。这对快递很重要:HTTP跨度通常从 GET 后来改名为 GET /myroute 由中间软件来表示 —— 输出的交易名称是最后一个根跨度名称 .

每一个完成的本地跟踪立即被输出. 处理器缓冲 改为 CORALOGIX_MAX_SPANS_PER_TRACE 交易增益完成周期 (默认:256),最多 CORALOGIX_MAX_TRANSACTION_TRACES 一次保留在内存中的交易(默认:无限). 当正跨度被突破时,它立即导出追踪缓冲 和后来流的长度不变. CORALOGIX_MAX_SPANS_PER_TRACE=0 是无限的. 当微量极限达到时,以后的微量 流线不变。 微量限额只适用于保留内存的交易; 0 是无限的,一旦一个缓冲交易完成,能力就会再次得到。 这些痕迹没有处理器交易标记, 自我延长,或称度量.

import { BasicTracerProvider, ConsoleSpanExporter } from "@opentelemetry/sdk-trace-base";
import { TransactionSpanProcessor } from "@coralogix/opentelemetry";

const tracerProvider = new BasicTracerProvider({
    spanProcessors: [
        new TransactionSpanProcessor(new ConsoleSpanExporter(), {
            // Optional MeterProvider for the self-duration histogram; defaults to the global one.
        }),
    ],
});

选项

构造选项胜过环境变量 。 无效的内存值返回到默认值 .

选项类型默认新闻 var含义
completionHoldbackMillisnumber100OTEL_CX_TRANSACTION_COMPLETION_HOLDBACK_MILLIS在最后的寿命结束之后, 等待这么长的时间 才能最终确定 迟到的兄弟姐妹可以加入. 0 = 立即敲定.
shutdownIdleWaitMillisnumber30000—— 说多久的停机等待飞行时间.
meterProviderMeterProvider全球—— 说测量自长直方图.

与快递的交易

解决快递线路的稳定,低心率交易名称(如. GET /users/:id 而不是每个请求路径),呼叫 setExpressApp 这样取样员就可以学习你的应用的路线和终点.

重要内容: 打电话 setExpressApp 在所有路线和路由器注册后。采样器在您调用时读取了Express路由器堆栈,所以之后添加的任何路线都不会解决.

import { BasicTracerProvider } from "@opentelemetry/sdk-trace-base";
import { resourceFromAttributes } from "@opentelemetry/resources";
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
import { CoralogixTransactionSampler } from "@coralogix/opentelemetry";
import express from "express";
import router from "./router";

const sampler = new CoralogixTransactionSampler();

const tracerProvider = new BasicTracerProvider({
    resource: resourceFromAttributes({
        [ATTR_SERVICE_NAME]: "<your-service-name>",
    }),
    sampler,
});

const app = express();
app.use("/", router);

// Register routes first, then hand the app to the sampler.
sampler.setExpressApp(app);

app.listen(3000, () => {
    console.log("Server is running");
});

前缀和嵌入路由器

setExpressApp 决定 满 路由模板,包括挂载前缀和任意嵌入路由器. 例如:

const orders = express.Router();
orders.get("/orders/:oid", handler);

const api = express.Router();
api.use("/deep", orders);

app.use("/api", api);

请求 /api/deep/orders/9 决定交易 GET /api/deep/orders/:oid。 。 。 .

表达式版本支持

两者 捷运 4 财务报告和审定财务报表 运通5 被支持.

参数在两个版本上均正确诱导,包括a 挂载前缀 (单位:千美元)app.use("/v/:ver", router): 请求 /v/2/things/abc 决定: GET /v/:ver/things/:t。 。 。 .

更改日志

见 变动情况 用于发行笔记. 注意前缀和嵌入式路由器的路由调解是 断开输出变化: 受影响应用程序的交易名称更改, 因此更新前名上键入的任何仪表板, 提醒, 或保存视图 .

许可证

凭 Apache 许可证 2.0。 。 。 .

版本与发布记录

@coralogix/opentelemetry 共发布 11 个版本,首次发布于 2023/11/22;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.5.1latest2026/11/028 天前
0.5.02026/08/262 个月前
0.4.02026/07/084 个月前
0.3.02026/07/074 个月前
0.2.12026/07/014 个月前
0.2.02026/06/304 个月前

关于 @coralogix/opentelemetry 的常见问题

@coralogix/opentelemetry 是什么?

OpenTelemotics Node SDK的 Corlogix 扩展,包括 Corlogix APM 的交易采样器.

如何安装 @coralogix/opentelemetry?

在项目目录运行 npm install @coralogix/opentelemetry,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@opentelemetry/api(^1.7.0)、@opentelemetry/core(^2.8.0)、@opentelemetry/sdk-trace-base(^2.8.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@coralogix/opentelemetry 支持 TypeScript 吗?

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

@coralogix/opentelemetry 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@coralogix/opentelemetry 可以商用吗?

@coralogix/opentelemetry 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@coralogix/opentelemetry 的下载量有多少?

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

@coralogix/opentelemetry 还在维护吗?

最新版本 0.5.1 发布于 2026/11/02(8 天前);至今共发布 11 个版本,其中过去 12 个月发布了 7 个;首次发布于 2023/11/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。