From b05fd1300ce677243f373dcc7963396c78ff1c98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levy=2EXie-=E8=A7=A3=E5=AE=89=E6=A3=AE?= Date: Tue, 16 Jul 2024 19:06:43 +0800 Subject: [PATCH 1/3] =?UTF-8?q?REPORT-117002=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E6=80=A7=E8=83=BD=E5=9F=8B=E7=82=B9=E7=9B=91=E6=8E=A7=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../carton/latency/DesignerLatencyMetric.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java b/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java index 7898b2ad42..fa517096ee 100644 --- a/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java +++ b/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java @@ -8,9 +8,12 @@ import com.fr.design.mainframe.SiteCenterToken; import com.fr.event.Event; import com.fr.event.EventDispatcher; import com.fr.event.Listener; +import com.fr.general.CloudCenter; import com.fr.general.http.HttpToolbox; import com.fr.json.JSONObject; +import com.fr.log.FineLoggerFactory; import com.fr.stable.ProductConstants; +import com.fr.stable.StringUtils; import com.fr.workspace.WorkContext; import com.fr.workspace.Workspace; import com.fr.workspace.WorkspaceEvent; @@ -43,11 +46,13 @@ import static com.fr.design.carton.CartonConstants.USERID; */ public class DesignerLatencyMetric { + private String latencyUrl; private ExecutorService executorService; private ScheduledExecutorService scheduler; private static final Map LATENCY_CONTAINER = new ConcurrentHashMap<>(); - private static final String LATENCY_INFO_URL = "https://cloud.fanruan.com/api/monitor/record_of_deisgner_latency/single"; + private static final String DEFAULT_MONITOR_URL = "https://cloud.fanruan.com/api/monitor/"; + private static final String LATENCY_TABLE_SUFFIX = "record_of_designer_latency/single"; private final static class InstanceHolder { static final DesignerLatencyMetric INSTANCE = new DesignerLatencyMetric(); @@ -74,7 +79,7 @@ public class DesignerLatencyMetric { executorService = Executors.newFixedThreadPool(8); // 启动定时埋点 this.scheduler = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory("LatencyMetricWorker")); - this.scheduler.scheduleWithFixedDelay(this::collectAndSubmit, 60, 60, TimeUnit.SECONDS); + this.scheduler.scheduleWithFixedDelay(this::collectAndSubmit, 60, 60, TimeUnit.MINUTES); // 注册设计器工作目录切换事件监听 EventDispatcher.listen(WorkspaceEvent.AfterSwitch, new Listener() { @Override @@ -100,6 +105,16 @@ public class DesignerLatencyMetric { } } + private String getLatencyUrl() { + if (StringUtils.isEmpty(latencyUrl)) { + String monitorEntry = CloudCenter.getInstance().acquireUrlByKind("cloud.monitor.api.entrypoint", DEFAULT_MONITOR_URL); + if (StringUtils.isNotEmpty(monitorEntry)) { + latencyUrl = monitorEntry + LATENCY_TABLE_SUFFIX; + } + } + return latencyUrl; + } + private void initializeContainer() { for (LatencyLevel level : LatencyLevel.values()) { LATENCY_CONTAINER.put(level, new AtomicInteger()); @@ -132,9 +147,9 @@ public class DesignerLatencyMetric { para.put("token", SiteCenterToken.generateToken()); para.put("content", collect()); try { - HttpToolbox.post(LATENCY_INFO_URL, para); - } catch (Throwable ignore) { - // doNothing + HttpToolbox.post(getLatencyUrl(), para); + } catch (Throwable t) { + FineLoggerFactory.getLogger().debug(t,"[Latency] failed to submit latency log to cloud."); } resetContainer(); } From 5e915785e160bddccc48cbc3b4f283f805ffb047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levy=2EXie-=E8=A7=A3=E5=AE=89=E6=A3=AE?= Date: Tue, 16 Jul 2024 19:12:48 +0800 Subject: [PATCH 2/3] =?UTF-8?q?REPORT-117002=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E6=80=A7=E8=83=BD=E5=9F=8B=E7=82=B9=E7=9B=91=E6=8E=A7=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/carton/latency/DesignerLatencyMetric.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java b/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java index fa517096ee..68aa42b4c9 100644 --- a/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java +++ b/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java @@ -107,10 +107,9 @@ public class DesignerLatencyMetric { private String getLatencyUrl() { if (StringUtils.isEmpty(latencyUrl)) { - String monitorEntry = CloudCenter.getInstance().acquireUrlByKind("cloud.monitor.api.entrypoint", DEFAULT_MONITOR_URL); - if (StringUtils.isNotEmpty(monitorEntry)) { - latencyUrl = monitorEntry + LATENCY_TABLE_SUFFIX; - } + String monitorEntry = CloudCenter.getInstance().acquireUrlByKind("cloud.monitor.api.entrypoint"); + latencyUrl = (StringUtils.isNotEmpty(monitorEntry) ? monitorEntry : DEFAULT_MONITOR_URL) + + LATENCY_TABLE_SUFFIX; } return latencyUrl; } From edc7184564e6ed125862266152013045a52f156c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levy=2EXie-=E8=A7=A3=E5=AE=89=E6=A3=AE?= Date: Wed, 17 Jul 2024 09:51:21 +0800 Subject: [PATCH 3/3] =?UTF-8?q?REPORT-127241=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E6=80=A7=E8=83=BD=E5=9F=8B=E7=82=B9=E5=AD=97=E6=AE=B5=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/carton/latency/DesignerLatencyMetric.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java b/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java index 68aa42b4c9..4dc38634c0 100644 --- a/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java +++ b/designer-base/src/main/java/com/fr/design/carton/latency/DesignerLatencyMetric.java @@ -87,6 +87,7 @@ public class DesignerLatencyMetric { collectAndSubmit(); } }); + FineLoggerFactory.getLogger().info("[Latency] designer latency metric started."); } } @@ -102,6 +103,7 @@ public class DesignerLatencyMetric { this.scheduler.shutdown(); } collectAndSubmit(); + FineLoggerFactory.getLogger().info("[Latency] designer latency metric stopped."); } } @@ -147,6 +149,7 @@ public class DesignerLatencyMetric { para.put("content", collect()); try { HttpToolbox.post(getLatencyUrl(), para); + FineLoggerFactory.getLogger().debug("[Latency] submit latency log to cloud."); } catch (Throwable t) { FineLoggerFactory.getLogger().debug(t,"[Latency] failed to submit latency log to cloud."); } @@ -163,7 +166,9 @@ public class DesignerLatencyMetric { info.put(DESIGN_METHOD, WorkContext.getCurrent().isLocal() ? LOCAL : REMOTE); info.put(OPERANDS_NUM, LATENCY_CONTAINER.values().stream().mapToInt(AtomicInteger::get).sum()); for (Map.Entry entry : LATENCY_CONTAINER.entrySet()) { - info.put(entry.getKey().getMark(), entry.getValue().get()); + if (!LatencyLevel.UNDEFINE.equals(entry.getKey())) { + info.put(entry.getKey().getMark(), entry.getValue().get()); + } } return info; }