src/main/java/cc/mrbird/febs/monitor/helper/FebsActuatorHelper.java

(开头部分) 8KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package cc.mrbird.febs.monitor.helper;

import cc.mrbird.febs.common.annotation.Helper;
import cc.mrbird.febs.common.entity.Strings;
import cc.mrbird.febs.common.utils.DateUtil;
import cc.mrbird.febs.monitor.endpoint.FebsMetricsEndpoint;
import cc.mrbird.febs.monitor.entity.JvmInfo;
import cc.mrbird.febs.monitor.entity.ServerInfo;
import cc.mrbird.febs.monitor.entity.TomcatInfo;
import com.google.common.base.Predicates;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

import static cc.mrbird.febs.monitor.endpoint.FebsMetricsEndpoint.FebsMetricResponse;
import static cc.mrbird.febs.monitor.endpoint.FebsMetricsEndpoint.Sample;

/**
 * @author MrBird
 */
@Helper
@RequiredArgsConstructor
public class FebsActuatorHelper {

    private static final BigDecimal DECIMAL = new BigDecimal("1048576");

    private final FebsMetricsEndpoint metricsEndpoint;

    private static Double convertToMb(Object value) {
        return new BigDecimal(String.valueOf(value))
                .divide(DECIMAL, 3, RoundingMode.HALF_UP).doubleValue();
    }

    public List<FebsMetricResponse> getMetricResponseByType(String type) {
        FebsMetricsEndpoint.ListNamesResponse listNames = metricsEndpoint.listNames();
        Set<String> names = listNames.getNames();
        Iterable<String> jvm = names.stream()
                .filter(Predicates.containsPattern(type)::apply)
                .collect(Collectors.toList());
        List<FebsMetricResponse> metricResponseList = new ArrayList<>();
        jvm.forEach(s -> {
            FebsMetricResponse metric = metricsEndpoint.metric(s, null);
            metricResponseList.add(metric);
        });
        return metricResponseList;
    }

    public JvmInfo getJvmInfoFromMetricData(List<FebsMetricResponse> metrics) {
        JvmInfo jvmInfo = new JvmInfo();
        metrics.forEach(d -> {
            String name = d.getName();
            Sample sample = d.getMeasurements().get(0);
后面还有 155 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读 AI

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。