@ carecard/ 遥测
1.1.1版和生产数据
CareCard Release 1.1.1是生产基准. 种子为
--seed-release-data 已经完成。 生产集群数据、数据库行、,
并保存存储的用户文件。 没有
完成用户数据擦拭和再创建.
未来生产变化必须使用数据保存迁移。 不重播 完成初始化或运行重置、回滚或种子工作流程 常规生产部署.
这个 已完成的种子库存和核查记录 记录所接受的释放基准和核查限制.
CareCard Node.js服务器进程隐私安全OpenTeleometry追踪.
强制性寄存器政策:装入
$pkg-telemetry-coding-standards-and-best-practices 在更改、审查、,
测试、记录或释放此软件包.
该套装为CareCard服务拥有一个明确的追踪靴。 用这个 W3C 追踪背景,向Grafana合金出口OTLP/HTTP和仪器 HTTP、PostgreSQL和Kafka不向追踪发送应用有效载荷 后端 .
不可转让类型脚本类型规则: 永远不要使用类型脚本类型 any永远
使用特定领域类型、通用项目类型、现有项目类型,或 unknown 与
在所有类型Script- family文件中明确缩小(.ts, (中文(简体) ), .tsx, (中文(简体) ), .mts, (中文(简体) ),
.cts,以及 .d.ts) (中文(简体) ).
安装
npm install @carecard/[email protected] --save-exact
诱饵
初始化环境配置后和装入前的追踪 http, (中文(简体) ),
express, (中文(简体) ), pg, (中文(简体) ), kafkajs,或 undici。节点仪器补丁模块
当它们装入时, 因此导入这些库可以先离开请求
无相相相.
require('./src/config');
const packageJson = require('./package.json');
const { createTelemetryShutdown, initializeServiceTelemetry } = require('@carecard/telemetry');
const telemetry = initializeServiceTelemetry({
serviceName: 'worker',
serviceVersion: packageJson.version,
});
const serverRuntime = require('./src/serverRuntime');
const shutdown = createTelemetryShutdown({
telemetryRuntime: telemetry,
shutdownResources: serverRuntime.shutdown,
});
installTelemetryShutdownHandlers(telemetry) 可用于小程序
尚未拥有 SIGINT 财务报告和审定财务报表 SIGTERM 处理。 服务
应使用现有的优雅的下沉路径 createTelemetryShutdown() 这样
如果清理失败, 应用程序资源将先停止, 遥测仍然会冲出 .
Next.js仪表板只从它的Node.js调用相同的初始化器
instrumentation.ts 注册钩。 浏览器和边缘运行时间不能装入
这个包裹.
配置
| 变量 | 默认 | 含义 |
|---|---|---|
OTEL_SDK_DISABLED | false | 设定为 true 以禁用 SDK 。 默认时已禁用 NODE_ENV=test 除非明确设定为 false。 。 。 . |
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | http://127.0.0.1:4318/v1/traces | 合金OTLP/HTTP跟踪接收器. 证书、查询参数和碎片均被拒绝. |
OTEL_TRACES_SAMPLER | parentbased_traceidratio | parentbased_traceidratio, (中文(简体) ), always_on,或 always_off。 。 。 . |
OTEL_TRACES_SAMPLER_ARG | 1 发展; 0.1 生产 | 根取样比 0 结束 1。 。 。 . |
使用比例 1 用于本地开发和多克桌面库伯内特.
生产默认值 0.1;自办制作简介也设置了它
当然 基于父母的抽样保留了整个服务部门的上游决定
边框.
宣传
自动仪器为:
- 进出的节点HTTP请求;
- 快速处理请求;
- 没有查询参数或增强数据库的 PostgreSQL 操作 报告;
- KafkaJS 生产者和消费者利用现有
traceparent消息 页眉; - 服务器侧
fetch请求通过Undici.
正常的健康、准备状态、衡量标准以及下一个.js的静态请求没有追踪.
仅限 W3C traceparent 被传播。 提供打电话者 tracestate 被忽略,
并故意不配置行李.
对于持久的队列,在创建记录时抓取活动上下文 后处理记录时恢复:
const { captureActiveTraceparent, runWithTraceparent } = require('@carecard/telemetry');
const eventMetadata = {
traceparent: captureActiveTraceparent(),
};
await runWithTraceparent(
{
spanName: 'outbox publish',
traceparent: eventMetadata.traceparent,
},
() => publishOutboxEvent(),
);
传递到 runWithTraceparent 必须固定,小写可操作
名称。 永远不要从用户、路由、记录、电子邮件、信使或有效载荷数据中构建它们.
隐私边界
出口者在离开期间之前使用源边隐私边界 进程。 它保持了路由模板, HTTP 等有界限的操作域 方法和状态代码、数据库操作名称、数据库命名空间以及 卡夫卡主题名称.
它会删除 SQL 文本,查询参数,消息有效载荷,消息密钥, URL 值、信头、饼干、授权数据、请求和响应机构, 客户端地址、用户代理、例外消息、例外堆栈、状态 描述、动态跨事件名称和链接属性。 格拉法纳合金 重复删除防御属性后再转发到 Tempo .
不添加附加域名标识符、 电子邮件地址、 JWTs 、 文件的钩子 名称、格式数据或其他跨度应用值.
公共 API
initializeServiceTelemetry({ serviceName, serviceVersion })接受 CareCard 证书app-*财务报告和审定财务报表ms-*运行时间身份,包括app-auth财务报告和审定财务报表app-dashboard。 。 。 .createTelemetryShutdown({ telemetryRuntime, shutdownResources })captureActiveTraceparent()runWithTraceparent({ spanName, traceparent }, operation)installTelemetryShutdownHandlers(runtime)
该软件包披露了通用JS、无害环境管理和类型脚本申报.
验证
npm run test:All
npm run lint
npm run format:check
npm audit --audit-level=high
召客身份和排斥
服务名称是通用的受限业务识别符. 设定 serviceNamespace
明确在需要的时候。 没有内置的应用程序命名规则,命名空间,
健康路线列表,或框架路线排除. 供应 ignoreIncomingRequest
拥有服务或申请的布尔决定。 出口
继续排除以避免遥测复发。 隐私消毒和W3C
传播仍然是一揽子技术责任.