java把mysql的数据同步到prometheus

发布时间 2023-11-29 14:44:49作者: 代码吴彦祖

1.mysql的数据

 2.java代码

 建立指标Collector类,指标类必须继承Collector

 

import cn.hutool.extra.spring.SpringUtil;
import com.xlkh.prometheus.pojo.device.DeviceMonitorMetric;
import com.xlkh.prometheus.service.device.DeviceMonitorMetricService;
import io.prometheus.client.Collector;
import io.prometheus.client.GaugeMetricFamily;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CpuRatioCollector extends Collector {

    private static DeviceMonitorMetricService deviceMonitorMetricService= SpringUtil.getBean(DeviceMonitorMetricService.class);

    @Override
    public List<MetricFamilySamples> collect() {
        List<MetricFamilySamples> mfs = new ArrayList<MetricFamilySamples>();

        // With labels
        GaugeMetricFamily labeledGauge = new GaugeMetricFamily("cpuRatio", "instance cpuRatio", Arrays.asList("instance"));
        //查询mysql指标数据
        List<DeviceMonitorMetric> instanceData = deviceMonitorMetricService.getInstanceData();
        instanceData.stream().forEach(val->{
            if (val.getMetric().equals("cpuRatio")){
                labeledGauge.addMetric(Arrays.asList(val.getInstance()), val.getValue());
            }
        });
        mfs.add(labeledGauge);
        return mfs;
    }
}

 

本地启动,访问配置的1234端口