@f5devcentral/f5-teem

中文文档
1.6.1发布于 2023/04/27Apache-2.0CommonJS近 30 天下载 4964

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

中文使用文档
文档目录8 节
  1. 使用量
  2. 匿名 API 用户
  3. 记录 API 使用情况
  4. 记录功能
  5. 高级用途
  6. 禁用发送数据的 f5-teem
  7. 发送自定义数据
  8. 使用 TEEM 连接环境

f5-teem (英语)

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

使用量

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无法确定,因此在输出中会被贴上"未知"的标签.

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 发送的原始对象示例

{
    "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创建和发送报告的例子.

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

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 密码

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

使用 TEEM 连接环境

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

版本与发布记录

@f5devcentral/f5-teem 共发布 15 个版本,首次发布于 2019/10/02;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.6.1latest2023/04/273 年前
1.5.02021/05/065 年前
1.4.72021/03/205 年前
1.4.62020/05/286 年前
1.4.52020/05/196 年前
1.4.42020/05/166 年前

关于 @f5devcentral/f5-teem 的常见问题

@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 和提交记录判断。