服务监控服务
功能简介
监控服务以后台运行模式,对特定服务进行持续的监控和数据提取,如队列消息监控、目录文件变更或设备状态监控等,它不需要单独配置额外的调度机制,激活后,会随着仓鼠服务自动运行,并始终保持对特定服务的监控及数据提取,适合类似于IoT方案集成。
- 服务监控
- 服务管理
创建监控服务
点击新增
按钮后,可在下述界面中配置特定的服务,服务的配置以JSON格式体现,可以通过配置模板
获取参考模板。
配置监控服务
针对不同的服务,监控配置项有所不同:
batch_sync_mins: 同步时间间隔秒数,实时接收到的消息缓存后,会按指定间隔时间进行数据转存。
batch_sync_msg_max: 同步前缓存消息的最大数量,超过这个数量,系统立即进行数据转存,即使同步时间隔时间没有到。
- AMQP协议服务:监控服务启动后,会按配置信息中指定的消息Key值来监控指定的消息队列,并接收响应的队列消息。可以指定多个队列和消息键。
{
"batch_sync_msg_max":100,
"batch_sync_mins":10,
"monitor":[
{
"queue_name":"your_queue_name_A",
}
,{
"queue_name":"your_queue_name_B",
}
]
}
- MQTT协议服务:监控服务启动后,会检测配置信息中提供的主题清单,并接收消息数据。
{
"batch_sync_msg_max":100,
"batch_sync_mins":10,
"monitor":[
{
"topic":"your_topic_A"
}
,{
"topic":"your_topic_B"
}
]
}
- 启动监控数:每个服务节点仅运行监控服务的一个实例,如果希望有多个实例运行,需要配置多个服务节点(Slaver Service),常规可以配置为1。
配置消息存储
当监控的服务获取到响应的消息(数据)后,这些消息(数据)可以通过下述配置以存储到不同的媒介中。
- 存储到文件:可以将消息(数据)存储成csv文件,并同步到指定的文件存储服务上,如SFTP,或共享目录中,文件结构如下:
host,port,queue_or_topic,monitor_svc_id,message_data,received_dt
- 存储到数据库:可以将消息(数据)按预定的格式存储到指定的数据库表中,目标表结构如下,可以添加额外标识字段。
create table public.proxy_message_content(
host text,
port int,
queue_or_topic text,
monitor_svc_id text,
message_data text,
received_dt timestamp
);
配置后续处理
当消息(数据)被存储到指定的设备后,可以配置指定的任务包
,来处理这些数据,如同步,累加计算,或分析计算后,确认是否需要触发预警通知等。
- 调用任务包:在消息(数据)同步完成后,调用指定的任务包进行后续处理。也可以不配置,通过调度计划的方式,进行阶段性更新也是可以的。
如果配置了特定任务包,系统在完成数据同步后调用任务包时,会额外提供如下的系统变量来传递额外的信息,便于后续任务包进行数据处理。如果需要使用下述变量,需要在被调用的任务包中按如下变量名进行预定义
。
变量名 | 类型 | 备注 | 参考值 |
---|---|---|---|
monitor_svc_message_count | 字符 | 当前获取的消息数量 | 100 |
monitor_svc_message_file | 字符 | 本批次消息导出到的文件名 | 20250116_173010_235.csv |
monitor_svc_target_working_folder | 字符 | 消息存储的目录 | mqtt_topic_a |
monitor_svc_target_table | 字符 | 消息存储的目标表名 | public.mqtt_topic_a |