介绍适用于 Node.js 的 Elastic OpenTelemetry 发行版

2024年5月20日   |   by mebius

作者:来自 ElasticTrent Mick

%title插图%num

我们很高兴地宣布推出 Elastic OpenTelemetry Distribution for Node.js 的 alpha 版本。 该发行版是 OpenTelemetry Node.js SDK 的轻量级包装,可以让你更轻松地开始使用 OpenTelemetry 来观察 Node.js 应用程序。

背景

Elastic 正在对 OpenTelemetry (OTel) 进行标准化,以实现可观察性和安全数据收集。 作为这项工作的一部分,我们将提供 OpenTelemetry Language SDK 的发行版。 我们的 AndroidiOS SDK 从一开始就基于 OpenTelemetry,并且我们最近发布了 Java.NET 的 alpha 发行版。 Node.js 的 Elastic OpenTelemetry Distribution 是最新添加的内容。

入门

要开始使用 Elastic OTel Distribution for Node.js(“发行版”),你只需安装并加载单个 npm 依赖项 (@elastic/opentelemetry-node)。 该发行版为许多流行的 Node.js 包设置了跟踪、指标和日志的集合。 它将数据发送到你配置的任何 OTLP 端点。 这可以tgcode是标准 OTel Collector,或者如下所示的 Elastic Observability 云部署。

npm install --save @elastic/opentelemetry-node  # (1) install the SDK

# (2) configure it, for example:
export OTEL_EXPORTER_OTLP_ENDPOINT=https://my-deployment.apm.us-west1.gcp.cloud.es.io
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer ...REDACTED..."
export OTEL_SERVICE_NAME=my-service

# (3) load and start it
node --require @elastic/opentelemetry-node my-service.js

Express 和 PostgreSQL 的一个小例子

作为一个具体示例,让我们看一下使用 Express Web 框架和 pg PostgreSQL 客户端包实现的小型 Node.js“Shortlinks” 服务。 该服tgcode务提供用于创建短链接(URL 的短名称)的 POST / route 和用于使用它们的 GET /:shortname 路由。

%title插图%num

git 存储库在这里README 展示了如何创建免费试用版 Elastic 云部署并获取适当的 OTEL_… config 设置。 尝试一下(前提条件是 Docker 和 Node.js v20 或更高版本):

git clone https://github.com/elastic/elastic-otel-node-example.git
cd elastic-otel-node-example
npm install

cp config.env.template config.env
# Edit OTEL_ values in "config.env" to point to your collection endpoint.

npm run db:start
npm start

设置可观察性所需的唯一步骤是对 “package.json” 文件进行这些小更改并配置一些标准 OTEL_… 环境变量。

  // ...
  "scripts": {
	"start": "node --env-file=./config.env -r @elastic/opentelemetry-node lib/app.js"
  },
  "dependencies": {
	"@elastic/opentelemetry-node": "*",
  // ...

结果是使用行业标准 OpenTelemetry 的可观察应用程序 — 提供许多流行 Node.js 库的高质量工具、避免供应商锁定的可移植 API 以及活跃的社区。

使用 Elastic Observability,你可以期待的一些开箱即用的好处包括:丰富的跟踪查看、服务地图、集成指标和日志分析等等。 该发行版提供了主机指标,Kibana 提供了精心策划的服务指标 UI。 流行的 WinstonBunyan 日志框架可以开箱即用地发送日志,并计划为 Pino 提供支持。

%title插图%num

下一步是什么?

Elastic 致力于帮助 OpenTelemetry 取得成功,并帮助我们的客户在其系统中有效地使用 OpenTelemetry。 去年,我们捐赠了 ECS 并继续致力于将其与 OpenTelemetry 语义约定集成。 最近,我们正致力于将基于 eBPF 的分析器捐赠给 OpenTelemetry。 我们为许多语言 SDK 和其他 OpenTelemetry 项目做出了贡献。

作为 Node.js 发行版的作者,我们很高兴能与 OpenTelemetry JavaScript 社区合作,帮助使 JS API 和 SDK 成为 JavaScript 可观察性的更强大、功能更丰富且明显的选择。 拥有发行版使我们能够灵活地在普通 OTel SDK 之上构建功能。 目前,该发行版的一些优点包括:单一安装包、具有合理默认配置的轻松自动检测、默认启用 ESM 以及自动日志遥测发送。 如果可能的话,我们肯定会向 OTel JavaScript 项目上游贡献功能,并且当它们更有意义时,我们也会在发行版中包含其他功能。

Node.js 的 Elastic OpenTelemetry Distribution 目前处于 alpha 阶段。 请尝试一下并告诉tgcode我们它是否适合你。 在这里关注最新版本。 你可以通过项目问题跟踪器或 Elastic 的 Node.js APM 讨论论坛与我们互动。

本文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。

原文:Introducing Elastic’s OpenTelemetry Distribution for Node.js | Elastic Blog

文章来源于互联网:介绍适用于 Node.js 的 Elastic OpenTelemetry 发行版