From ba6d49ad917bf698d6179ebc90a3a0703e74a4b1 Mon Sep 17 00:00:00 2001 From: zhang-wei Date: Sun, 7 Feb 2021 12:09:51 +0800 Subject: [PATCH] Update the timestamp field type for LogQuery (#6335) --- CHANGES.md | 1 + .../skywalking/oap/server/core/query/type/Log.java | 2 +- .../src/main/resources/query-protocol | 2 +- .../plugin/elasticsearch/query/LogQueryEsDAO.java | 2 +- .../plugin/elasticsearch7/query/LogQueryEs7DAO.java | 2 +- .../storage/plugin/influxdb/query/LogQuery.java | 2 +- .../storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java | 2 +- .../e2e/browser/BrowserErrorLogMatcher.java | 6 +++--- .../e2e/dashboard/DashboardConfigurationMatcher.java | 4 ++-- .../main/java/org/apache/skywalking/e2e/log/Log.java | 2 +- .../apache/skywalking/e2e/trace/TraceMatcher.java | 2 +- .../skywalking/e2e/verification/AbstractMatcher.java | 12 ++++++++++++ .../org/apache/skywalking/e2e/TestLogsMatcher.java | 4 ++-- test/e2e/e2e-data/src/test/resources/log.yml | 2 +- .../src/test/resources/expected/log/logs.yml | 2 +- 15 files changed, 30 insertions(+), 17 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index b2f159e71043..7252c25033df 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -17,6 +17,7 @@ Release Notes. * Metrics combination API supports abandoning results. * Add a new concept "Event" and its implementations to collect events. * Add some defensive codes for NPE and bump up Kubernetes client version to expose exception stack trace. +* Update the `timestamp` field type for `LogQuery`. #### UI Update selector scroller to show in all pages. diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/type/Log.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/type/Log.java index 4b08210ff247..4a2e6dbeacdb 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/type/Log.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/type/Log.java @@ -33,7 +33,7 @@ public class Log { private String endpointId; private String endpointName; private String traceId; - private String timestamp; + private Long timestamp; private ContentType contentType = ContentType.NONE; private String content; private final List tags; diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol index e0d3698dcd77..42d6783d8c1a 160000 --- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol +++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol @@ -1 +1 @@ -Subproject commit e0d3698dcd776230646acaeb219841adea193acf +Subproject commit 42d6783d8c1a0d0d4c2b28e58dc1f47dd554964e diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/LogQueryEsDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/LogQueryEsDAO.java index 72b4f8deb7dc..49459b4134eb 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/LogQueryEsDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/LogQueryEsDAO.java @@ -150,7 +150,7 @@ public Logs queryLogs(final String serviceId, log.setEndpointId((String) searchHit.getSourceAsMap().get(AbstractLogRecord.ENDPOINT_ID)); log.setEndpointName((String) searchHit.getSourceAsMap().get(AbstractLogRecord.ENDPOINT_NAME)); log.setTraceId((String) searchHit.getSourceAsMap().get(AbstractLogRecord.TRACE_ID)); - log.setTimestamp(searchHit.getSourceAsMap().get(AbstractLogRecord.TIMESTAMP).toString()); + log.setTimestamp(((Number) searchHit.getSourceAsMap().get(AbstractLogRecord.TIMESTAMP)).longValue()); log.setContentType(ContentType.instanceOf( ((Number) searchHit.getSourceAsMap().get(AbstractLogRecord.CONTENT_TYPE)).intValue())); log.setContent((String) searchHit.getSourceAsMap().get(AbstractLogRecord.CONTENT)); diff --git a/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/LogQueryEs7DAO.java b/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/LogQueryEs7DAO.java index d66a90dd4066..84f1c55d2438 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/LogQueryEs7DAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch7-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch7/query/LogQueryEs7DAO.java @@ -150,7 +150,7 @@ public Logs queryLogs(final String serviceId, log.setEndpointId((String) searchHit.getSourceAsMap().get(AbstractLogRecord.ENDPOINT_ID)); log.setEndpointName((String) searchHit.getSourceAsMap().get(AbstractLogRecord.ENDPOINT_NAME)); log.setTraceId((String) searchHit.getSourceAsMap().get(AbstractLogRecord.TRACE_ID)); - log.setTimestamp(searchHit.getSourceAsMap().get(AbstractLogRecord.TIMESTAMP).toString()); + log.setTimestamp(((Number) searchHit.getSourceAsMap().get(AbstractLogRecord.TIMESTAMP)).longValue()); log.setContentType(ContentType.instanceOf( ((Number) searchHit.getSourceAsMap().get(AbstractLogRecord.CONTENT_TYPE)).intValue())); log.setContent((String) searchHit.getSourceAsMap().get(AbstractLogRecord.CONTENT)); diff --git a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/LogQuery.java b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/LogQuery.java index f2692eaeee5b..d58baed6f779 100644 --- a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/LogQuery.java +++ b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/LogQuery.java @@ -166,7 +166,7 @@ public Logs queryLogs(final String serviceId, log.setEndpointId((String) data.get(ENDPOINT_ID)); log.setEndpointName((String) data.get(ENDPOINT_NAME)); log.setTraceId((String) data.get(TRACE_ID)); - log.setTimestamp(data.get(TIMESTAMP).toString()); + log.setTimestamp(((Number) data.get(TIMESTAMP)).longValue()); log.setContentType( ContentType.instanceOf(((Number) data.get(AbstractLogRecord.CONTENT_TYPE)).intValue())); log.setContent((String) data.get(AbstractLogRecord.CONTENT)); diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java index 710cd86c8a7d..da47d8a5fd81 100644 --- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2LogQueryDAO.java @@ -186,7 +186,7 @@ public Logs queryLogs(String serviceId, log.setEndpointId(resultSet.getString(ENDPOINT_ID)); log.setEndpointName(resultSet.getString(ENDPOINT_NAME)); log.setTraceId(resultSet.getString(TRACE_ID)); - log.setTimestamp(resultSet.getString(TIMESTAMP)); + log.setTimestamp(resultSet.getLong(TIMESTAMP)); log.setContentType(ContentType.instanceOf(resultSet.getInt(CONTENT_TYPE))); log.setContent(resultSet.getString(CONTENT)); String dataBinaryBase64 = resultSet.getString(TAGS_RAW_DATA); diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/browser/BrowserErrorLogMatcher.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/browser/BrowserErrorLogMatcher.java index 1ac95478ed88..7610aec68c04 100644 --- a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/browser/BrowserErrorLogMatcher.java +++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/browser/BrowserErrorLogMatcher.java @@ -72,11 +72,11 @@ public void verify(final BrowserErrorLog log) { } if (nonNull(getLine())) { - doVerify(getLine(), String.valueOf(log.getLine())); + doVerify(getLine(), log.getLine()); } if (nonNull(getCol())) { - doVerify(getCol(), String.valueOf(log.getCol())); + doVerify(getCol(), log.getCol()); } if (nonNull(getStack())) { @@ -88,7 +88,7 @@ public void verify(final BrowserErrorLog log) { } if (nonNull(getFirstReportedError())) { - doVerify(getFirstReportedError(), String.valueOf(log.isFirstReportedError())); + doVerify(getFirstReportedError(), log.isFirstReportedError()); } } } diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/dashboard/DashboardConfigurationMatcher.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/dashboard/DashboardConfigurationMatcher.java index 417f109b9903..a47870e3ba8f 100644 --- a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/dashboard/DashboardConfigurationMatcher.java +++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/dashboard/DashboardConfigurationMatcher.java @@ -34,7 +34,7 @@ public void verify(final DashboardConfiguration configuration) { doVerify(this.name, configuration.getName()); doVerify(this.type, String.valueOf(configuration.getType())); doVerify(this.configuration, configuration.getConfiguration()); - doVerify(this.activated, String.valueOf(configuration.isActivated())); - doVerify(this.disabled, String.valueOf(configuration.isDisabled())); + doVerify(this.activated, configuration.isActivated()); + doVerify(this.disabled, configuration.isDisabled()); } } diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/log/Log.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/log/Log.java index 0b4f0df62e5c..aa77b613d192 100644 --- a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/log/Log.java +++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/log/Log.java @@ -33,7 +33,7 @@ public class Log { private String endpointName; private String endpointId; private String traceId; - private String timestamp; + private Long timestamp; private String contentType; private String content; private List tags; diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/trace/TraceMatcher.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/trace/TraceMatcher.java index 3ba82d0265c0..f9f530fc7b14 100644 --- a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/trace/TraceMatcher.java +++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/trace/TraceMatcher.java @@ -93,7 +93,7 @@ private void verifyEndpointName(Trace trace) { private void verifyDuration(Trace trace) { final String expected = this.getDuration(); - final String actual = String.valueOf(trace.getDuration()); + final int actual = trace.getDuration(); doVerify(expected, actual); } diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/verification/AbstractMatcher.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/verification/AbstractMatcher.java index 61024b75c37b..908fc3b954e4 100644 --- a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/verification/AbstractMatcher.java +++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/verification/AbstractMatcher.java @@ -33,6 +33,18 @@ public abstract class AbstractMatcher { public abstract void verify(T t); + protected void doVerify(String expected, int actual) { + this.doVerify(expected, String.valueOf(actual)); + } + + protected void doVerify(String expected, long actual) { + this.doVerify(expected, String.valueOf(actual)); + } + + protected void doVerify(String expected, boolean actual) { + this.doVerify(expected, String.valueOf(actual)); + } + protected void doVerify(String expected, String actual) { Matcher matcher = NN_MATCHER.matcher(expected); if (matcher.find()) { diff --git a/test/e2e/e2e-data/src/test/java/org/apache/skywalking/e2e/TestLogsMatcher.java b/test/e2e/e2e-data/src/test/java/org/apache/skywalking/e2e/TestLogsMatcher.java index 3e17d7f3251c..468324306fce 100644 --- a/test/e2e/e2e-data/src/test/java/org/apache/skywalking/e2e/TestLogsMatcher.java +++ b/test/e2e/e2e-data/src/test/java/org/apache/skywalking/e2e/TestLogsMatcher.java @@ -51,7 +51,7 @@ public void shouldSuccess() { .setEndpointName("/traffic") .setEndpointId("ZTJl.1_L3RyYWZmaWM=") .setTraceId("ac81b308-0d66-4c69-a7af-a023a536bd3e") - .setTimestamp("1609665785987") + .setTimestamp(1609665785987L) .setContentType("TEXT") .setContent("log") .setTags( @@ -63,7 +63,7 @@ public void shouldSuccess() { .setEndpointName("/traffic") .setEndpointId("ZTJl.1_L3RyYWZmaWM=") .setTraceId("ac81b308-0d66-4c69-a7af-a023a536bd3e") - .setTimestamp("1609665785987") + .setTimestamp(1609665785987L) .setContentType("TEXT") .setContent("log") .setTags( diff --git a/test/e2e/e2e-data/src/test/resources/log.yml b/test/e2e/e2e-data/src/test/resources/log.yml index 7d8c02cdbc4f..d643d18996c9 100644 --- a/test/e2e/e2e-data/src/test/resources/log.yml +++ b/test/e2e/e2e-data/src/test/resources/log.yml @@ -21,7 +21,7 @@ logs: endpointName: /traffic endpointId: not null traceId: "ac81b308-0d66-4c69-a7af-a023a536bd3e" - timestamp: not null + timestamp: gt 0 contentType: TEXT content: log tags: diff --git a/test/e2e/e2e-test/src/test/resources/expected/log/logs.yml b/test/e2e/e2e-test/src/test/resources/expected/log/logs.yml index d1193632b4a0..8e03c4bdcb50 100644 --- a/test/e2e/e2e-test/src/test/resources/expected/log/logs.yml +++ b/test/e2e/e2e-test/src/test/resources/expected/log/logs.yml @@ -19,7 +19,7 @@ logs: serviceInstanceName: not null serviceInstanceId: not null traceId: not null - timestamp: not null + timestamp: gt 0 contentType: TEXT content: not null tags: