feat(系统监控): 监控信息推送至消息总线。 (#544)

This commit is contained in:
PengyuDeng 2024-07-19 15:00:19 +08:00 committed by GitHub
parent 19604d8328
commit a9b2754a41
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 12 additions and 2 deletions

View File

@ -1,6 +1,8 @@
package org.jetlinks.community.dashboard.measurements.sys;
import com.google.common.collect.Maps;
import org.hswebframework.web.api.crud.entity.QueryParamEntity;
import org.hswebframework.web.bean.FastBeanCopier;
import org.jetlinks.community.dashboard.*;
@ -12,6 +14,7 @@ import org.jetlinks.community.timeseries.TimeSeriesManager;
import org.jetlinks.community.timeseries.TimeSeriesMetadata;
import org.jetlinks.community.timeseries.TimeSeriesMetric;
import org.jetlinks.community.utils.TimeUtils;
import org.jetlinks.core.event.EventBus;
import org.jetlinks.core.metadata.ConfigMetadata;
import org.jetlinks.core.metadata.DataType;
import org.jetlinks.core.metadata.DefaultConfigMetadata;
@ -112,6 +115,8 @@ import java.util.Map;
@Component
public class SystemMonitorMeasurementProvider extends StaticMeasurementProvider {
private static final String SYSTEM_MONITOR_REAL_TIME_TOPIC = "/_sys/monitor/info";
private final SystemMonitorService monitorService = new SystemMonitorServiceImpl();
private final Duration collectInterval = TimeUtils.parse(System.getProperty("monitor.system.collector.interval", "1m"));
@ -124,10 +129,12 @@ public class SystemMonitorMeasurementProvider extends StaticMeasurementProvider
private final Disposable.Composite disposable = Disposables.composite();
private final EventBus eventBus;
public SystemMonitorMeasurementProvider(TimeSeriesManager timeSeriesManager) {
public SystemMonitorMeasurementProvider(TimeSeriesManager timeSeriesManager, EventBus eventBus) {
super(DefaultDashboardDefinition.systemMonitor, MonitorObjectDefinition.stats);
this.timeSeriesManager = timeSeriesManager;
this.eventBus = eventBus;
addMeasurement(new StaticMeasurement(CommonMeasurementDefinition.info)
.addDimension(new RealTimeDimension())
@ -159,7 +166,10 @@ public class SystemMonitorMeasurementProvider extends StaticMeasurementProvider
.flatMap(ignore -> monitorService
.system()
.map(this::systemInfoToMap)
.flatMap(data -> timeSeriesManager.getService(metric).commit(data))
.flatMap(data -> timeSeriesManager
.getService(metric)
.commit(data)
.then(eventBus.publish(SYSTEM_MONITOR_REAL_TIME_TOPIC,data)))
.onErrorResume(err -> Mono.empty()))
.subscribe()
);