PrometheusServiceImpl.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.jjt.biz.service.impl;
  2. import com.alibaba.fastjson2.JSONArray;
  3. import com.alibaba.fastjson2.JSONObject;
  4. import com.jjt.biz.service.IPrometheusService;
  5. import com.jjt.common.core.redis.RedisCache;
  6. import com.jjt.common.utils.StringUtils;
  7. import com.jjt.common.utils.http.HttpUtils;
  8. import com.jjt.system.service.ISysConfigService;
  9. import org.springframework.stereotype.Service;
  10. import org.yaml.snakeyaml.util.UriEncoder;
  11. import javax.annotation.Resource;
  12. import java.text.DecimalFormat;
  13. /**
  14. * 告警记录Service业务层处理
  15. *
  16. * @author jjt
  17. * @date 2024-08-08
  18. */
  19. @Service
  20. public class PrometheusServiceImpl implements IPrometheusService {
  21. @Resource
  22. private ISysConfigService configService;
  23. @Resource
  24. private RedisCache redisCache;
  25. /**
  26. * 获取接口地址
  27. *
  28. * @return 接口地址
  29. */
  30. private String baseUri() {
  31. return configService.selectConfigByKey("pm.url");
  32. }
  33. /**
  34. * 即时查询
  35. *
  36. * @param param 查询参数
  37. * @return 结果
  38. */
  39. @Override
  40. public Float query(String param) {
  41. if (StringUtils.isNotEmpty(param)) {
  42. String uri = baseUri() + "/api/v1/query?query=";
  43. uri += UriEncoder.encode(param);
  44. String result = HttpUtils.sendGet(uri);
  45. JSONObject jsonObject = JSONObject.parseObject(result);
  46. try {
  47. JSONArray array = jsonObject.getJSONObject("data").getJSONArray("result");
  48. JSONArray value = array.getJSONObject(0).getJSONArray("value");
  49. DecimalFormat df = new DecimalFormat("#0.00");
  50. return Float.parseFloat(df.format(value.getFloat(1)));
  51. } catch (Exception ignored) {
  52. return null;
  53. }
  54. } else {
  55. return null;
  56. }
  57. }
  58. /**
  59. * 普罗米修斯接口
  60. *
  61. * @return 结果
  62. */
  63. @Override
  64. public JSONObject range() {
  65. return null;
  66. }
  67. }