优化监控

This commit is contained in:
zhouhao 2020-02-27 20:33:52 +08:00
parent a1c32b946d
commit 84ca0dff3d
3 changed files with 17 additions and 7 deletions

View File

@ -65,7 +65,9 @@ public class JvmCpuMeasurementProvider
@Override
public Flux<MeasurementValue> getValue(MeasurementParameter parameter) {
//每秒获取系统CPU使用率
return Flux.interval(Duration.ofSeconds(1))
return Flux.concat(
Flux.just(1),
Flux.interval(Duration.ofSeconds(1)))
.map(t -> SimpleMeasurementValue.of(BigDecimal
.valueOf(SystemMonitor.jvmCpuUsage.getValue())
.setScale(1, ROUND_HALF_UP),

View File

@ -14,6 +14,7 @@ import org.jetlinks.community.dashboard.supports.StaticMeasurement;
import org.jetlinks.community.dashboard.supports.StaticMeasurementProvider;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
@ -97,10 +98,12 @@ public class JvmMemoryMeasurementProvider extends StaticMeasurementProvider {
@Override
public Flux<MeasurementValue> getValue(MeasurementParameter parameter) {
return Flux.interval(Duration.ofSeconds(1))
.map(t -> MemoryInfo.of(memoryMXBean.getHeapMemoryUsage()))
.windowUntilChanged(MemoryInfo::getUsage)
.flatMap(Flux::last)
return Flux.concat(
Flux.just(MemoryInfo.of(memoryMXBean.getHeapMemoryUsage())),
Flux.interval(Duration.ofSeconds(1))
.map(t -> MemoryInfo.of(memoryMXBean.getHeapMemoryUsage()))
.windowUntilChanged(MemoryInfo::getUsage)
.flatMap(Flux::last))
.map(val -> SimpleMeasurementValue.of(val,
DateFormatter.toString(new Date(), "HH:mm:ss"),
System.currentTimeMillis()))

View File

@ -94,8 +94,13 @@ public class SystemMemoryMeasurementProvider extends StaticMeasurementProvider {
@Override
public Flux<MeasurementValue> getValue(MeasurementParameter parameter) {
return Flux.interval(Duration.ofSeconds(1))
.map(t -> SimpleMeasurementValue.of(MemoryInfo.of(),
return Flux.concat(
Flux.just(MemoryInfo.of()),
Flux.interval(Duration.ofSeconds(1))
.map(t -> MemoryInfo.of())
.windowUntilChanged(MemoryInfo::getUsage)
.flatMap(Flux::last))
.map(val -> SimpleMeasurementValue.of(val,
DateFormatter.toString(new Date(), "HH:mm:ss"),
System.currentTimeMillis()))
.cast(MeasurementValue.class);