前言
在现代化的应用程序或服务中,追踪和监控应用程序的关键性能指标是必要的。OpenTelemetry 是一个开源的框架,用于生成和处理跟踪,指标和日志数据。@opentelemetry/resources 是 OpenTelemetry 中的一个 npm 包,它提供了一种添加属性和标记以将其发送到您的跟踪器的一种方式。
本文将详细介绍 @opentelemetry/resources 的用法和应用场景,并提供一些示例代码和最佳实践。
安装
安装 @opentelemetry/resources 的最简单方法就是使用 npm:
npm install @opentelemetry/resources
安装后,就可以在代码中引入资源,像这样:
import { Resource } from "@opentelemetry/resources";
使用方法
资源是一个有关应用程序 (agent) 运行环境的信息集合,例如应用程序的版本,它运行在哪个主机上,以及它使用了哪些库和框架。每个跟踪器都可以使用资源来标记它生成的跟踪,这有助于我们更好地理解跟踪的含义。
下面是一些使用示例:
创建资源
const resource = new Resource({ "service.name": "my-service", "service.version": "1.0.0", "service.instance.id": "instance-1", })
添加属性到资源
resource = resource.merge(new Resource({ "fleet.name": "my-fleet", "fleet.size": 10, }));
从其它资源中合并属性
const anotherResource = new Resource({ "service.name": "another-service" }); resource = resource.merge(anotherResource);
从 process.env 中获取环境变量
const resource = Resource.default().merge( Resource.createTelemetrySDKResource({ ["service.namespace"]: process.env.NAMESPACE // 如果环境变量存在,则添加 }) );
使用自定义提供程序
-- -------------------- ---- ------- ----- -------------- - - ------------- - ------ --- ---------- --------------- ----------------- ------------------- -------- --- -- -- ----- -------- - ---------------- -------------------------- -------------------------------------
最佳实践
实施资源时,最好遵循以下最佳实践:
- 别名和标准化属性名称:通过使用别名和标准化属性名称来表示和识别属性,可以减少混淆和不一致性。
- 创建独特的实例标识符:在多实例环境中,为每个实例创建一个独特的标识符可以帮助您准确定位和跟踪它们。
- 不应该有重复的属性:资源中的属性应该是唯一的,因为重复的属性可能会导致歧义。
结论
@opentelemetry/resources 是 OpenTelemetry 中的一个 npm 包,它提供了创建和管理应用程序资源的能力,开发人员可以通过它来识别和标记每个跟踪器生成的跟踪。本文介绍了如何安装 @opentelemetry/resources,如何创建、添加和合并属性,以及使用最佳实践。
在实际应用中,使用 @opentelemetry/resources,可以帮助我们更好地理解应用程序和系统的运行状况,改进和优化它们的性能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f380300dbf7be33b2566f66