提交 13f88259 编写于 作者: wu-sheng's avatar wu-sheng 提交者: 彭勇升 pengys

Bug fix (#1857)

* Fix mesh receiver doesn't update heartbeat.

* Fix bug of mesh heartbeat and rest receiver.

* Fix issue: opencensus is included in agent without shade. @tuohai666
上级 08f634b6
...@@ -42,21 +42,25 @@ ...@@ -42,21 +42,25 @@
<groupId>io.grpc</groupId> <groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId> <artifactId>grpc-netty</artifactId>
<version>${grpc.version}</version> <version>${grpc.version}</version>
<scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.grpc</groupId> <groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId> <artifactId>grpc-protobuf</artifactId>
<version>${grpc.version}</version> <version>${grpc.version}</version>
<scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.grpc</groupId> <groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId> <artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version> <version>${grpc.version}</version>
<scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.netty</groupId> <groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId> <artifactId>netty-tcnative-boringssl-static</artifactId>
<version>${netty-tcnative-boringssl-static.version}</version> <version>${netty-tcnative-boringssl-static.version}</version>
<scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>
......
...@@ -16,7 +16,8 @@ ...@@ -16,7 +16,8 @@
~ ~
--> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
...@@ -38,8 +39,8 @@ ...@@ -38,8 +39,8 @@
<guava.version>20.0</guava.version> <guava.version>20.0</guava.version>
<bytebuddy.version>1.9.2</bytebuddy.version> <bytebuddy.version>1.9.2</bytebuddy.version>
<disruptor.version>3.3.6</disruptor.version> <disruptor.version>3.3.6</disruptor.version>
<apache-httpclient.version>4.5.3</apache-httpclient.version>
<wiremock.version>2.6.0</wiremock.version> <wiremock.version>2.6.0</wiremock.version>
<netty-tcnative-boringssl-static.version>2.0.7.Final</netty-tcnative-boringssl-static.version>
<os-maven-plugin.version>1.4.1.Final</os-maven-plugin.version> <os-maven-plugin.version>1.4.1.Final</os-maven-plugin.version>
<shade.package>org.apache.skywalking.apm.dependencies</shade.package> <shade.package>org.apache.skywalking.apm.dependencies</shade.package>
<shade.com.lmax.disruptor.source>com.lmax.disruptor</shade.com.lmax.disruptor.source> <shade.com.lmax.disruptor.source>com.lmax.disruptor</shade.com.lmax.disruptor.source>
...@@ -56,7 +57,8 @@ ...@@ -56,7 +57,8 @@
<shade.org.apache.http.source>org.apache.http</shade.org.apache.http.source> <shade.org.apache.http.source>org.apache.http</shade.org.apache.http.source>
<shade.org.apache.http.target>${shade.package}.${shade.org.apache.http.source}</shade.org.apache.http.target> <shade.org.apache.http.target>${shade.package}.${shade.org.apache.http.source}</shade.org.apache.http.target>
<shade.org.apache.commons.source>org.apache.commons</shade.org.apache.commons.source> <shade.org.apache.commons.source>org.apache.commons</shade.org.apache.commons.source>
<shade.org.apache.commons.target>${shade.package}.${shade.org.apache.http.source}</shade.org.apache.commons.target> <shade.org.apache.commons.target>${shade.package}.${shade.org.apache.http.source}
</shade.org.apache.commons.target>
</properties> </properties>
<dependencies> <dependencies>
...@@ -64,7 +66,6 @@ ...@@ -64,7 +66,6 @@
<groupId>org.apache.skywalking</groupId> <groupId>org.apache.skywalking</groupId>
<artifactId>apm-network</artifactId> <artifactId>apm-network</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.skywalking</groupId> <groupId>org.apache.skywalking</groupId>
...@@ -76,21 +77,36 @@ ...@@ -76,21 +77,36 @@
<artifactId>byte-buddy</artifactId> <artifactId>byte-buddy</artifactId>
<version>${bytebuddy.version}</version> <version>${bytebuddy.version}</version>
</dependency> </dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>${bytebuddy.version}</version>
<scope>test</scope>
</dependency>
<dependency> <dependency>
<groupId>com.lmax</groupId> <groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId> <artifactId>disruptor</artifactId>
<version>${disruptor.version}</version> <version>${disruptor.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId> <groupId>io.grpc</groupId>
<artifactId>httpclient</artifactId> <artifactId>grpc-netty</artifactId>
<version>${apache-httpclient.version}</version> <version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
<version>${netty-tcnative-boringssl-static.version}</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>${bytebuddy.version}</version>
<scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.jetty</groupId> <groupId>org.eclipse.jetty</groupId>
...@@ -109,7 +125,6 @@ ...@@ -109,7 +125,6 @@
<artifactId>wiremock</artifactId> <artifactId>wiremock</artifactId>
<version>${wiremock.version}</version> <version>${wiremock.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.grpc</groupId> <groupId>io.grpc</groupId>
...@@ -130,16 +145,15 @@ ...@@ -130,16 +145,15 @@
</dependency> </dependency>
</dependencies> </dependencies>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.google.guava</groupId> <groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> <artifactId>guava</artifactId>
<version>${guava.version}</version> <version>${guava.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<build> <build>
<extensions> <extensions>
<extension> <extension>
<groupId>kr.motd.maven</groupId> <groupId>kr.motd.maven</groupId>
...@@ -185,10 +199,6 @@ ...@@ -185,10 +199,6 @@
<pattern>${shade.io.opencensus.source}</pattern> <pattern>${shade.io.opencensus.source}</pattern>
<shadedPattern>${shade.io.opencensus.target}</shadedPattern> <shadedPattern>${shade.io.opencensus.target}</shadedPattern>
</relocation> </relocation>
<relocation>
<pattern>${shade.org.apache.http.source}</pattern>
<shadedPattern>${shade.org.apache.http.target}</shadedPattern>
</relocation>
<relocation> <relocation>
<pattern>${shade.org.apache.commons.source}</pattern> <pattern>${shade.org.apache.commons.source}</pattern>
<shadedPattern>${shade.org.apache.commons.target}</shadedPattern> <shadedPattern>${shade.org.apache.commons.target}</shadedPattern>
...@@ -204,7 +214,8 @@ ...@@ -204,7 +214,8 @@
</filter> </filter>
</filters> </filters>
<transformers> <transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> <transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers> </transformers>
</configuration> </configuration>
</execution> </execution>
...@@ -220,7 +231,7 @@ ...@@ -220,7 +231,7 @@
</goals> </goals>
<configuration> <configuration>
<tasks> <tasks>
<delete dir="${project.basedir}/../../packages" /> <delete dir="${project.basedir}/../../packages"/>
</tasks> </tasks>
</configuration> </configuration>
</execution> </execution>
...@@ -229,14 +240,22 @@ ...@@ -229,14 +240,22 @@
<phase>package</phase> <phase>package</phase>
<configuration> <configuration>
<target> <target>
<echo message="unjar" /> <echo message="unjar"/>
<unzip src="${project.build.directory}/${artifactId}-${version}.jar" dest="${project.build.directory}/unpacked/" /> <unzip src="${project.build.directory}/${artifactId}-${version}.jar"
<echo message="rename service providers in META-INF/services" /> dest="${project.build.directory}/unpacked/"/>
<move file="${project.build.directory}/unpacked/META-INF/native/libnetty_tcnative_osx_x86_64.jnilib" tofile="${project.build.directory}/unpacked/META-INF/native/liborg_apache_skywalking_apm_dependencies_netty_tcnative_osx_x86_64.jnilib" /> <echo message="rename service providers in META-INF/services"/>
<move file="${project.build.directory}/unpacked/META-INF/native/libnetty_tcnative_linux_x86_64.so" tofile="${project.build.directory}/unpacked/META-INF/native/liborg_apache_skywalking_apm_dependencies_netty_tcnative_linux_x86_64.so" /> <move
<move file="${project.build.directory}/unpacked/META-INF/native/netty_tcnative_windows_x86_64.dll" tofile="${project.build.directory}/unpacked/META-INF/native/org_apache_skywalking_apm_dependencies_netty_tcnative_windows_x86_64.dll" /> file="${project.build.directory}/unpacked/META-INF/native/libnetty_tcnative_osx_x86_64.jnilib"
<echo message="jar back" /> tofile="${project.build.directory}/unpacked/META-INF/native/liborg_apache_skywalking_apm_dependencies_netty_tcnative_osx_x86_64.jnilib"/>
<jar destfile="${project.build.directory}/${artifactId}-${version}.jar" basedir="${project.build.directory}/unpacked" /> <move
file="${project.build.directory}/unpacked/META-INF/native/libnetty_tcnative_linux_x86_64.so"
tofile="${project.build.directory}/unpacked/META-INF/native/liborg_apache_skywalking_apm_dependencies_netty_tcnative_linux_x86_64.so"/>
<move
file="${project.build.directory}/unpacked/META-INF/native/netty_tcnative_windows_x86_64.dll"
tofile="${project.build.directory}/unpacked/META-INF/native/org_apache_skywalking_apm_dependencies_netty_tcnative_windows_x86_64.dll"/>
<echo message="jar back"/>
<jar destfile="${project.build.directory}/${artifactId}-${version}.jar"
basedir="${project.build.directory}/unpacked"/>
</target> </target>
</configuration> </configuration>
<goals> <goals>
......
...@@ -79,6 +79,7 @@ ...@@ -79,6 +79,7 @@
<exclude>*:gson</exclude> <exclude>*:gson</exclude>
<exclude>io.grpc:*</exclude> <exclude>io.grpc:*</exclude>
<exclude>io.netty:*</exclude> <exclude>io.netty:*</exclude>
<exclude>io.opencensus:*</exclude>
<exclude>com.google.*:*</exclude> <exclude>com.google.*:*</exclude>
<exclude>com.google.guava:guava</exclude> <exclude>com.google.guava:guava</exclude>
</excludes> </excludes>
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
<graphql-java.version>8.0</graphql-java.version> <graphql-java.version>8.0</graphql-java.version>
<zookeeper.version>3.4.10</zookeeper.version> <zookeeper.version>3.4.10</zookeeper.version>
<grpc.version>1.10.0</grpc.version> <grpc.version>1.10.0</grpc.version>
<netty-tcnative-boringssl-static.version>2.0.7.Final</netty-tcnative-boringssl-static.version>
<jetty.version>9.4.2.v20170220</jetty.version> <jetty.version>9.4.2.v20170220</jetty.version>
<lombok.version>1.18.0</lombok.version> <lombok.version>1.18.0</lombok.version>
<h2.version>1.4.196</h2.version> <h2.version>1.4.196</h2.version>
...@@ -98,6 +99,11 @@ ...@@ -98,6 +99,11 @@
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-network</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.skywalking</groupId> <groupId>org.apache.skywalking</groupId>
<artifactId>apm-util</artifactId> <artifactId>apm-util</artifactId>
...@@ -220,6 +226,11 @@ ...@@ -220,6 +226,11 @@
<artifactId>grpc-stub</artifactId> <artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version> <version>${grpc.version}</version>
</dependency> </dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
<version>${netty-tcnative-boringssl-static.version}</version>
</dependency>
<dependency> <dependency>
<groupId>io.grpc</groupId> <groupId>io.grpc</groupId>
<artifactId>grpc-testing</artifactId> <artifactId>grpc-testing</artifactId>
......
...@@ -38,7 +38,22 @@ ...@@ -38,7 +38,22 @@
<dependency> <dependency>
<groupId>org.apache.skywalking</groupId> <groupId>org.apache.skywalking</groupId>
<artifactId>apm-network</artifactId> <artifactId>apm-network</artifactId>
<version>${project.version}</version> </dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -18,12 +18,16 @@ ...@@ -18,12 +18,16 @@
package org.apache.skywalking.aop.server.receiver.mesh; package org.apache.skywalking.aop.server.receiver.mesh;
import java.util.Objects;
import org.apache.logging.log4j.util.Strings; import org.apache.logging.log4j.util.Strings;
import org.apache.skywalking.apm.network.servicemesh.Protocol; import org.apache.skywalking.apm.network.servicemesh.Protocol;
import org.apache.skywalking.apm.network.servicemesh.ServiceMeshMetric; import org.apache.skywalking.apm.network.servicemesh.ServiceMeshMetric;
import org.apache.skywalking.oap.server.core.CoreModule; import org.apache.skywalking.oap.server.core.CoreModule;
import org.apache.skywalking.oap.server.core.cache.ServiceInstanceInventoryCache; import org.apache.skywalking.oap.server.core.cache.ServiceInstanceInventoryCache;
import org.apache.skywalking.oap.server.core.cache.ServiceInventoryCache; import org.apache.skywalking.oap.server.core.cache.ServiceInventoryCache;
import org.apache.skywalking.oap.server.core.register.ServiceInstanceInventory;
import org.apache.skywalking.oap.server.core.register.service.IServiceInstanceInventoryRegister;
import org.apache.skywalking.oap.server.core.register.service.IServiceInventoryRegister;
import org.apache.skywalking.oap.server.core.source.All; import org.apache.skywalking.oap.server.core.source.All;
import org.apache.skywalking.oap.server.core.source.DetectPoint; import org.apache.skywalking.oap.server.core.source.DetectPoint;
import org.apache.skywalking.oap.server.core.source.Endpoint; import org.apache.skywalking.oap.server.core.source.Endpoint;
...@@ -35,6 +39,8 @@ import org.apache.skywalking.oap.server.core.source.ServiceRelation; ...@@ -35,6 +39,8 @@ import org.apache.skywalking.oap.server.core.source.ServiceRelation;
import org.apache.skywalking.oap.server.core.source.SourceReceiver; import org.apache.skywalking.oap.server.core.source.SourceReceiver;
import org.apache.skywalking.oap.server.library.module.ModuleManager; import org.apache.skywalking.oap.server.library.module.ModuleManager;
import org.apache.skywalking.oap.server.library.util.TimeBucketUtils; import org.apache.skywalking.oap.server.library.util.TimeBucketUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/** /**
* TelemetryDataDispatcher processes the {@link ServiceMeshMetric} format telemetry data, transfers it to source * TelemetryDataDispatcher processes the {@link ServiceMeshMetric} format telemetry data, transfers it to source
...@@ -43,10 +49,14 @@ import org.apache.skywalking.oap.server.library.util.TimeBucketUtils; ...@@ -43,10 +49,14 @@ import org.apache.skywalking.oap.server.library.util.TimeBucketUtils;
* @author wusheng * @author wusheng
*/ */
public class TelemetryDataDispatcher { public class TelemetryDataDispatcher {
private static final Logger logger = LoggerFactory.getLogger(TelemetryDataDispatcher.class);
private static MeshDataBufferFileCache CACHE; private static MeshDataBufferFileCache CACHE;
private static ServiceInventoryCache SERVICE_CACHE; private static ServiceInventoryCache SERVICE_CACHE;
private static ServiceInstanceInventoryCache SERVICE_INSTANCE_CACHE; private static ServiceInstanceInventoryCache SERVICE_INSTANCE_CACHE;
private static SourceReceiver SOURCE_RECEIVER; private static SourceReceiver SOURCE_RECEIVER;
private static IServiceInstanceInventoryRegister SERVICE_INSTANCE_INVENTORY_REGISTER;
private static IServiceInventoryRegister SERVICE_INVENTORY_REGISTER;
private TelemetryDataDispatcher() { private TelemetryDataDispatcher() {
...@@ -57,6 +67,8 @@ public class TelemetryDataDispatcher { ...@@ -57,6 +67,8 @@ public class TelemetryDataDispatcher {
SERVICE_CACHE = moduleManager.find(CoreModule.NAME).getService(ServiceInventoryCache.class); SERVICE_CACHE = moduleManager.find(CoreModule.NAME).getService(ServiceInventoryCache.class);
SERVICE_INSTANCE_CACHE = moduleManager.find(CoreModule.NAME).getService(ServiceInstanceInventoryCache.class); SERVICE_INSTANCE_CACHE = moduleManager.find(CoreModule.NAME).getService(ServiceInstanceInventoryCache.class);
SOURCE_RECEIVER = moduleManager.find(CoreModule.NAME).getService(SourceReceiver.class); SOURCE_RECEIVER = moduleManager.find(CoreModule.NAME).getService(SourceReceiver.class);
SERVICE_INSTANCE_INVENTORY_REGISTER = moduleManager.find(CoreModule.NAME).getService(IServiceInstanceInventoryRegister.class);
SERVICE_INVENTORY_REGISTER = moduleManager.find(CoreModule.NAME).getService(IServiceInventoryRegister.class);
} }
public static void preProcess(ServiceMeshMetric data) { public static void preProcess(ServiceMeshMetric data) {
...@@ -77,6 +89,7 @@ public class TelemetryDataDispatcher { ...@@ -77,6 +89,7 @@ public class TelemetryDataDispatcher {
ServiceMeshMetric metric = decorator.getMetric(); ServiceMeshMetric metric = decorator.getMetric();
long minuteTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(metric.getStartTime()); long minuteTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(metric.getStartTime());
heartbeat(decorator, minuteTimeBucket);
if (org.apache.skywalking.apm.network.common.DetectPoint.server.equals(metric.getDetectPoint())) { if (org.apache.skywalking.apm.network.common.DetectPoint.server.equals(metric.getDetectPoint())) {
toAll(decorator, minuteTimeBucket); toAll(decorator, minuteTimeBucket);
toService(decorator, minuteTimeBucket); toService(decorator, minuteTimeBucket);
...@@ -87,6 +100,30 @@ public class TelemetryDataDispatcher { ...@@ -87,6 +100,30 @@ public class TelemetryDataDispatcher {
toServiceInstanceRelation(decorator, minuteTimeBucket); toServiceInstanceRelation(decorator, minuteTimeBucket);
} }
private static void heartbeat(ServiceMeshMetricDataDecorator decorator, long minuteTimeBucket) {
ServiceMeshMetric metric = decorator.getMetric();
// source
SERVICE_INSTANCE_INVENTORY_REGISTER.heartbeat(metric.getSourceServiceInstanceId(), metric.getEndTime());
int instanceId = metric.getSourceServiceInstanceId();
ServiceInstanceInventory serviceInstanceInventory = SERVICE_INSTANCE_CACHE.get(instanceId);
if (Objects.nonNull(serviceInstanceInventory)) {
SERVICE_INVENTORY_REGISTER.heartbeat(serviceInstanceInventory.getServiceId(), metric.getEndTime());
} else {
logger.warn("Can't found service by service instance id from cache, service instance id is: {}", instanceId);
}
// dest
SERVICE_INSTANCE_INVENTORY_REGISTER.heartbeat(metric.getDestServiceInstanceId(), metric.getEndTime());
instanceId = metric.getDestServiceInstanceId();
serviceInstanceInventory = SERVICE_INSTANCE_CACHE.get(instanceId);
if (Objects.nonNull(serviceInstanceInventory)) {
SERVICE_INVENTORY_REGISTER.heartbeat(serviceInstanceInventory.getServiceId(), metric.getEndTime());
} else {
logger.warn("Can't found service by service instance id from cache, service instance id is: {}", instanceId);
}
}
private static void toAll(ServiceMeshMetricDataDecorator decorator, long minuteTimeBucket) { private static void toAll(ServiceMeshMetricDataDecorator decorator, long minuteTimeBucket) {
ServiceMeshMetric metric = decorator.getMetric(); ServiceMeshMetric metric = decorator.getMetric();
All all = new All(); All all = new All();
...@@ -143,7 +180,7 @@ public class TelemetryDataDispatcher { ...@@ -143,7 +180,7 @@ public class TelemetryDataDispatcher {
ServiceMeshMetric metric = decorator.getMetric(); ServiceMeshMetric metric = decorator.getMetric();
ServiceInstance serviceInstance = new ServiceInstance(); ServiceInstance serviceInstance = new ServiceInstance();
serviceInstance.setTimeBucket(minuteTimeBucket); serviceInstance.setTimeBucket(minuteTimeBucket);
serviceInstance.setId(metric.getDestServiceId()); serviceInstance.setId(metric.getDestServiceInstanceId());
serviceInstance.setName(getServiceInstanceName(metric.getDestServiceInstanceId(), metric.getDestServiceInstance())); serviceInstance.setName(getServiceInstanceName(metric.getDestServiceInstanceId(), metric.getDestServiceInstance()));
serviceInstance.setServiceId(metric.getDestServiceId()); serviceInstance.setServiceId(metric.getDestServiceId());
serviceInstance.setServiceName(getServiceName(metric.getDestServiceId(), metric.getDestServiceName())); serviceInstance.setServiceName(getServiceName(metric.getDestServiceId(), metric.getDestServiceName()));
......
...@@ -88,7 +88,7 @@ public class InstanceDiscoveryServiceHandler extends InstanceDiscoveryServiceGrp ...@@ -88,7 +88,7 @@ public class InstanceDiscoveryServiceHandler extends InstanceDiscoveryServiceGrp
if (Objects.nonNull(serviceInstanceInventory)) { if (Objects.nonNull(serviceInstanceInventory)) {
serviceInventoryRegister.heartbeat(serviceInstanceInventory.getServiceId(), heartBeatTime); serviceInventoryRegister.heartbeat(serviceInstanceInventory.getServiceId(), heartBeatTime);
} else { } else {
logger.warn("Can't found service instance by service instance id from cache, service instance id is: {}", serviceInstanceId); logger.warn("Can't found service by service instance id from cache, service instance id is: {}", serviceInstanceId);
} }
responseObserver.onNext(Downstream.getDefaultInstance()); responseObserver.onNext(Downstream.getDefaultInstance());
......
...@@ -20,9 +20,13 @@ package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.r ...@@ -20,9 +20,13 @@ package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.r
import com.google.gson.*; import com.google.gson.*;
import java.io.IOException; import java.io.IOException;
import java.util.Objects;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.apache.skywalking.oap.server.core.CoreModule; import org.apache.skywalking.oap.server.core.CoreModule;
import org.apache.skywalking.oap.server.core.cache.ServiceInstanceInventoryCache;
import org.apache.skywalking.oap.server.core.register.ServiceInstanceInventory;
import org.apache.skywalking.oap.server.core.register.service.IServiceInstanceInventoryRegister; import org.apache.skywalking.oap.server.core.register.service.IServiceInstanceInventoryRegister;
import org.apache.skywalking.oap.server.core.register.service.IServiceInventoryRegister;
import org.apache.skywalking.oap.server.library.module.ModuleManager; import org.apache.skywalking.oap.server.library.module.ModuleManager;
import org.apache.skywalking.oap.server.library.server.jetty.*; import org.apache.skywalking.oap.server.library.server.jetty.*;
import org.slf4j.*; import org.slf4j.*;
...@@ -35,6 +39,8 @@ public class InstanceHeartBeatServletHandler extends JettyJsonHandler { ...@@ -35,6 +39,8 @@ public class InstanceHeartBeatServletHandler extends JettyJsonHandler {
private static final Logger logger = LoggerFactory.getLogger(InstanceHeartBeatServletHandler.class); private static final Logger logger = LoggerFactory.getLogger(InstanceHeartBeatServletHandler.class);
private final IServiceInstanceInventoryRegister serviceInstanceInventoryRegister; private final IServiceInstanceInventoryRegister serviceInstanceInventoryRegister;
private final ServiceInstanceInventoryCache serviceInstanceInventoryCache;
private final IServiceInventoryRegister serviceInventoryRegister;
private final Gson gson = new Gson(); private final Gson gson = new Gson();
private static final String INSTANCE_ID = "ii"; private static final String INSTANCE_ID = "ii";
...@@ -42,6 +48,8 @@ public class InstanceHeartBeatServletHandler extends JettyJsonHandler { ...@@ -42,6 +48,8 @@ public class InstanceHeartBeatServletHandler extends JettyJsonHandler {
public InstanceHeartBeatServletHandler(ModuleManager moduleManager) { public InstanceHeartBeatServletHandler(ModuleManager moduleManager) {
this.serviceInstanceInventoryRegister = moduleManager.find(CoreModule.NAME).getService(IServiceInstanceInventoryRegister.class); this.serviceInstanceInventoryRegister = moduleManager.find(CoreModule.NAME).getService(IServiceInstanceInventoryRegister.class);
this.serviceInstanceInventoryCache = moduleManager.find(CoreModule.NAME).getService(ServiceInstanceInventoryCache.class);
this.serviceInventoryRegister = moduleManager.find(CoreModule.NAME).getService(IServiceInventoryRegister.class);
} }
@Override public String pathSpec() { @Override public String pathSpec() {
...@@ -60,6 +68,12 @@ public class InstanceHeartBeatServletHandler extends JettyJsonHandler { ...@@ -60,6 +68,12 @@ public class InstanceHeartBeatServletHandler extends JettyJsonHandler {
long heartBeatTime = heartBeat.get(HEARTBEAT_TIME).getAsLong(); long heartBeatTime = heartBeat.get(HEARTBEAT_TIME).getAsLong();
serviceInstanceInventoryRegister.heartbeat(instanceId, heartBeatTime); serviceInstanceInventoryRegister.heartbeat(instanceId, heartBeatTime);
ServiceInstanceInventory serviceInstanceInventory = serviceInstanceInventoryCache.get(instanceId);
if (Objects.nonNull(serviceInstanceInventory)) {
serviceInventoryRegister.heartbeat(serviceInstanceInventory.getServiceId(), heartBeatTime);
} else {
logger.warn("Can't found service by service instance id from cache, service instance id is: {}", instanceId);
}
} catch (IOException e) { } catch (IOException e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
} }
......
...@@ -61,7 +61,6 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO { ...@@ -61,7 +61,6 @@ public class MetadataQueryEsDAO extends EsDAO implements IMetadataQueryDAO {
SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource(); SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must().add(timeRangeQueryBuild(startTimestamp, endTimestamp));
boolQueryBuilder.must().add(QueryBuilders.termQuery(EndpointInventory.DETECT_POINT, DetectPoint.SERVER.ordinal())); boolQueryBuilder.must().add(QueryBuilders.termQuery(EndpointInventory.DETECT_POINT, DetectPoint.SERVER.ordinal()));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册