nvisual实时监测
示例地址
https://cloud.nvisual.com/share.html?shareLink=W7F78h2zP54mVhIwvNx7&v=1739171523191
这是我们nvisual的分享社区中的一个分享示例,此示例是针对实时监测的应用案例。
使用描述
nvisual右侧工具栏有一个实时监测按钮
点击展开后是配置好的实时监测报表数据
详细功能介绍
这个功能是适配监测模块开发的,原理大致是在grafana连接promethues的监测数据,grafana内设计监测页面,这里将grafana的页面引入并展示。
从控制台可以看到这个按钮点击后调用的接口是
https://cloud.nvisual.com/diagramApi/wapi/v1/monitor/getUrl/24000000015099
(24000000015099是监测对象的id)
这个接口的功能是,查询此id对象对应的监测页面url,使前端调用此url展示页面。
这个接口会获取此id对象的属性列表内的监测类型
属性,用此属性查询数据库中对应的url路径,例如
例图中监测类型
是windows,数据库中有个monitor
表,其中job
列里存着对应监测类型
monitor表内job里是windows的对象,对应的dashboard_url和url_parametes分别是
https://cloud.nvisual.com/monitor/d/Kdh0OoSGz/windows
?orgId=1&var-job=windows&var-hostname=All&var-instance={Properties=IP}:9182&kiosk
所以如果监测类型是windows时,查询出来的url拼接起来为
https://cloud.nvisual.com/monitor/d/Kdh0OoSGz/windows?orgId=1&var-job=windows&var-hostname=All&var-instance={Properties=IP}:9182&kiosk
而接口查询的结果是
{
"code": 200,
"data": "https://cloud.nvisual.com/monitor/d/Kdh0OoSGz/windows?orgId=1&var-job=windows&var-hostname=All&var-instance=1.119.167.26:9182&kiosk",
"message": "success"
}
可以看到{Properties=IP}被替换为了1.119.167.26
表达式
这是因为{Properties=IP}是一个表达式,这个表达式的含义是取此对象本身的IP属性值
表达式规则是
1.需要用花括号括起来{}
2.如果取本身的属性,需要在等号前面用Properties
如果取父级对象的属性,需要在等号前面用parent_properties
3.中间用等号连接 =
4.等号后面是对象的属性名
例如:{Properties=IP}是取此对象的IP属性值
{Properties=ID}是取此对象的ID
{parent_properties=ID}是取此对象父级的ID
拓展
如果你有写好的自己的页面,需要传参数,可以在monitor表里自己定义
例如:创建一个job是test的数据,
dashboard_url填 https://cloud.nvisual.com/access.html?v=2.4.11
url_parametes填 ?node={Properties=ID}
在对象的监测类型里选择test
查看实时监测,回参的url是
{
"code": 200,
"data": "https://cloud.nvisual.com/access.html?v=2.4.11?node=24749000855405",
"message": "success"
}
用这个方法可以在nvisual内自定义对象的监测页面