# @absolutejs/health 中文文档

规范地址：https://npmcn.com/package/%40absolutejs/health/

版本：0\.5\.0
npm 元数据更新时间：2026-10-23T21:00:26.969Z
中文译文更新时间：2026-11-07T04:22:55.383Z
软件包许可：BSL-1\.1

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40absolutejs/health
原文对照：https://npmcn.com/package/%40absolutejs/health/?lang=original
项目主页：https://github.com/absolutejs/health
源码仓库：https://github.com/absolutejs/health

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：523 kB，12 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：elysia ^2\.0\.0-rc\.0
- 首次发布：2026-05-31T10:39:51.709Z
- 最新版本发布：2026-10-23T21:00:26.189Z
- 近 30 天下载量：2043（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 7 个）

## 中文简介

活性+绝对JS基质的准备状态探测器. 创建健康检查器 , 命名为检查; 健康Plugin 曝光 / healthz( 进程活性? ) + / readyz( 可以服务流量吗 ) , 并带有标准的 JSON 信封 。 每一次检查超时,累计最差

## 安装

```sh
npm install @absolutejs/health
```

也可以使用：`pnpm add @absolutejs/health`、`yarn add @absolutejs/health`、`bun add @absolutejs/health`

## README

# @absolutejs/卫生

活性+绝对JS基质的准备状态探测器. 一个爱丽西亚 插件, 两个端点, 一个装入平衡器的标准 JSON 信封 和Kubernetes风格的管弦乐手 理解出盒子.

```ts
import { Elysia } from 'elysia';
import {
  createHealthChecker,
  healthPlugin,
  metricsCheck,
  probeCheck,
  httpCheck,
} from '@absolutejs/health';

const checker = createHealthChecker({
  checks: [
    // Synthesis from a substrate package's metrics() snapshot.
    metricsCheck('queue', () => worker.metrics(), (m) => ({
      status: m.failed > 100 ? 'warn' : 'pass',
      observed: { runs: m.runs, failed: m.failed },
    })),

    // Wrap an arbitrary probe.
    probeCheck('postgres', () => pg.query('SELECT 1')),

    // Downstream HTTP dependency.
    httpCheck('otlp-collector', 'http://collector:4318/healthz', {
      kind: 'readiness',  // run only under /readyz
    }),
  ],
});

const app = new Elysia().use(await healthPlugin({ checker }));
// GET /healthz → liveness:  200 / 503 with { status, checks, at }
// GET /readyz  → readiness: same shape, filtered to readiness + both
```

## 两个终点,两个语义

| 终点 | 目的 | 用于 |
| --- | --- | --- |
| `/healthz` | "这个过程还活着吗?" 若为 `fail`,管弦乐器重新启动容器. | 系统活性探测器 `WatchdogSec`, (中文(简体) ), `@absolutejs/runtime` |
| `/readyz` | "这个案例现在能为交通服务吗?" 若为 `fail`,LB停止通向它(但不会杀死它). | 负载平衡器健康检查、排水流程 |

区别很重要:一个耗尽的实例返回 `readyz: fail`

-   `healthz: pass`. LB在飞行时停止发送新流量 请求结束.

## 身体形状

```json
{
  "status": "pass",
  "at": 1717161600000,
  "checks": {
    "queue": {
      "status": "pass",
      "latencyMs": 1,
      "observed": { "runs": 1057, "failed": 0 }
    },
    "postgres": { "status": "pass", "latencyMs": 12 }
  }
}
```

与 [IETF 健康检查 JSON 草案](https://datatracker.ietf.org/doc/html/draft-inadarei-api-health-check-06) 编辑 [库伯涅斯 `livez` 编号 : `readyz`](https://kubernetes.io/docs/reference/using-api/health-checks/) 公约. `content-type: application/health+json`。 。 。 .

## 状态代码

-   `pass` → `200 OK`
-   `warn` → `200 OK` (不要改变交通路线;在仪表板上表面)
-   `fail` → `503 Service Unavailable`

LBs路由在状态代码上;人类+仪表板读取身体.

## 合计

状态是任何检查的 WORST : `fail > warn > pass`单人 无法依赖整个信封 — 与 Kubernetes 相同 `/healthz` 卷起行为.

## 检查工厂

-   **`probeCheck(name, () => promise)`** - 任何包装 `() => Promise<unknown>`. 决定 . `pass`; 投掷 `fail` 与 错误消息.
-   **`metricsCheck(name, () => metrics(), evaluator)`** - 读取a 底盘包 `metrics()` 决定通过/警告/失败。 抓图 值可登陆 `observed` 为仪表板.
-   **`httpCheck(name, url, options?)`** —— 说 `GET url` 和级别,由HTTP 状态。 2xx – (中文(简体) ) `pass`任何其它东西 `fail`。 。 。 .
-   **自己滚** - 任何 `{ name, check: () => CheckResult | Promise<CheckResult> }` 工作时.

## 过滤

```ts
{ name: 'shutting-down', kind: 'readiness', check: () => ({
  status: draining ? 'fail' : 'pass'
})}
```

一张支票 `kind` (单位:千美元)`'liveness'` 编号 : `'readiness'` 编号 : `'both'`默认值 `'both'`控制它运行的终点。 下游运行重 检查只在准备状态下进行; 将现场活动限于“联合来文” 过程是反应"

## 许可证

BSL-1.1 与主机运行时间/合成时间对应的指定例外 监测服务。 变更日期:2030-05-31 (Apache 2.

## 常见问题

### @absolutejs/health 是什么？

活性\+绝对JS基质的准备状态探测器\. 创建健康检查器 , 命名为检查; 健康Plugin 曝光 / healthz\( 进程活性? \) \+ / readyz\( 可以服务流量吗 \) , 并带有标准的 JSON 信封 。 每一次检查超时,累计最差

### 如何安装 @absolutejs/health？

在项目目录运行 npm install @absolutejs/health，或使用 pnpm add / yarn add / bun add。

### @absolutejs/health 支持 TypeScript 吗？

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

### @absolutejs/health 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @absolutejs/health 可以商用吗？

@absolutejs/health 使用 BSL-1\.1 许可。声明的许可为 BSL-1\.1，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @absolutejs/health 的下载量有多少？

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

### @absolutejs/health 还在维护吗？

最新版本 0\.5\.0 发布于 2026/10/24（14 天前）；至今共发布 7 个版本，其中过去 12 个月发布了 7 个；首次发布于 2026/05/31。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

