EgorKuts commented on code in PR #7350:
URL: https://github.com/apache/ignite-3/pull/7350#discussion_r2694102392


##########
modules/metrics/src/main/java/org/apache/ignite/internal/metrics/exporters/log/LogPushExporter.java:
##########
@@ -71,54 +83,373 @@ public void report() {
             return;
         }
 
-        var report = new StringBuilder("Metric report:");
+        var report = new StringBuilder("Metrics for local node: ");
+
+        appendNodeInfo(report, metricSets);
+
+        boolean initialized = isNodeInitialized(metricSets);
+        report.append(", state=").append(initialized ? "initialized" : 
"uninitialized");
+
+        UUID clusterId = clusterIdSupplier().get();
+        if (clusterId != null) {
+            report.append(", clusterId=").append(clusterId);
+        }
+
+        int nodeCount = getClusterNodeCount(metricSets);
+        if (nodeCount > 0) {
+            report.append(", topology=").append(nodeCount).append(" nodes");
+        }
+
+        appendNetworkInfo(report, metricSets);
+
+        appendCpuInfo(report, metricSets);
+
+        appendHeapInfo(report, metricSets);
 
         for (MetricSet metricSet : metricSets) {
             boolean hasMetricsWhiteList = hasMetricsWhiteList(metricSet);
 
             if (hasMetricsWhiteList || metricEnabled(metricSet.name())) {
-                
report.append('\n').append(metricSet.name()).append(oneLinePerMetricSource ? ' 
' : ':');
-
-                appendMetrics(report, metricSet, hasMetricsWhiteList);
+                if (oneLinePerMetricSource) {
+                    report.append(", ").append(metricSet.name()).append('=');
+                    appendMetricsOneLine(report, metricSet, 
hasMetricsWhiteList);
+                } else {
+                    report.append('\n').append(metricSet.name()).append(':');
+                    appendMetricsMultiline(report, metricSet, 
hasMetricsWhiteList);
+                }
             }
         }
 
+        if (oneLinePerMetricSource) {
+            appendThreadPoolMetrics(report, metricSets);
+        }
+
         log.info(report.toString());
     }
 
-    private void appendMetrics(StringBuilder sb, MetricSet metricSet, boolean 
hasMetricsWhiteList) {
-        List<Metric> metrics = StreamSupport.stream(metricSet.spliterator(), 
false)
-                .sorted(comparing(Metric::name))
-                .filter(m -> !hasMetricsWhiteList || 
metricEnabled(fqn(metricSet, m)))
-                .collect(toList());
+    /**
+     * Appends node information to the report.
+     *
+     * @param report Report string builder.
+     * @param metricSets Collection of metric sets.
+     */
+    private void appendNodeInfo(StringBuilder report, Collection<MetricSet> 
metricSets) {
+        String ephemeralId = getEphemeralNodeId(metricSets);
+        String nodeName = nodeName();
+        String version = getNodeVersion(metricSets);
+
+        long uptimeMs = runtimeMxBean.getUptime();
+
+        report.append("Node [");
+
+        boolean needComma = false;
+
+        if (ephemeralId != null && !ephemeralId.isEmpty()) {
+            report.append("id=").append(ephemeralId);
+            needComma = true;
+        }
 
-        sb.append(metricSetPrefix());
+        if (nodeName != null && !nodeName.isEmpty()) {
+            if (needComma) {
+                report.append(", ");
+            }
+            report.append("name=").append(nodeName);
+            needComma = true;
+        }
 
-        forEachIndexed(metrics, (m, i) -> 
appendMetricWithValue(oneLinePerMetricSource, sb, m, i));
+        if (version != null && !version.isEmpty()) {
+            if (needComma) {
+                report.append(", ");
+            }
+            report.append("version=").append(version);
+            needComma = true;
+        }
 
-        sb.append(metricSetPostfix());
+        if (needComma) {
+            report.append(", ");
+        }
+        report.append("uptime=").append(formatUptimeHms(uptimeMs))
+                .append(']');
     }
 
-    private static String commaInEnum(int i) {
-        return i == 0 ? "" : ", ";
+    /**
+     * Checks if the node is initialized based on the presence of key metrics.
+     *
+     * @param metricSets Collection of metric sets.
+     * @return True if the node is initialized, false otherwise.
+     */
+    private boolean isNodeInitialized(Collection<MetricSet> metricSets) {

Review Comment:
   fixed



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to