@Override
    public void doAlarm(List<AlarmMessage> alarmMessages) {
        // recreate gRPC client and stub if host and port configuration changed.
        Map<String, GRPCAlarmSetting> settinsMap = alarmRulesWatcher.getGrpchookSetting();
        onGRPCAlarmSettingUpdated(settinsMap);

        if (settinsMap == null || settinsMap.isEmpty()) {
            return;
        }
        Map<String, List<AlarmMessage>> groupedMessages =  groupMessagesByHook(alarmMessages);

        groupedMessages.forEach((hook, messages) -> {
            if (alarmServiceStubMap.containsKey(hook)) {
                sendAlarmMessages(alarmServiceStubMap.get(hook), messages, settinsMap.get(hook));
            }
        });

    }
Use SkyWalking alarm grpc API call a remote methods.
oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/grpc/GRPCCallback.java