diff --git a/apm-protocol/apm-network/src/main/proto b/apm-protocol/apm-network/src/main/proto
index 996e6a42fffff2d8cb689c232ba8334d8ab85077..75c74186a1548657013a299f388e6e8b7b4b5251 160000
--- a/apm-protocol/apm-network/src/main/proto
+++ b/apm-protocol/apm-network/src/main/proto
@@ -1 +1 @@
-Subproject commit 996e6a42fffff2d8cb689c232ba8334d8ab85077
+Subproject commit 75c74186a1548657013a299f388e6e8b7b4b5251
diff --git a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/pom.xml b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/pom.xml
index 185b2273d120a26c4efde110f194ea06cd99503d..3119c3bc28dcb120a065ea35293719d28eb75ec2 100644
--- a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/pom.xml
+++ b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/pom.xml
@@ -34,6 +34,11 @@
mesh-receiver-module
${project.version}
+
+ org.apache.skywalking
+ server-core
+ ${project.version}
+
diff --git a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/provider/MeshGRPCHandler.java b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/provider/MeshGRPCHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..e9764ce5649e5035c4bf9ccef71cef0805557b05
--- /dev/null
+++ b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/provider/MeshGRPCHandler.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.aop.server.receiver.mesh.provider;
+
+import io.grpc.stub.StreamObserver;
+import org.apache.skywalking.apm.network.servicemesh.MeshProbeDownstream;
+import org.apache.skywalking.apm.network.servicemesh.ServiceMeshMetric;
+import org.apache.skywalking.apm.network.servicemesh.ServiceMeshMetricServiceGrpc;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class MeshGRPCHandler extends ServiceMeshMetricServiceGrpc.ServiceMeshMetricServiceImplBase {
+ private static final Logger logger = LoggerFactory.getLogger(MeshGRPCHandler.class);
+
+ @Override
+ public StreamObserver collect(StreamObserver responseObserver) {
+ return new StreamObserver() {
+ @Override public void onNext(ServiceMeshMetric metric) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Received mesh metric: {}", metric);
+ }
+
+
+ }
+
+ @Override public void onError(Throwable throwable) {
+ logger.error(throwable.getMessage(), throwable);
+ responseObserver.onCompleted();
+ }
+
+ @Override public void onCompleted() {
+ responseObserver.onNext(MeshProbeDownstream.newBuilder().build());
+ responseObserver.onCompleted();
+ }
+ };
+ }
+}
diff --git a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/provider/MeshReceiverProvider.java b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/provider/MeshReceiverProvider.java
index d4dcd3cbbdfc2cffa89cb2616b974615fa83330c..cedb1b433d29ba8cefb550bcda0b161f55b0fc4a 100644
--- a/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/provider/MeshReceiverProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/mesh-receiver-provider/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/provider/MeshReceiverProvider.java
@@ -19,6 +19,8 @@
package org.apache.skywalking.aop.server.receiver.mesh.provider;
import org.apache.skywalking.aop.server.receiver.mesh.module.MeshReceiverModule;
+import org.apache.skywalking.oap.server.core.CoreModule;
+import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
import org.apache.skywalking.oap.server.library.module.ModuleConfig;
import org.apache.skywalking.oap.server.library.module.ModuleDefine;
import org.apache.skywalking.oap.server.library.module.ModuleProvider;
@@ -39,10 +41,11 @@ public class MeshReceiverProvider extends ModuleProvider {
}
@Override public void prepare() throws ServiceNotProvidedException, ModuleStartException {
-
}
@Override public void start() throws ServiceNotProvidedException, ModuleStartException {
+ GRPCHandlerRegister service = getManager().find(CoreModule.NAME).getService(GRPCHandlerRegister.class);
+ service.addHandler(new MeshGRPCHandler());
}
@Override public void notifyAfterCompleted() throws ServiceNotProvidedException, ModuleStartException {
@@ -50,6 +53,6 @@ public class MeshReceiverProvider extends ModuleProvider {
}
@Override public String[] requiredModules() {
- return new String[0];
+ return new String[]{CoreModule.NAME};
}
}
diff --git a/oap-server/server-starter/src/main/resources/log4j2.xml b/oap-server/server-starter/src/main/resources/log4j2.xml
index 6697ebf27225d592684af50e65d407704b3024ac..0003b820bf52f4ef5862356ab50dffb02c53db5e 100644
--- a/oap-server/server-starter/src/main/resources/log4j2.xml
+++ b/oap-server/server-starter/src/main/resources/log4j2.xml
@@ -17,7 +17,7 @@
~
-->
-
+
@@ -27,10 +27,8 @@
-
-
-
+