Skip to main content

get_input_sources_status NTP输入源监测功能

POST /api/v1/ntp/get_input_sources_status

描述

添加NTP输入源(上游NTP服务器)监测功能, 用于获取NTP输入源的状态信息,包括输入源的可达性、延迟、偏移和抖动等参数。

访问权限

需要登录,具备以下权限:

ntp:get_input_sources_status

JSON参数

请求参数为JSON格式:

{}

响应结果

请求返回的HTTP状态码为200

返回结果为JSON格式的数据,您可以通过解析JSON数据来获取API调用的结果信息。结构如下:

{
"success": true|false,
"data"?: {
"overallStatus": string,
"syncSourceName": string,
"sourceCount": number,
"sources": [
{
"nameIp": string,
"mode": string,
"state": string,
"isSyncSource": boolean,
"stratum": number,
"poll": number,
"reach": string,
"lastRx": string,
"lastSample": string
}
]
},
"errorCode"?: "option string",
"errorMessage"?: "option string",
"showType"?: 0|1|2|4|9,
"traceId"?: "option string"
}
tip
  • overallStatus: 整体同步状态,表示NTP服务器当前的同步状态。"Synchronized"表示至少有一个NTP源被选为最佳同步源,服务器处于已同步状态;"Not synchronized"表示没有源被选为最佳同步源,服务器未同步;"Unknown"表示无法确定同步状态,可能由于没有配置NTP源或所有源均不可达。
  • syncSourceName: 当前正在同步的NTP源的名称或IP地址。如果没有同步源,则返回"None"。如"192.168.166.15" / "None"(无同步源)。
  • sourceCount: 配置的有效NTP源总数,表示当前NTP服务器配置了多少个可用的NTP输入源。0~10 (最大支持10个源)。
  • sources: NTP源详细信息数组,包含每个NTP源的状态和参数信息。数组对象,包含所有源的详细信息(有可能返回空), 每个元素是一个源对象
  • nameIp: NTP源的名称或IP地址,表示该NTP源的标识信息,可以是IPv4地址、域名或参考时钟ID。IPv4地址如"192.168.166.15" / 域名如"ntp1.aliyun.com" / 参考时钟ID如"GPS","PPS"
  • mode: 源的模式类型,表示该NTP源的工作模式,如"Server"表示NTP服务器,"Peer"表示NTP对等体,"Reference clock"表示本地参考时钟。
  • state: 源的当前状态,表示该NTP源的同步状态,如"Best source"表示当前选中的最佳同步源,"Selectable"表示可选择但未被选中等。"Best source"(当前选中的最佳同步源,最高优先级) / "Combined with best"(与最佳源组合使用) / "Selectable"(可选择但未被选中) / "False ticker"(时间与其他源不一致) / "Too variable"(时间波动过大) / "Not selectable"(不可选择:不可达/未同步/测量不足)
  • isSyncSource: 是否为当前同步源,true表示该源正在被NTP服务器使用作为同步源,false表示不是当前同步源。当state为"Best source"时为true
  • stratum: NTP层级,表示该NTP源的时钟精度等级,数值越小表示精度越高。1(直接连接参考时钟如GPS,最精确) / 2(与层级1同步) / 3(与层级2同步) / ... / 15(最大层级) / 16(未同步), 数值越小精度越高,层级1精度最高
  • poll: 轮询间隔,表示NTP服务器与该源进行时间同步的频率,以2为底的对数表示。0=1秒(2^0) / 1=2秒(2^1) / 2=4秒(2^2) / 4=16秒(2^4) / 6=64秒(2^6) / 10=1024秒(2^10,约17分钟)。Chrony根据网络状况自动调整,值越大轮询越慢。
  • reach: 可达性寄存器,表示NTP服务器与该源的通信状态,记录最近8次轮询结果。"377"(最近8次全部成功,二进制11111111,理想状态) / "177"(最早1次失败,二进制01111111) / "077"(最早2次失败) / "007"(最近3次成功) / "000"(完全不可达)。每次接收或丢失数据包时更新,从右到左表示从最新到最早。
  • lastRx: 距上次成功接收的时间间隔,表示NTP服务器上次成功从该源接收时间数据的时间。数字=秒,如"2"表示2秒前 / "5m"(5分钟前) / "2h"(2小时前) / "3d"(3天前) / "1y"(1年前)。未通过测试的测量会被忽略。
  • lastSample: 上次采样的时间偏移量,表示NTP服务器与该源的时间偏移情况,包括调整后偏移、实际测量偏移和测量误差。格式:调整后偏移[实际测量偏移] +/- 测量误差
    • 示例1:+1485ns[+1882ns] +/- 50us (本地快1.485微秒,实测快1.882微秒,误差±50微秒,极优)。
    • 示例2:-26ms[-26ms] +/- 224ms(本地慢26毫秒,误差±224毫秒,较差)。示例3:-25us[-25us] +/- 44us(本地慢25微秒,误差±44微秒,优秀)。正值表示本地时钟快于源,负值表示本地时钟慢于源。单位:ns(纳秒)、us(微秒)、ms(毫秒)、s(秒) 调整后偏移=实际测量偏移-自测量以来的时钟调整量(slew)。方括号内是原始测量值,+/-后是NTP根距离(测量误差)

响应示例:

{
"success": true,
"data": {
"overallStatus": "Synchronized",
"syncSourceName": "192.168.166.15",
"sourceCount": 3,
"sources": [
{
"nameIp": "192.168.166.15",
"mode": "Server",
"state": "Best source",
"isSyncSource": true,
"stratum": 1,
"poll": 2,
"reach": "377",
"lastRx": "2",
"lastSample": "+1485ns[+1882ns] +/- 50us"
},
{
"nameIp": "72.14.186.59",
"mode": "Server",
"state": "Selectable",
"isSyncSource": false,
"stratum": 3,
"poll": 1,
"reach": "377",
"lastRx": "-26ms[-26ms] +/- 224ms"
},
{
"nameIp": "[::ffff:192.168.166.17]",
"mode": "Server",
"state": "Selectable",
"isSyncSource": false,
"stratum": 1,
"poll": 2,
"reach": "377",
"lastRx": "2",
"lastSample": "-25us[ -25us] +/- 44us"
}
]
}
}

错误结果示例:

{
"success": false,
"errorCode": "40007",
"errorMessage": "ntp.input.sources.unavailable",
"showType": 1
}