@flowrensic/node

中文文档
0.6.61发布于 2026/11/11Apache-2.0TypeScriptESM + CJS近 30 天下载 1.3万

重放历史采集器和活动截取器,供Timoral工人使用,与Flowrensic使用.

此软件包已被标记为弃用

Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

中文使用文档
文档目录5 节
  1. 打电话的人是谁
  2. 重播
  3. 活动遥测
  4. 查询和信号计数
  5. 同伴

@ flowrensic/ 节点

释前. 这个包是一个早期的预览,没有准备好制作. 它的API可以在任何版本中更改.

重放您已制作的工作流程的历史, 对照您的代码 准备出发了.

Flowrensic 保持什么 临时引擎记录。 此软件包获取一个集到 磁盘和报告你重新播放找到的东西。 重播本身还是你的: 给Temperal打电话 直接在你的套房里 使用自己的捆绑机. 下一次部署时 历史记录会僵化 没人能说 仍然可以删除.

服务器 : flowrensic/flowrensic {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}在Docker Hub上 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? Temperal是辅助引擎.

打电话的人是谁

每一次给福弗伦斯克的电话都写着是谁发出的 三个标题: Flowrensic-Current-Env, (中文(简体) ), Flowrensic-Env-Access-Key 财务报告和审定财务报表 Flowrensic-Current-Ephemeral-Run。这里的每个帮助者都将其作为选项 currentEnv, (中文(简体) ), envAccessKey 财务报告和审定财务报表 currentEphemeralRun,旁边 serverBaseUrl。 。 。 . 软件包没有读取环境变量: 将数值从您自己的 相会. 那种麻风的洞穴 currentEphemeralRun,例如 CI 构建数字,没有一个运行就是默认值.

重播

import { fetchReplaySet, publishVerdicts, readReplaySet } from '@flowrensic/node';
import { historyFromJSON } from '@temporalio/common/lib/proto-utils.js';
import { Worker } from '@temporalio/worker';

await fetchReplaySet({
  serverBaseUrl: 'http://flowrensic:8080',
  replayHistoryWorkflow: 'OrderWorkflow',
  replayHistoryOutDir: 'replay-set',
  replayHistoryFromEnvs: ['prod', 'staging'],
  currentEnv: 'ci',
  envAccessKey: config.envAccessKey,
  currentEphemeralRun: config.buildNumber,
});

const set = await readReplaySet('replay-set');
const histories = await Promise.all(
  set.histories.map(async (entry) => ({
    workflowId: entry.run_id,
    history: historyFromJSON(JSON.parse(await readFile(join('replay-set', entry.file), 'utf8'))),
  })),
);

const verdicts = [];
for await (const result of Worker.runReplayHistories({ workflowsPath }, histories)) {
  verdicts.push({
    runId: result.workflowId,
    workflowType: set.workflow_type,
    passed: result.error === undefined,
    error: result.error?.message,
  });
}

await publishVerdicts({
  serverBaseUrl: 'http://flowrensic:8080',
  codeVersion: config.gitSha,
  verdicts,
  currentEnv: 'ci',
  envAccessKey: config.envAccessKey,
  currentEphemeralRun: config.buildNumber,
});

该套套装每个被命名的洞的历史,一个又一个的洞,以及 replay-set.json 列出内存,并给出每个历史的内存。 每个坑都命名 在 FLOWRENSIC KNOWN ENVS 中,必须是当前嵌入器或它的一个条目. 水下洞穴必须是一等的:每一取来都属于水下洞穴 运行, 并拒绝一个持续嵌入.

判断结果与运行和版本相对应 所以在 改变导致它.

flowrensic replay fetch 在 CLI 中写着相同的目录和相同的目录 很明显,对于一个管道 宁可一步一步的取出 而不是在测试.

服务器选集:最近的历史,版本仍在某个地方运行, 不同的结果。 健康工作流程类型最新10个完成 而不是一个失败.

活动遥测

import { createAttemptSink, flowrensicInterceptor } from '@flowrensic/node';

const sink = createAttemptSink({ serverBaseUrl: 'http://flowrensic:8080', currentEnv: 'prod', envAccessKey, workerName: 'orders-worker' });

const worker = await Worker.create({
  // ...
  interceptors: { activity: [flowrensicInterceptor(sink)] },
});

工人的名字,每一份都用同一个名字。 工作流程 类型页显示在工人运行的每一种类型旁边,并附有任务队列,以及 可以通过它过滤。 离开,工人没有名字.

每一次尝试一个事件,而不是每一次活动: 两者的差距是重试 计数。 每一次尝试都带有命名空间 Temperal 给出了活动,并且 服务器将每个环境的命名空间分开。 没有命名空间 设置.

活动只进入,出版失败被吞噬. 遥测必须 永不辜负它测量的活动.

查询和信号计数

Workflow 类型页面计算每个工作流程类型答案的查询. 这个 工人需要工作流程模块和汇:

import { createRequire } from 'node:module';
import { flowrensicQuerySinks } from '@flowrensic/node';

const queries = flowrensicQuerySinks({ serverBaseUrl: 'http://flowrensic:8080', currentEnv: 'prod', envAccessKey });

const worker = await Worker.create({
  // ...
  interceptors: {
    activity: [flowrensicInterceptor(sink)],
    workflowModules: [createRequire(import.meta.url).resolve('@flowrensic/node/workflow')],
  },
  sinks: queries.sinks,
});
// Before the process ends:
await queries.buffer.close();

客户端截取器发送失败或没有的查询和信号 答话 把它放在客户端的插件中,所以它读取了用户端的命名空间 客户端 :

const interceptor = flowrensicClientInterceptor({ serverBaseUrl: 'http://flowrensic:8080', currentEnv: 'prod', envAccessKey });
const client = new Client({ connection, namespace: 'orders', plugins: [interceptor] });
// Before the process ends:
await interceptor.close();

同伴

@temporalio/worker, (中文(简体) ), @temporalio/common, (中文(简体) ), @temporalio/activity, (中文(简体) ), @temporalio/workflow,1.24或更新, 对于拦截器。 重放运行在你的SDK上,而不是这个 包针.

版本与发布记录

@flowrensic/node 共发布 76 个版本,首次发布于 2026/10/08;过去 12 个月发布了 76 个版本。

版本发布日期距今
0.6.61latest2026/11/115 天前
0.6.602026/11/106 天前
0.6.582026/11/096 天前
0.6.552026/11/078 天前
0.6.522026/11/079 天前
0.6.512026/11/069 天前

关于 @flowrensic/node 的常见问题

@flowrensic/node 是什么?

重放历史采集器和活动截取器,供Timoral工人使用,与Flowrensic使用.注意:该包已被作者标记为弃用——Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

如何安装 @flowrensic/node?

在项目目录运行 npm install @flowrensic/node,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@temporalio/proto(>=1.24)、@temporalio/client(>=1.24)、@temporalio/common(>=1.24)、@temporalio/worker(>=1.24)、@temporalio/activity(>=1.24)、@temporalio/workflow(>=1.24)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@flowrensic/node 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@flowrensic/node 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@flowrensic/node 可以商用吗?

@flowrensic/node 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@flowrensic/node 的下载量有多少?

根据 npm 官方下载统计,@flowrensic/node 在 2026/10/15 – 2026/11/13 这 30 天内被下载 12,984 次,日均约 433 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@flowrensic/node 还在维护吗?

最新版本 0.6.61 发布于 2026/11/11(5 天前);至今共发布 76 个版本,其中过去 12 个月发布了 76 个;首次发布于 2026/10/08。作者已将其标记为弃用,新项目建议寻找替代方案。