You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2023/01/13 14:11:56 UTC

[skywalking] branch master updated: Fix gRPC alarm cannot update settings from dynamic configuration source.(#10274) (#10275)

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

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 68727ee8bc Fix gRPC alarm cannot update settings from dynamic configuration source.(#10274) (#10275)
68727ee8bc is described below

commit 68727ee8bc626c50b5d5d5b04b16c8b291e01a96
Author: inversionhourglass <in...@outlook.com>
AuthorDate: Fri Jan 13 22:11:42 2023 +0800

    Fix gRPC alarm cannot update settings from dynamic configuration source.(#10274) (#10275)
---
 docs/en/changes/changes.md                                    |  1 +
 .../oap/server/core/alarm/provider/grpc/GRPCCallback.java     | 11 ++++-------
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 2807fc71ae..5985742618 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -77,6 +77,7 @@
 * Add the eBPF network profiling E2E Test in the per storage.
 * Fix TCP service instances are lack of instance properties like `pod` and `namespace`, which causes Pod log not to work for TCP workloads.
 * Add Python HBase happybase module component ID(94).
+* Fix gRPC alarm cannot update settings from dynamic configuration source.
 
 #### UI
 
diff --git a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/grpc/GRPCCallback.java b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/grpc/GRPCCallback.java
index 4d109ee955..de85df8ad4 100644
--- a/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/grpc/GRPCCallback.java
+++ b/oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/grpc/GRPCCallback.java
@@ -60,19 +60,15 @@ public class GRPCCallback implements AlarmCallback {
     @Override
     public void doAlarm(List<AlarmMessage> alarmMessage) {
 
-        if (alarmSetting == null || alarmSetting.isEmptySetting()) {
-            return;
-        }
-
         // recreate gRPC client and stub if host and port configuration changed.
         onGRPCAlarmSettingUpdated(alarmRulesWatcher.getGrpchookSetting());
 
-        GRPCStreamStatus status = new GRPCStreamStatus();
-
-        if (alarmServiceStub == null) {
+        if (alarmSetting == null || alarmSetting.isEmptySetting() || alarmServiceStub == null) {
             return;
         }
 
+        GRPCStreamStatus status = new GRPCStreamStatus();
+
         StreamObserver<org.apache.skywalking.oap.server.core.alarm.grpc.AlarmMessage> streamObserver =
             alarmServiceStub.withDeadlineAfter(10, TimeUnit.SECONDS).doAlarm(new StreamObserver<Response>() {
                 @Override
@@ -156,6 +152,7 @@ public class GRPCCallback implements AlarmCallback {
         }
 
         if (!grpcAlarmSetting.equals(alarmSetting)) {
+            alarmSetting = grpcAlarmSetting;
             if (grpcClient != null) {
                 grpcClient.shutdown();
             }