package com.jjt.biz.service.impl; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.jjt.biz.service.IPrometheusService; import com.jjt.common.core.redis.RedisCache; import com.jjt.common.utils.StringUtils; import com.jjt.common.utils.http.HttpUtils; import com.jjt.system.service.ISysConfigService; import org.springframework.stereotype.Service; import org.yaml.snakeyaml.util.UriEncoder; import javax.annotation.Resource; import java.text.DecimalFormat; /** * 告警记录Service业务层处理 * * @author jjt * @date 2024-08-08 */ @Service public class PrometheusServiceImpl implements IPrometheusService { @Resource private ISysConfigService configService; @Resource private RedisCache redisCache; /** * 获取接口地址 * * @return 接口地址 */ private String baseUri() { return configService.selectConfigByKey("pm.url"); } /** * 即时查询 * * @param param 查询参数 * @return 结果 */ @Override public Float query(String param) { if (StringUtils.isNotEmpty(param)) { String uri = baseUri() + "/api/v1/query?query="; uri += UriEncoder.encode(param); String result = HttpUtils.sendGet(uri); JSONObject jsonObject = JSONObject.parseObject(result); try { JSONArray array = jsonObject.getJSONObject("data").getJSONArray("result"); JSONArray value = array.getJSONObject(0).getJSONArray("value"); DecimalFormat df = new DecimalFormat("#0.00"); return Float.parseFloat(df.format(value.getFloat(1))); } catch (Exception ignored) { return null; } } else { return null; } } /** * 普罗米修斯接口 * * @return 结果 */ @Override public JSONObject range() { return null; } }