diff --git a/pom.xml b/pom.xml
index 06f23c8..889e73d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,6 +49,41 @@
org.springframework.boot
spring-boot-starter-jdbc
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+ io.micrometer
+ micrometer-registry-prometheus
+
+
+
+
+ io.prometheus
+ simpleclient_common
+ 0.16.0
+
+
+ io.prometheus
+ simpleclient_hotspot
+ 0.16.0
+
+
+ io.prometheus
+ simpleclient_servlet
+ 0.16.0
+
+
mysql
diff --git a/src/main/java/com/geedge/common/PrometheusMetrics.java b/src/main/java/com/geedge/common/PrometheusMetrics.java
new file mode 100644
index 0000000..57beb83
--- /dev/null
+++ b/src/main/java/com/geedge/common/PrometheusMetrics.java
@@ -0,0 +1,26 @@
+package com.geedge.common;
+
+import io.prometheus.client.exporter.MetricsServlet;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * TODO
+ *
+ * @Classname PrometheusMetrics
+ * @Date 2024/1/9 10:22
+ * @Author wWei
+ */
+@RestController
+public class PrometheusMetrics extends MetricsServlet {
+
+ @GetMapping("/metrics")
+ public void redisMetrics(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ this.doGet(request, response);
+ }
+}
+
diff --git a/src/main/java/com/geedge/scheduler/FqdnScheduler.java b/src/main/java/com/geedge/scheduler/FqdnScheduler.java
index c85ba04..ec34a6e 100644
--- a/src/main/java/com/geedge/scheduler/FqdnScheduler.java
+++ b/src/main/java/com/geedge/scheduler/FqdnScheduler.java
@@ -11,6 +11,8 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
+import io.prometheus.client.CollectorRegistry;
+import io.prometheus.client.Counter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
@@ -45,10 +47,11 @@ public class FqdnScheduler {
private Boolean cyberghostvpnServernameDeleteEnable;
@Value("${tsg.object.fqdn.cyberghostvpn_servername.delete.offsetSecond}")
private Integer cyberghostvpnServernameOffsetSecond;
+ public Counter cyberghostvpnServernameCounter = Counter.build("cyberghostvpn_servername_counter", "COUNTER HELP").register(CollectorRegistry.defaultRegistry);
@Scheduled(cron = "${tsg.object.fqdn.cyberghostvpn_servername.update.cron}")
public void updateCyberghostvpn() {
- executeUpdate(cyberghostvpnServernameId, cyberghostvpnServernameName, cyberghostvpnServernameUpdateEnable, cyberghostvpnServernameSql);
+ executeUpdate(cyberghostvpnServernameId, cyberghostvpnServernameName, cyberghostvpnServernameUpdateEnable, cyberghostvpnServernameSql, cyberghostvpnServernameCounter);
}
@Scheduled(cron = "${tsg.object.fqdn.cyberghostvpn_servername.delete.cron}")
@@ -68,10 +71,11 @@ public class FqdnScheduler {
private Boolean ipvanishvpnServernameDeleteEnable;
@Value("${tsg.object.fqdn.ipvanishvpn_servername.delete.offsetSecond}")
private Integer ipvanishvpnServernameOffsetSecond;
+ public Counter ipvanishvpnServernameCounter = Counter.build("ipvanishvpn_servername_counter", "COUNTER HELP").register(CollectorRegistry.defaultRegistry);
@Scheduled(cron = "${tsg.object.fqdn.ipvanishvpn_servername.update.cron}")
public void updateIpvanishvpn() {
- executeUpdate(ipvanishvpnServernameId, ipvanishvpnServernameName, ipvanishvpnServernameUpdateEnable, ipvanishvpnServernameSql);
+ executeUpdate(ipvanishvpnServernameId, ipvanishvpnServernameName, ipvanishvpnServernameUpdateEnable, ipvanishvpnServernameSql, ipvanishvpnServernameCounter);
}
@Scheduled(cron = "${tsg.object.fqdn.ipvanishvpn_servername.delete.cron}")
@@ -92,11 +96,11 @@ public class FqdnScheduler {
private Boolean ivacyvpnServernameDeleteEnable;
@Value("${tsg.object.fqdn.ivacyvpn_servername.delete.offsetSecond}")
private Integer ivacyvpnServernameOffsetSecond;
-
+ public Counter ivacyvpnServernameCounter = Counter.build("ivacyvpn_servername_counter", "COUNTER HELP").register(CollectorRegistry.defaultRegistry);
@Scheduled(cron = "${tsg.object.fqdn.ivacyvpn_servername.update.cron}")
public void updateIvacyvpn() {
- executeUpdate(ivacyvpnServernameId, ivacyvpnServernameName, ivacyvpnServernameUpdateEnable, ivacyvpnServernameSql);
+ executeUpdate(ivacyvpnServernameId, ivacyvpnServernameName, ivacyvpnServernameUpdateEnable, ivacyvpnServernameSql, ivacyvpnServernameCounter);
}
@Scheduled(cron = "${tsg.object.fqdn.ivacyvpn_servername.delete.cron}")
@@ -116,11 +120,11 @@ public class FqdnScheduler {
private Boolean vpnunlimitedServernameDeleteEnable;
@Value("${tsg.object.fqdn.vpnunlimited_servername.delete.offsetSecond}")
private Integer vpnunlimitedServernameOffsetSecond;
-
+ public Counter vpnunlimitedServernameCounter = Counter.build("vpnunlimited_servername_counter", "COUNTER HELP").register(CollectorRegistry.defaultRegistry);
@Scheduled(cron = "${tsg.object.fqdn.vpnunlimited_servername.update.cron}")
public void updateVpnunlimited() {
- executeUpdate(vpnunlimitedServernameId, vpnunlimitedServernameName, vpnunlimitedServernameUpdateEnable, vpnunlimitedServernameSql);
+ executeUpdate(vpnunlimitedServernameId, vpnunlimitedServernameName, vpnunlimitedServernameUpdateEnable, vpnunlimitedServernameSql, vpnunlimitedServernameCounter);
}
@Scheduled(cron = "${tsg.object.fqdn.vpnunlimited_servername.delete.cron}")
@@ -140,11 +144,11 @@ public class FqdnScheduler {
private Boolean vpn4fameServernameDeleteEnable;
@Value("${tsg.object.fqdn.vpn4fame_servername.delete.offsetSecond}")
private Integer vpn4fameServernameOffsetSecond;
-
+ public Counter vpn4fameServernameCounter = Counter.build("vpn4fame_servername_counter", "COUNTER HELP").register(CollectorRegistry.defaultRegistry);
@Scheduled(cron = "${tsg.object.fqdn.vpn4fame_servername.update.cron}")
public void updateVpn4fame() {
- executeUpdate(vpn4fameServernameId, vpn4fameServernameName, vpn4fameServernameUpdateEnable, vpn4fameServernameSql);
+ executeUpdate(vpn4fameServernameId, vpn4fameServernameName, vpn4fameServernameUpdateEnable, vpn4fameServernameSql, vpn4fameServernameCounter);
}
@Scheduled(cron = "${tsg.object.fqdn.vpn4fame_servername.delete.cron}")
@@ -152,7 +156,7 @@ public class FqdnScheduler {
executeDelete(vpn4fameServernameId, vpn4fameServernameDeleteEnable, vpn4fameServernameOffsetSecond);
}
- private static void executeUpdate(Integer id, String name, Boolean enable, String sql) {
+ private static void executeUpdate(Integer id, String name, Boolean enable, String sql, Counter counter) {
log.info("{}: started update task.", id);
if (BooleanUtil.isFalse(enable)) {
log.warn("{}: interrupted update task. enable: {}", id, enable);
@@ -170,7 +174,7 @@ public class FqdnScheduler {
List