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

作者:来自 Elastic Trent Mick

我们很高兴地宣布推出 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 端点。 这可以是标准 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" 服务。 该服务提供用于创建短链接(URL 的短名称)的 POST / route 和用于使用它们的 GET /:shortname 路由。

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 提供支持。

下一步是什么?

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 阶段。 请尝试一下并告诉我们它是否适合你。 在这里关注最新版本。 你可以通过项目问题跟踪器或 Elastic 的 Node.js APM 讨论论坛与我们互动。

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

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

相关推荐
悄悄敲敲敲1 天前
MySQL表的约束
数据库·mysql
鼠爷ねずみ1 天前
SpringCloud前后端整体开发流程-以及技术总结文章实时更新中
java·数据库·后端·spring·spring cloud
九皇叔叔1 天前
MySQL 数据库 Read View 详解
数据库·mysql·mvcc·read view
字节数据平台1 天前
评测也很酷,Data Agent 自动化评测的三层框架与实战
大数据
Elastic 中国社区官方博客1 天前
Elasticsearch:圣诞晚餐 BBQ - 图像识别
大数据·数据库·elasticsearch·搜索引擎·ai·全文检索
cui_win1 天前
Prometheus实战教程 - Redis 监控
数据库·redis·prometheus
Macbethad1 天前
数据挖掘实战项目:用户行为分析模型技术报告
大数据
LINGYI0001 天前
品牌电商全域代运营公司——简述
大数据·全域电商
努力成为一个程序猿.1 天前
1.ElasticSearch单节点部署
大数据·elasticsearch·搜索引擎
JIngJaneIL1 天前
基于java + vue个人博客系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot