创建拨测任务时,支持断言配置。您可以根据业务需要,定义拨测任务执行期间要检查的规则或条件。如果拨测节点拨测的响应结果满足了断言配置中定义的所有条件,则任务被视为成功;否则,任务被视为失败。通过断言配置,您可以更精确地监测网络服务的可用性和性能,并及时发现潜在的问题。
不同拨测方式支持不同的断言字段配置,具体内容请参见下表。
任务类型 | 拨测方式 | 断言字段 | 说明 |
---|---|---|---|
单协议 | HTTP | HTTP 状态码 | HTTP 请求返回的状态码。 |
响应头 | HTTP 请求返回的响应头。 | ||
响应数据 | HTTP 请求返回的响应数据。 | ||
下载大小 | HTTP 请求返回的响应体字节数。 | ||
整体时延 | 从 DNS 到下载完成的整体时间。 | ||
DNS | 解析时延 | 从发送到收到解析结果的时间。 | |
DNS 记录列表 | DNS 服务器返回的 DNS 记录列表。 | ||
A 记录 | DNS 服务器返回的 A 记录。 | ||
AAAA 记录 | DNS 服务器返回的 AAAA 记录列表。 | ||
CNAME 记录 | DNS 服务器返回的 CNAME 记录列表。 | ||
MX 记录 | DNS 服务器返回的 MX 记录列表。 | ||
TXT 记录 | DNS 服务器返回的 TXT 记录列表。 | ||
PTR 记录 | DNS 服务器返回的 PTR 记录列表。 | ||
PING | 平均时延 | 从发出包,到接收包的耗时。如果是 TCP 则包含建连时间。如果发送多个包,取平均时延。 | |
最大时延 | 如果发送多个包,取最大值。 | ||
最小时延 | 如果发送多个包,取最小值。 | ||
丢包率 | 一次任务,( 发包数 - 收包数 ) / 发包数。 | ||
Traceroute | 路由跳数-Traceroute | 一次任务,路由 hop 数。 | |
MTR | 路由跳数-MTR | 一次任务,路由 hop 数。 | |
UDP | 总耗时 | 从发起 UDP 请求到接收完整响应数据所经历的总时间。 | |
DNS 时延 | 域名解析时间。 | ||
响应数据 | UDP 请求返回的响应数据。 | ||
TCP | 总耗时 | 从发起 TCP 连接开始到接收到完整的响应数据所经历的时间总和。 | |
建连时间 | 3 次握手时间。 | ||
响应时间 | 从建连完成,到收到首字节的时间。 | ||
DNS 时间 | 域名解析时间。 | ||
响应数据 | TCP 请求返回的响应数据。 | ||
网络质量 | PING | 平均时延 | 从发出包,到接收包的耗时。如果是 TCP 则包含建连时间。如果发送多个包,取平均时延。 |
最大时延 | 如果发送多个包,取最大值。 | ||
最小时延 | 如果发送多个包,取最小值。 | ||
丢包率 | 一次任务,( 发包数 - 收包数 ) / 发包数。 | ||
DNS | 解析时延 | 从发送到收到解析结果的时间。 | |
DNS 记录列表 | DNS 服务器返回的 DNS 记录列表。 | ||
A 记录 | DNS 服务器返回的 A 记录。 | ||
AAAA 记录 | DNS 服务器返回的 AAAA 记录列表。 | ||
CNAME 记录 | DNS 服务器返回的 CNAME 记录列表。 | ||
MX 记录 | DNS 服务器返回的 MX 记录列表。 | ||
TXT 记录 | DNS 服务器返回的 TXT 记录列表。 | ||
PTR 记录 | DNS 服务器返回的 PTR 记录列表。 | ||
MTR | 路由跳数-MTR | 一次任务,路由 hop 数。 | |
Traceroute | 路由跳数-Traceroute | 一次任务,路由 hop 数。 | |
页面元素 | 页面响应头 | 服务器响应 HTTP 请求时返回的元数据信息。 | |
完全加载时间 | 从首字节,到 LoadEventStart 的时间。 | ||
DOM 加载时间 | 从首字节,到 DOMContentLoaded 的时间。 | ||
元素个数 | 页面内对象的个数。 | ||
元素总大小 | 页面内所有元素大小(字节数)之和 如果页面未完成加载,该值为 null。 | ||
元素加载速度 | 页面元素大小 / 所有页面元素的下载时间(投影时间) | ||
源码 | 网页的 HTML 源代码,即网页的原始文档内容。 |
详细内容请参见状态码。
JSONPath 是一种用于在 JSON 数据中定位和提取信息的查询语言,它使用类似于 XPath 的语法,通过指定路径来访问 JSON 对象的属性和数组元素。
JSONPath | 说明 |
---|---|
| 根对象或元素。 |
| 当前对象或元素。 |
| 子元素操作符。 |
| 递归匹配所有子元素。 |
| 通配符。匹配所有对象或元素。 |
| 下标运算符。JsonPath 索引从 0 开始。 |
| 连接运算符,将多个结果拼成数组返回。JSONPath 允许使用别名。 |
| 数组切片运算符。 |
| 过滤器(脚本)表达式。 |
| 脚本表达式。 |
例如,给定以下 JSON 数据:
{ "name": "John", "age": 30, "address": { "street": "123 Main St", "city": "New York" }, "phones": [ { "type": "home", "number": "123-456-7890" }, { "type": "work", "number": "987-654-3210" } ] }
通过 JSONPath 可以这样访问数据:
$.name
:访问名为"name"的属性。$.address.city
:访问嵌套在"address"对象中的"city"属性。$.phones[0].number
:访问第一个电话号码的"number"属性。关于 JSONPath 的更多内容,请参见https://goessner.net/。
XPath 是一种用于在 XML 文档中定位和提取信息的查询语言。它使用路径表达式来描述 XML 文档的结构,类似于文件系统中的路径。XPath 支持在 XML 文档中定位元素、属性、文本和命名空间等内容,提供了丰富的查询功能。
XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。
表达式 | 描述 |
---|---|
| 选取此节点的所有子节点。 |
| 从根节点选取(取子节点)。 |
| 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置(取子孙节点)。 |
| 选取当前节点。 |
| 选取当前节点的父节点。 |
| 选取属性。 |
例如,给定以下 XML 数据:
<bookstore> <book category="fiction"> <title lang="en">Harry Potter</title> <author>J.K. Rowling</author> </book> <book category="non-fiction"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> </book> </bookstore>
通过XPath可以这样访问数据:
/bookstore/book[1]/title
:访问第一个书籍的标题。/bookstore/book[@category='non-fiction']/author
:访问类别为"non-fiction"的书籍的作者。//title
:访问文档中的所有标题元素。关于 XPath 的更多内容,请参见https://www.w3.org/TR/1999/REC-xpath-19991116/。