server-info

描述

server-info 插件可以定期将服务基本信息上报至 etcd。

服务信息中每一项的含义如下:

名称类型描述
boot_timeintegerAPISIX 服务实例的启动时间(UNIX 时间戳),如果对 APISIX 进行热更新操作,该值将被重置。普通的 reload 操作不会影响该值。
idstringAPISIX 服务实例 id。
etcd_versionstringetcd 集群的版本信息,如果 APISIX 和 etcd 集群之间存在网络分区,该值将设置为 “unknown”
versionstringAPISIX 版本信息。
hostnamestring部署 APISIX 的主机或 Pod 的主机名信息。

属性

无。

插件接口

该插件在 Control API 下暴露了一个 API 接口 /v1/server_info

启用插件

该插件默认是禁用状态,你可以在配置文件(./conf/config.yaml)中添加如下配置启用 server-info 插件。

conf/config.yaml

  1. plugins: # plugin list
  2. - ...
  3. - server-info

自定义服务信息上报配置

我们可以在 ./conf/config.yaml 文件的 plugin_attr 部分修改上报配置。

下表是可以自定义配置的参数:

名称类型默认值描述
report_ttlinteger36etcd 中服务信息保存的 TTL(单位:秒,最大值:86400,最小值:3)。

以下是示例是通过修改配置文件(conf/config.yaml)中的 plugin_attr 部分将 report_ttl 设置为 1 分钟:

conf/config.yaml

  1. plugin_attr:
  2. server-info:
  3. report_ttl: 60

测试插件

在启用 server-info 插件后,可以通过插件的 Control API 来访问到这些数据:

  1. curl http://127.0.0.1:9090/v1/server_info -s | jq .
  1. {
  2. "etcd_version": "3.5.0",
  3. "id": "b7ce1c5c-b1aa-4df7-888a-cbe403f3e948",
  4. "hostname": "fedora32",
  5. "version": "2.1",
  6. "boot_time": 1608522102
  7. }
server-info - 图1tip

你可以通过 APISIX Dashboard 查看服务信息报告。

删除插件

如果你想禁用插件,可以将 server-info 从配置文件中的插件列表删除,重新加载 APISIX 后即可生效。

conf/config.yaml

  1. plugins: # plugin list
  2. - ...