This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch k8s-Coordinator-role
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git


The following commit(s) were added to refs/heads/k8s-Coordinator-role by this 
push:
     new d185857  Forcedly fix envoy timestamp issue.
d185857 is described below

commit d18585779369fa76461dd5182053c6beab6877ea
Author: Wu Sheng <wu.sh...@foxmail.com>
AuthorDate: Mon Mar 11 22:23:29 2019 +0800

    Forcedly fix envoy timestamp issue.
---
 .../server/receiver/envoy/MetricServiceGRPCHandler.java    | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git 
a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
 
b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
index 9a413cd..6ade680 100644
--- 
a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
+++ 
b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
@@ -113,6 +113,20 @@ public class MetricServiceGRPCHandler extends 
MetricsServiceGrpc.MetricsServiceI
                                         timestamp = metric.getTimestampMs();
                                         value = metric.getGauge().getValue();
 
+                                        if (timestamp > 1000000000000000000L) {
+                                            /**
+                                             * Several versions of envoy in 
istio.deps send timestamp in nanoseconds,
+                                             * instead of 
milliseconds(protocol says).
+                                             *
+                                             * Sadly, but have to fix it 
forcedly.
+                                             *
+                                             * An example of timestamp is 
'1552303033488741055', clearly it is not in milliseconds.
+                                             *
+                                             * This should be removed in the 
future.
+                                             */
+                                            timestamp /= 1_000_000;
+                                        }
+
                                         EnvoyInstanceMetric metricSource = new 
EnvoyInstanceMetric();
                                         metricSource.setServiceId(serviceId);
                                         
metricSource.setServiceName(serviceName);

Reply via email to