# @f5devcentral/f5-teem 中文文档

规范地址：https://npmcn.com/package/%40f5devcentral/f5-teem/

版本：1\.6\.1
npm 元数据更新时间：2025-10-03T18:09:30.811Z
中文译文更新时间：2026-11-14T07:34:16.949Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40f5devcentral/f5-teem
原文对照：https://npmcn.com/package/%40f5devcentral/f5-teem/?lang=original

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

- 包体积（解压后）：84.5 kB，19 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：2 个
- 首次发布：2019-10-01T18:03:21.041Z
- 最新版本发布：2023-04-26T19:37:27.673Z
- 近 30 天下载量：4964（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 0 个）

## 中文简介

用于连接iControlLX扩展至遥测权利执行和调解(TEEM)的工具库

## 安装

```sh
npm install @f5devcentral/f5-teem
```

也可以使用：`pnpm add @f5devcentral/f5-teem`、`yarn add @f5devcentral/f5-teem`、`bun add @f5devcentral/f5-teem`

## README

# f5-teem (英语)

这个库供自动化工具链产品使用. 它的目的是与F5的TEEM基础设施相接,为F5提供用法分析.

## 使用量

```javascript
const TeemDevice = require('@f5devcentral/f5-teem').Device;
const assetInfo = {
    name: 'Declarative Onboarding',
    version: '1.2.3'
};
const teemDevice = new TeemDevice(assetInfo);
const declaration = <incoming_declaration>;
teemDevice.report('Declarative Onboarding Telemetry Data', '1', declaration);
```

默认情况下, f5-teem 会发送包含

-   代码正在运行的设备类型( 例如“ BIG- IP ”)
-   正在运行代码的设备的TMOS软件版本
-   声明中的每个类类型的计数

注:这些TEEM报告在传输时会出错. 发现任何错误并妥善处理是最佳做法。 然而,放弃任何错误是合理的,因为TEEM(通常)不应该阻止项目的执行. TEEM 报告不应为您的项目设置屏蔽, 响应没有用处 .

## 匿名 API 用户

为了成功将信息发送到匿名端点,需要提供API密钥.

此外,您还可以指定您的机器 id 值作为资产Info 的一部分。 这将优先于在BIG-IP上运行的自动检查.

目前,除非f5-teem运行在BIG-IP上,产品和产品Version无法确定,因此在输出中会被贴上"未知"的标签.

```javascript
const TeemDevice = require('@f5devcentral/f5-teem').AnonymousDevice;
const assetInfo = {
    name: 'Declarative Onboarding',
    version: '1.2.3',
    id: '<ID of the machine>'
};
const teemDevice = new TeemDevice(assetInfo, <API_KEY>);
const declaration = <incoming_declaration>;
teemDevice.report('Declarative Onboarding Telemetry Data', '1', declaration);
```

由 f5-teem 发送的原始对象示例

```json
{
    "documentType": "Declarative Onboarding Telemetry Data",
    "documentVersion": "1",
    "digitalAssetId": "213d40c8-6d64-5682-b29d-bc2ac080c9e2",
    "digitalAssetName": "Declarative Onboarding",
    "digitalAssetVersion": "1.2.3",
    "observationStartTime": "2019-09-27T23:15:23.149Z",
    "observationEndTime": "2019-09-27T23:15:23.149Z",
    "epochTime": "1569626123149",
    "telemetryId": "345619b4-3e4c-429c-b15c-3ee73e3738a0",
    "telemetryRecords": [
        {
            "Device": 1,
            "Tenant": 1,
            "License": 1,
            "DNS": 1,
            "NTP": 1,
            "Provision": 1,
            "VLAN": 2,
            "SelfIp": 2,
            "platform": "BIG-IP",
            "platformVersion": "14.1.0.5"
        }
    ]
}
```

## 记录 API 使用情况

设备和匿名Device都有这种API,允许用户指定报告的内容,而不是使用预先设计的报告. 为此,您首先创建和指定一个记录,然后将报告记录()进行解析并发送信息.

以下是使用匿名API创建和发送报告的例子.

注:记录使用承诺来收集信息.

```javascript
const TeemDevice = require('@f5devcentral/f5-teem').AnonymousDevice;
const Record = require('@f5devcentral/f5-teem').Record;
const assetInfo = {
    name: 'Declarative Onboarding',
    version: '1.2.3',
    id: '<ID of the machine>'
};
const teemDevice = new TeemDevice(assetInfo, <API_KEY>);
const declaration = <incoming_declaration>;

const record = new Record('Declarative Onboarding Telemetry Data', '1');
return Promise.resolve()
    .then(() => record.addClassCount(declaration))
    .then(() => record.addJsonObject({ <Any JSON information you want to add> }))
    .then(() => record.addPlatformInfo())
    .then(() => teemDevice.reportRecord(record));
```

### 记录功能

#### 随时可以使用

-   `addClassCount(declaration)` - 接受并解释声明,增加它发现的类数。 可被多次调用,使已发现的班级数量递增.
-   `addJsonObject(jsonObject)` - 接受JSON对象并直接添加到记录中.

#### 必须运行在BIG -IP

-   `addPlatformInfo()` - 从本地主机调出平台信息,并将其记录下来.
-   `addRegKey()` - 从本地主机调出RegKey信息,并加入记录.
-   `addProvisionedModules()` - 抽取和剖析现有和提供模块,并在记录中增加每个模块的提供级别.
-   `calculateAssetId()` - 提取机器ID并创建散列, 如果不提供资产Info.id, 将使用此程序 .

## 高级用途

### 禁用发送数据的 f5-teem

f5-teem尊重电话家庭设置. 要禁用 f5-teem 发送数据:

```
tmsh modify sys software update auto-phonehome disabled
```

### 发送自定义数据

要发送多于默认数据, 请向 _报告_ API 密码

```javascript
const extraFields = {
    status: 'OK',
    firstRun: false
};
teemDevice.report('Declarative Onboarding Telemetry Data', '1', declaration, extraFields);
```

### 使用 TEEM 连接环境

-   编辑文件/服务/重新命名/运行
    
    -   在开始重新命名的行之前,添加行:
    
    ```bash
    export TEEM_API_ENVIRONMENT='staging'
    ```
    
-   大起步重新启动已暂停

## 常见问题

### @f5devcentral/f5-teem 是什么？

用于连接iControlLX扩展至遥测权利执行和调解\(TEEM\)的工具库

### 如何安装 @f5devcentral/f5-teem？

在项目目录运行 npm install @f5devcentral/f5-teem，或使用 pnpm add / yarn add / bun add。

### @f5devcentral/f5-teem 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/f5devcentral\_\_f5-teem 是否存在。

### @f5devcentral/f5-teem 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @f5devcentral/f5-teem 可以商用吗？

@f5devcentral/f5-teem 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @f5devcentral/f5-teem 的下载量有多少？

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

### @f5devcentral/f5-teem 还在维护吗？

最新版本 1\.6\.1 发布于 2023/04/27（3 年前）；至今共发布 15 个版本，其中过去 12 个月发布了 0 个；首次发布于 2019/10/02。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

