cassandra metrics workaround: translate ipv4 to ipv6 (#1853)
* log cassandra probe host
* Translate IPv4 to IPv6 to fix issue #1843
* enable cassandra/scylladb metrics test case
* resume debug log
diff --git a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java
index 15adc8e..bc17e20 100644
--- a/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java
+++ b/hugegraph-cassandra/src/main/java/com/baidu/hugegraph/backend/store/cassandra/CassandraMetrics.java
@@ -21,6 +21,8 @@
import java.io.IOException;
import java.lang.management.MemoryUsage;
+import java.net.Inet4Address;
+import java.net.Inet6Address;
import java.net.InetAddress;
import java.util.Collections;
import java.util.List;
@@ -297,7 +299,18 @@
Map<String, Object> hostsResults = InsertionOrderUtil.newMap();
for (Host host : hosts) {
InetAddress address = host.getAddress();
- String hostAddress = address.getHostAddress();
+ String hostAddress;
+ if (address instanceof Inet4Address) {
+ hostAddress = host.getAddress().getHostAddress();
+ /*
+ * Translate IPv4 to IPv6 to fix issue #1843
+ * TODO: delete this workaround code after fixed CASSANDRA-17581
+ */
+ hostAddress = "::FFFF:" + hostAddress;
+ } else {
+ assert address instanceof Inet6Address;
+ hostAddress = host.getAddress().getHostAddress();
+ }
hostsResults.put(hostAddress, func.apply(hostAddress));
}
results.put(SERVERS, hostsResults);
diff --git a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MetricsApiTest.java b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MetricsApiTest.java
index 6b9a4ca..aee8d3c 100644
--- a/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MetricsApiTest.java
+++ b/hugegraph-test/src/main/java/com/baidu/hugegraph/api/MetricsApiTest.java
@@ -100,61 +100,61 @@
servers = (Map<?, ?>) graph.get("servers");
Assert.assertGte(1, servers.size());
// TODO: Uncomment after fixed #1843
-// for (Map.Entry<?, ?> e : servers.entrySet()) {
-// String key = (String) e.getKey();
-// value = e.getValue();
-// Assert.assertTrue(String.format(
-// "Expect map value for key %s but got %s",
-// key, value),
-// value instanceof Map);
-// host = (Map<?, ?>) value;
-// assertMapContains(host, "mem_max");
-// assertMapContains(host, "mem_committed");
-// assertMapContains(host, "mem_used");
-// assertMapContains(host, "mem_used_readable");
-// assertMapContains(host, "mem_unit");
-//
-// assertMapContains(host, "disk_usage");
-// assertMapContains(host, "disk_usage_readable");
-// assertMapContains(host, "disk_usage_details");
-// assertMapContains(host, "disk_unit");
-//
-// assertMapContains(host, "uptime");
-// assertMapContains(host, "uptime_readable");
-// assertMapContains(host, "time_unit");
-//
-// assertMapContains(host, "estimated_partition_count");
-// assertMapContains(host, "dropped_mutations");
-// assertMapContains(host, "pending_flushes");
-// assertMapContains(host, "key_cache_hit_rate");
-// assertMapContains(host, "bloom_filter_false_ratio");
-//
-// assertMapContains(host, "write_latency_hugegraph");
-// assertMapContains(host, "read_latency_hugegraph");
-// assertMapContains(host, "write_latency_*");
-// assertMapContains(host, "read_latency_*");
-//
-// assertMapContains(host, "key_cache_size");
-// assertMapContains(host, "key_cache_entries");
-// assertMapContains(host, "row_cache_size");
-// assertMapContains(host, "row_cache_entries");
-// assertMapContains(host, "counter_cache_size");
-// assertMapContains(host, "counter_cache_entries");
-//
-// assertMapContains(host, "compaction_completed_tasks");
-// assertMapContains(host, "compaction_pending_tasks");
-// assertMapContains(host, "compaction_bytes_compacted");
-//
-// assertMapContains(host, "live_nodes");
-// assertMapContains(host, "joining_nodes");
-// assertMapContains(host, "moving_nodes");
-// assertMapContains(host, "leaving_nodes");
-// assertMapContains(host, "unreachable_nodes");
-//
-// assertMapContains(host, "keyspaces");
-// assertMapContains(host, "num_tables");
-// assertMapContains(host, "exception_count");
-// }
+ for (Map.Entry<?, ?> e : servers.entrySet()) {
+ String key = (String) e.getKey();
+ value = e.getValue();
+ Assert.assertTrue(String.format(
+ "Expect map value for key %s but got %s",
+ key, value),
+ value instanceof Map);
+ host = (Map<?, ?>) value;
+ assertMapContains(host, "mem_max");
+ assertMapContains(host, "mem_committed");
+ assertMapContains(host, "mem_used");
+ assertMapContains(host, "mem_used_readable");
+ assertMapContains(host, "mem_unit");
+
+ assertMapContains(host, "disk_usage");
+ assertMapContains(host, "disk_usage_readable");
+ assertMapContains(host, "disk_usage_details");
+ assertMapContains(host, "disk_unit");
+
+ assertMapContains(host, "uptime");
+ assertMapContains(host, "uptime_readable");
+ assertMapContains(host, "time_unit");
+
+ assertMapContains(host, "estimated_partition_count");
+ assertMapContains(host, "dropped_mutations");
+ assertMapContains(host, "pending_flushes");
+ assertMapContains(host, "key_cache_hit_rate");
+ assertMapContains(host, "bloom_filter_false_ratio");
+
+ assertMapContains(host, "write_latency_hugegraph");
+ assertMapContains(host, "read_latency_hugegraph");
+ assertMapContains(host, "write_latency_*");
+ assertMapContains(host, "read_latency_*");
+
+ assertMapContains(host, "key_cache_size");
+ assertMapContains(host, "key_cache_entries");
+ assertMapContains(host, "row_cache_size");
+ assertMapContains(host, "row_cache_entries");
+ assertMapContains(host, "counter_cache_size");
+ assertMapContains(host, "counter_cache_entries");
+
+ assertMapContains(host, "compaction_completed_tasks");
+ assertMapContains(host, "compaction_pending_tasks");
+ assertMapContains(host, "compaction_bytes_compacted");
+
+ assertMapContains(host, "live_nodes");
+ assertMapContains(host, "joining_nodes");
+ assertMapContains(host, "moving_nodes");
+ assertMapContains(host, "leaving_nodes");
+ assertMapContains(host, "unreachable_nodes");
+
+ assertMapContains(host, "keyspaces");
+ assertMapContains(host, "num_tables");
+ assertMapContains(host, "exception_count");
+ }
break;
case "scylladb":
assertMapContains(graph, "cluster_id");
@@ -162,62 +162,62 @@
servers = (Map<?, ?>) graph.get("servers");
Assert.assertGte(1, servers.size());
- // TODO: Uncomment after fixed #1843
-// for (Map.Entry<?, ?> e : servers.entrySet()) {
-// String key = (String) e.getKey();
-// value = e.getValue();
-// Assert.assertTrue(String.format(
-// "Expect map value for key %s but got %s",
-// key, value),
-// value instanceof Map);
-// host = (Map<?, ?>) value;
-// assertMapContains(host, "mem_max");
-// assertMapContains(host, "mem_committed");
-// assertMapContains(host, "mem_used");
-// assertMapContains(host, "mem_used_readable");
-// assertMapContains(host, "mem_unit");
-//
-// assertMapContains(host, "disk_usage");
-// assertMapContains(host, "disk_usage_readable");
-// assertMapContains(host, "disk_usage_details");
-// assertMapContains(host, "disk_unit");
-//
-// assertMapContains(host, "uptime");
-// assertMapContains(host, "uptime_readable");
-// assertMapContains(host, "time_unit");
-//
-// assertMapContains(host, "estimated_partition_count");
-// assertMapContains(host, "dropped_mutations");
-// assertMapContains(host, "pending_flushes");
-// //assertMapContains(host, "key_cache_hit_rate");
-// assertMapContains(host, "bloom_filter_false_ratio");
-//
-// //assertMapContains(host, "write_latency_hugegraph");
-// //assertMapContains(host, "read_latency_hugegraph");
-// //assertMapContains(host, "write_latency_*");
-// //assertMapContains(host, "read_latency_*");
-//
-// assertMapContains(host, "key_cache_size");
-// assertMapContains(host, "key_cache_entries");
-// assertMapContains(host, "row_cache_size");
-// assertMapContains(host, "row_cache_entries");
-// assertMapContains(host, "counter_cache_size");
-// assertMapContains(host, "counter_cache_entries");
-//
-// assertMapContains(host, "compaction_completed_tasks");
-// assertMapContains(host, "compaction_pending_tasks");
-// //assertMapContains(host, "compaction_bytes_compacted");
-//
-// assertMapContains(host, "live_nodes");
-// assertMapContains(host, "joining_nodes");
-// assertMapContains(host, "moving_nodes");
-// assertMapContains(host, "leaving_nodes");
-// assertMapContains(host, "unreachable_nodes");
-//
-// assertMapContains(host, "keyspaces");
-// assertMapContains(host, "num_tables");
-// assertMapContains(host, "exception_count");
-// }
+
+ for (Map.Entry<?, ?> e : servers.entrySet()) {
+ String key = (String) e.getKey();
+ value = e.getValue();
+ Assert.assertTrue(String.format(
+ "Expect map value for key %s but got %s",
+ key, value),
+ value instanceof Map);
+ host = (Map<?, ?>) value;
+ assertMapContains(host, "mem_max");
+ assertMapContains(host, "mem_committed");
+ assertMapContains(host, "mem_used");
+ assertMapContains(host, "mem_used_readable");
+ assertMapContains(host, "mem_unit");
+
+ assertMapContains(host, "disk_usage");
+ assertMapContains(host, "disk_usage_readable");
+ assertMapContains(host, "disk_usage_details");
+ assertMapContains(host, "disk_unit");
+
+ assertMapContains(host, "uptime");
+ assertMapContains(host, "uptime_readable");
+ assertMapContains(host, "time_unit");
+
+ assertMapContains(host, "estimated_partition_count");
+ assertMapContains(host, "dropped_mutations");
+ assertMapContains(host, "pending_flushes");
+ //assertMapContains(host, "key_cache_hit_rate");
+ assertMapContains(host, "bloom_filter_false_ratio");
+
+ //assertMapContains(host, "write_latency_hugegraph");
+ //assertMapContains(host, "read_latency_hugegraph");
+ //assertMapContains(host, "write_latency_*");
+ //assertMapContains(host, "read_latency_*");
+
+ assertMapContains(host, "key_cache_size");
+ assertMapContains(host, "key_cache_entries");
+ assertMapContains(host, "row_cache_size");
+ assertMapContains(host, "row_cache_entries");
+ assertMapContains(host, "counter_cache_size");
+ assertMapContains(host, "counter_cache_entries");
+
+ assertMapContains(host, "compaction_completed_tasks");
+ assertMapContains(host, "compaction_pending_tasks");
+ //assertMapContains(host, "compaction_bytes_compacted");
+
+ assertMapContains(host, "live_nodes");
+ assertMapContains(host, "joining_nodes");
+ assertMapContains(host, "moving_nodes");
+ assertMapContains(host, "leaving_nodes");
+ assertMapContains(host, "unreachable_nodes");
+
+ assertMapContains(host, "keyspaces");
+ assertMapContains(host, "num_tables");
+ assertMapContains(host, "exception_count");
+ }
break;
case "hbase":
assertMapContains(graph, "cluster_id");