#12758·zitadel

登录 V2: getNodeAutoInstrumentations() 在冷启动路径上加载了 45 个 OpenTelemetry 包

作者: TheLevti创建于 2026年9月16日更新于 2026年9月16日

页:1

apps/login/src/instrumentation.node.ts'将其仪器清单与 获得NodeAuto仪器()'。 这叫要求() ' 40个仪器 包和5个云资源探测器在模块装入时,Next.js等待 注册者()'在满足第一次请求之前,所以整组人坐在冷地上 启动端口绑定和服务器响应之间的路径。

登录应用程序本身的依赖面比那套要窄得多,所以大多数 装入的仪器无法匹配任何东西。

测量

`v4.16.2' 登录图像,容器开始第一个HTTP响应,相隔A/B 在不变的图像和只导入该应用程序的仪器之间 用户。 两个CPU形状:

(原始内容存档于2018-10-21). CPU. |. ^ 0.5 → 1.64s 表示 (n=7) → 1.46s 表示 (n=7) → 0.18s,以7对相轮的7对收缩得更快. = 0.1 (喉咙) = 21.0s 平均值 (n=3) = 17.7s 平均值 (n=3) = ~3s

用于参考,“OTEL SDK DISABLED=real”在同一所测量的0.1 CPU带上 13.3s,所以SDK整体大约是8s 而这个占了一点点 不到一半的面积

0.5数字是正常安排的容器的诚实数字;0.1是 我们用来复制探测器故障的 最坏的病例被故意推倒

为什么环境变量不解决它

OTEL NODE enabled Institutions'和OTEL NODE difficiabled Institutions' 互联网档案馆的存檔,存档日期2013-12-22. 看起来像要逃跑的舱门,但是...

    • 内部读取 " 开远 " / " 自动仪器-节点 " 。 " Get Node Auto Institutions() " ,在 " 建造/src/utils.js " 之后 `要求 ()'d 每个仪器包和每个模块的资源探测器 最高层。 因此,他们跳过patching, 从来没有 *loating *,所以操作员谁 设置它们仍然支付模块满载成本。 这也许值得记录 不管你在这里决定什么

QQ 登录应用程序似乎使用什么

从`apps/login'的依赖和呼叫站点:

  • ** http** - Next.js服务于此,rc/lib/zitadel.ts'到达 ZITADEL API通过‘创建连接传输({ httpVersion: "1.1" })',即连接 “文书-http”已涵盖HTTP/1.1。 (好-grpc'在 以物配主,但无声望。
  • undici -- -- 全球 " 牵引 " ,直接用于 `src/lib/server/security-set-s.ts'和由Next.js在内部使用。
  • Winston - 现有配置已经设置了`残疾的LogSending: false'。 -运行时间-节点-节点事件-loop和堆积度量。

我们还发现,票据-dns ' 和票据-网 ' 值得 单独调用: 与其他捆绑不同的是,它们补丁了节点内置 而不是利用依赖, 所以他们确实在这里。 缩小会失去他们 套接字层跨度, 如果交易量小, 则是一个真实的, 而不是禁用 。

  • 可能的方向
  1. 直接进口4个(或5个,有dns/net)仪器,而不是 汽车包。
  2. 保留GetNode Auto Institutions()',但记录 OTEL NODE * 文书' . . . . . . .

内容来源: zitadel/zitadel