该软件目前没有得到任何支持.
卢维奥仪器服务公司
本套件再出口仪器服务接口类型和实施.
软件包结构
仪表服务分为:
-client/service-instrumentation-types: 类型定义-client/service-instrumentation-noop: 不执行-client/service-instrumentation-o11y: 使用 O11y 库执行
此主软件包( E)-client/service-instrumentation)再出口出所有类型和执行,以保持后向相容性.
安装
npm install -client/service-instrumentation
使用量
// Using the noop implementation
import { buildNoopInstrumentationServiceDescriptor } from '@conduit-client/service-instrumentation/v1';
const noopService = buildNoopInstrumentationServiceDescriptor();
// Using the o11y implementation
import { buildO11yInstrumentationServiceDescriptor } from '@conduit-client/service-instrumentation/v1';
import { logger } from '@conduit-client/logger';
const o11yService = buildO11yInstrumentationServiceDescriptor(logger);
仪器服务
我们是关于标准在这里。 OpenTeleometry是标准. 我们还在揭露他们的API对于图书馆的道理。 我们要追踪和记录衡量标准。 我们也想登录,但这个部分是 开发中 (截至2024年3月),因此,为了稳定起见,我们将不这样做.
无操作执行
我们提供了一个不执行的OOTB,因此,如果不提供实际执行,事情就会顺利进行.
使用 buildNoopInstrumentationService 当建立你的服务.
import { buildNoopInstrumentationService } from '@conduit-client/service-instrumentation/v1';
边:我们最初尝试了使用OTel API提供的"不开放"执行,但成本为7kb,这对我们的口味来说有点丰富,尤其是当这项服务暴露出API中相对较小的子集时. 我敢肯定,有办法 缩小范围, 但是现在,我们应付 我们自己的
添加到接口
所以你意识到我们 有过 拥有 DiagAPI 作为API的一部分? (我们也许应该加到某个时候)
这个过程相当简单,虽然很乏味(因为手卷了一个"不操作"执行和单位测试). 重要的是,我们只是拉 API那部分有道理。 例如,与 跟踪API, (中文(简体) ), setGlobalTracerProvider 是运行时间应用的责任, 我们不应该有权力自己设置它, 所以我们不提这一点。 考虑到这一点,只有几个步骤可以采取.
- 从 OTel API 创建您想要包含、 使用的类型
Pick<>选择什么才有意义 - 添加到服务界面
- 创建“禁用操作”执行程序,同时进行单位测试,使我们的代码覆盖面保持幸福
- 更新
buildNoopInstrumentationService函数
离职 此公关 将 MetricsAPI 添加到服务接口中以用于指导.