Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
润土的好友猹
SkyWalking
提交
cc60f152
S
SkyWalking
项目概览
润土的好友猹
/
SkyWalking
与 Fork 源项目一致
Fork自
apache / SkyWalking
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
cc60f152
编写于
3月 12, 2021
作者:
yunrao
提交者:
GitHub
3月 12, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
resolve "receiver don't need to get itself when healthCheck #6515 " (#6538)
上级
169640bd
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
79 addition
and
5 deletion
+79
-5
CHANGES.md
CHANGES.md
+1
-0
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
...g/apache/skywalking/oap/server/core/CoreModuleConfig.java
+10
-1
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
...apache/skywalking/oap/server/core/CoreModuleProvider.java
+3
-0
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cluster/OAPNodeChecker.java
...he/skywalking/oap/server/core/cluster/OAPNodeChecker.java
+11
-4
oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/CoreModuleConfigTest.java
...ache/skywalking/oap/server/core/CoreModuleConfigTest.java
+44
-0
oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/cluster/OAPNodeCheckerTest.java
...kywalking/oap/server/core/cluster/OAPNodeCheckerTest.java
+10
-0
未找到文件。
CHANGES.md
浏览文件 @
cc60f152
...
...
@@ -49,6 +49,7 @@ Release Notes.
*
Add telemetry data about metrics in, metrics scraping and trace in metrics to zipkin receiver.
*
Fix tags store of log and trace on h2/mysql/pg storage.
*
Merge indices by Metrics Function and Meter Function in Elasticsearch Storage.
*
Fix receiver don't need to get itself when healthCheck
#### UI
*
Update selector scroller to show in all pages.
...
...
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
浏览文件 @
cc60f152
...
...
@@ -157,7 +157,16 @@ public class CoreModuleConfig extends ModuleConfig {
* Aggregator mode OAP receives data from {@link #Mixed} and {@link #Aggregator} OAP nodes, and do 2nd round
* aggregation. Then save the final result to the storage.
*/
Aggregator
Aggregator
;
public
static
Role
fromName
(
String
name
)
{
for
(
Role
role
:
Role
.
values
())
{
if
(
role
.
name
().
equalsIgnoreCase
(
name
))
{
return
role
;
}
}
return
Mixed
;
}
}
/**
...
...
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
浏览文件 @
cc60f152
...
...
@@ -38,6 +38,7 @@ import org.apache.skywalking.oap.server.core.cache.NetworkAddressAliasCache;
import
org.apache.skywalking.oap.server.core.cache.ProfileTaskCache
;
import
org.apache.skywalking.oap.server.core.cluster.ClusterModule
;
import
org.apache.skywalking.oap.server.core.cluster.ClusterRegister
;
import
org.apache.skywalking.oap.server.core.cluster.OAPNodeChecker
;
import
org.apache.skywalking.oap.server.core.cluster.RemoteInstance
;
import
org.apache.skywalking.oap.server.core.command.CommandService
;
import
org.apache.skywalking.oap.server.core.config.ComponentLibraryCatalogService
;
...
...
@@ -315,6 +316,8 @@ public class CoreModuleProvider extends ModuleProvider {
.
registerRemote
(
gRPCServerInstance
);
}
OAPNodeChecker
.
setROLE
(
CoreModuleConfig
.
Role
.
fromName
(
moduleConfig
.
getRole
()));
DynamicConfigurationService
dynamicConfigurationService
=
getManager
().
find
(
ConfigurationModule
.
NAME
)
.
provider
()
.
getService
(
...
...
oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/cluster/OAPNodeChecker.java
浏览文件 @
cc60f152
...
...
@@ -19,6 +19,8 @@
package
org.apache.skywalking.oap.server.core.cluster
;
import
com.google.common.collect.Sets
;
import
lombok.Setter
;
import
org.apache.skywalking.oap.server.core.CoreModuleConfig
;
import
org.apache.skywalking.oap.server.library.util.CollectionUtils
;
import
java.util.List
;
...
...
@@ -28,6 +30,9 @@ import java.util.stream.Collectors;
public
class
OAPNodeChecker
{
private
static
final
Set
<
String
>
ILLEGAL_NODE_ADDRESS_IN_CLUSTER_MODE
=
Sets
.
newHashSet
(
"127.0.0.1"
,
"localhost"
);
@Setter
private
static
CoreModuleConfig
.
Role
ROLE
=
CoreModuleConfig
.
Role
.
Mixed
;
public
static
boolean
hasIllegalNodeAddress
(
List
<
RemoteInstance
>
remoteInstances
)
{
if
(
CollectionUtils
.
isEmpty
(
remoteInstances
))
{
return
false
;
...
...
@@ -50,10 +55,12 @@ public class OAPNodeChecker {
if
(
CollectionUtils
.
isEmpty
(
remoteInstances
))
{
return
ClusterHealthStatus
.
unHealth
(
"can't get the instance list"
);
}
List
<
RemoteInstance
>
selfInstances
=
remoteInstances
.
stream
().
filter
(
remoteInstance
->
remoteInstance
.
getAddress
().
isSelf
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
selfInstances
))
{
return
ClusterHealthStatus
.
unHealth
(
"can't get itself"
);
if
(!
CoreModuleConfig
.
Role
.
Receiver
.
equals
(
ROLE
))
{
List
<
RemoteInstance
>
selfInstances
=
remoteInstances
.
stream
().
filter
(
remoteInstance
->
remoteInstance
.
getAddress
().
isSelf
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isEmpty
(
selfInstances
))
{
return
ClusterHealthStatus
.
unHealth
(
"can't get itself"
);
}
}
if
(
remoteInstances
.
size
()
>
1
&&
hasIllegalNodeAddress
(
remoteInstances
))
{
return
ClusterHealthStatus
.
unHealth
(
"find illegal node in cluster mode such as 127.0.0.1, localhost"
);
...
...
oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/CoreModuleConfigTest.java
0 → 100644
浏览文件 @
cc60f152
/*
* 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.oap.server.core
;
import
org.apache.commons.lang3.StringUtils
;
import
org.junit.Assert
;
import
org.junit.Test
;
public
class
CoreModuleConfigTest
{
@Test
public
void
testRoleFromNameNormalSituation
()
{
Assert
.
assertEquals
(
CoreModuleConfig
.
Role
.
Mixed
,
CoreModuleConfig
.
Role
.
fromName
(
"Mixed"
));
Assert
.
assertEquals
(
CoreModuleConfig
.
Role
.
Receiver
,
CoreModuleConfig
.
Role
.
fromName
(
"Receiver"
));
Assert
.
assertEquals
(
CoreModuleConfig
.
Role
.
Aggregator
,
CoreModuleConfig
.
Role
.
fromName
(
"Aggregator"
));
}
@Test
public
void
testRoleFromNameBlockParameter
()
{
Assert
.
assertEquals
(
CoreModuleConfig
.
Role
.
Mixed
,
CoreModuleConfig
.
Role
.
fromName
(
StringUtils
.
EMPTY
));
Assert
.
assertEquals
(
CoreModuleConfig
.
Role
.
Mixed
,
CoreModuleConfig
.
Role
.
fromName
(
null
));
}
@Test
public
void
testRoleFromNameNotIncludeRole
()
{
Assert
.
assertEquals
(
CoreModuleConfig
.
Role
.
Mixed
,
CoreModuleConfig
.
Role
.
fromName
(
"a"
));
}
}
oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/cluster/OAPNodeCheckerTest.java
浏览文件 @
cc60f152
...
...
@@ -19,6 +19,7 @@
package
org.apache.skywalking.oap.server.core.cluster
;
import
com.google.common.collect.Lists
;
import
org.apache.skywalking.oap.server.core.CoreModuleConfig
;
import
org.apache.skywalking.oap.server.core.remote.client.Address
;
import
org.junit.Assert
;
import
org.junit.Test
;
...
...
@@ -102,4 +103,13 @@ public class OAPNodeCheckerTest {
ClusterHealthStatus
clusterHealthStatus
=
OAPNodeChecker
.
isHealth
(
remoteInstances
);
Assert
.
assertTrue
(
clusterHealthStatus
.
isHealth
());
}
@Test
public
void
healthWhenReceiverRoleWithEmptySelfInstance
()
{
List
<
RemoteInstance
>
remoteInstances
=
new
ArrayList
<>();
remoteInstances
.
add
(
new
RemoteInstance
(
new
Address
(
"192.168.0.1"
,
8892
,
false
)));
OAPNodeChecker
.
setROLE
(
CoreModuleConfig
.
Role
.
Receiver
);
ClusterHealthStatus
clusterHealthStatus
=
OAPNodeChecker
.
isHealth
(
remoteInstances
);
Assert
.
assertTrue
(
clusterHealthStatus
.
isHealth
());
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录