Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
六月暴雪飞梨花
SkyWalking
提交
54efea65
S
SkyWalking
项目概览
六月暴雪飞梨花
/
SkyWalking
与 Fork 源项目一致
Fork自
apache / SkyWalking
通知
1
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,发现更多精彩内容 >>
未验证
提交
54efea65
编写于
1月 01, 2021
作者:
K
kezhenxu94
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Unify the Service & ServiceInstance names with ALS
上级
d9b1f2fb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
31 deletion
+14
-31
oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/EnvoyMetricReceiverProvider.java
...ap/server/receiver/envoy/EnvoyMetricReceiverProvider.java
+1
-1
oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
...g/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
+13
-30
未找到文件。
oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/EnvoyMetricReceiverProvider.java
浏览文件 @
54efea65
...
...
@@ -62,7 +62,7 @@ public class EnvoyMetricReceiverProvider extends ModuleProvider {
.
provider
()
.
getService
(
GRPCHandlerRegister
.
class
);
if
(
config
.
isAcceptMetricsService
())
{
final
MetricServiceGRPCHandler
handler
=
new
MetricServiceGRPCHandler
(
getManager
());
final
MetricServiceGRPCHandler
handler
=
new
MetricServiceGRPCHandler
(
getManager
()
,
config
);
service
.
addHandler
(
handler
);
service
.
addHandler
(
new
MetricServiceGRPCHandlerV3
(
handler
));
}
...
...
oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/MetricServiceGRPCHandler.java
浏览文件 @
54efea65
...
...
@@ -18,8 +18,7 @@
package
org.apache.skywalking.oap.server.receiver.envoy
;
import
io.envoyproxy.envoy.config.core.v3.Node
;
import
io.envoyproxy.envoy.service.metrics.v3.MetricsServiceGrpc
;
import
io.envoyproxy.envoy.service.metrics.v2.MetricsServiceGrpc
;
import
io.envoyproxy.envoy.service.metrics.v3.StreamMetricsMessage
;
import
io.envoyproxy.envoy.service.metrics.v3.StreamMetricsResponse
;
import
io.grpc.stub.StreamObserver
;
...
...
@@ -27,6 +26,7 @@ import io.prometheus.client.Metrics;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.skywalking.apm.util.StringUtil
;
import
org.apache.skywalking.oap.meter.analyzer.prometheus.PrometheusMetricConverter
;
...
...
@@ -40,6 +40,8 @@ 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.ModuleStartException
;
import
org.apache.skywalking.oap.server.library.util.prometheus.metrics.Metric
;
import
org.apache.skywalking.oap.server.receiver.envoy.als.ServiceMetaInfo
;
import
org.apache.skywalking.oap.server.receiver.envoy.als.mx.ServiceMetaInfoAdapter
;
import
org.apache.skywalking.oap.server.receiver.envoy.metrics.adapters.ProtoMetricFamily2MetricsAdapter
;
import
org.apache.skywalking.oap.server.telemetry.TelemetryModule
;
import
org.apache.skywalking.oap.server.telemetry.api.CounterMetrics
;
...
...
@@ -80,10 +82,10 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI
public
StreamObserver
<
StreamMetricsMessage
>
streamMetrics
(
StreamObserver
<
StreamMetricsResponse
>
responseObserver
)
{
return
new
StreamObserver
<
StreamMetricsMessage
>()
{
private
volatile
boolean
isFirst
=
true
;
private
String
serviceName
=
null
;
private
String
serviceInstanceName
=
null
;
private
ServiceMetaInfo
service
;
@Override
@SneakyThrows
public
void
onNext
(
StreamMetricsMessage
message
)
{
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"Received msg {}"
,
message
);
...
...
@@ -91,46 +93,27 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI
if
(
isFirst
)
{
isFirst
=
false
;
StreamMetricsMessage
.
Identifier
identifier
=
message
.
getIdentifier
();
Node
node
=
identifier
.
getNode
();
String
nodeId
=
node
.
getId
();
if
(!
StringUtil
.
isEmpty
(
nodeId
))
{
serviceInstanceName
=
nodeId
;
}
String
cluster
=
node
.
getCluster
();
if
(!
StringUtil
.
isEmpty
(
cluster
))
{
serviceName
=
cluster
;
if
(
serviceInstanceName
==
null
)
{
serviceInstanceName
=
serviceName
;
}
}
if
(
serviceName
==
null
)
{
serviceName
=
serviceInstanceName
;
}
service
=
new
ServiceMetaInfoAdapter
(
message
.
getIdentifier
().
getNode
().
getMetadata
());
}
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"Envoy metrics reported from service[{}], service instance[{}]"
,
serviceName
,
serviceInstanceName
);
log
.
debug
(
"Envoy metrics reported from service[{}]"
,
service
);
}
if
(
StringUtil
.
isNotEmpty
(
serviceName
)
&&
StringUtil
.
isNotEmpty
(
serviceInstanceName
))
{
if
(
service
!=
null
&&
StringUtil
.
isNotEmpty
(
service
.
getServiceName
())
&&
StringUtil
.
isNotEmpty
(
service
.
getServiceInstanceName
()
))
{
List
<
Metrics
.
MetricFamily
>
list
=
message
.
getEnvoyMetricsList
();
boolean
needHeartbeatUpdate
=
true
;
for
(
final
Metrics
.
MetricFamily
metricFamily
:
list
)
{
counter
.
inc
();
final
String
serviceId
=
IDManager
.
ServiceID
.
buildId
(
service
Name
,
NodeType
.
Normal
);
final
String
serviceId
=
IDManager
.
ServiceID
.
buildId
(
service
.
getServiceName
()
,
NodeType
.
Normal
);
try
(
final
HistogramMetrics
.
Timer
ignored
=
histogram
.
createTimer
())
{
final
ProtoMetricFamily2MetricsAdapter
adapter
=
new
ProtoMetricFamily2MetricsAdapter
(
metricFamily
);
final
Stream
<
Metric
>
metrics
=
adapter
.
adapt
().
peek
(
it
->
{
it
.
getLabels
().
putIfAbsent
(
"cluster"
,
service
Name
);
it
.
getLabels
().
putIfAbsent
(
"instance"
,
service
InstanceName
);
it
.
getLabels
().
putIfAbsent
(
"cluster"
,
service
.
getServiceName
()
);
it
.
getLabels
().
putIfAbsent
(
"instance"
,
service
.
getServiceInstanceName
()
);
});
converters
.
forEach
(
converter
->
converter
.
toMeter
(
metrics
));
...
...
@@ -139,7 +122,7 @@ public class MetricServiceGRPCHandler extends MetricsServiceGrpc.MetricsServiceI
// Send heartbeat
ServiceInstanceUpdate
serviceInstanceUpdate
=
new
ServiceInstanceUpdate
();
serviceInstanceUpdate
.
setName
(
service
InstanceName
);
serviceInstanceUpdate
.
setName
(
service
.
getServiceInstanceName
()
);
serviceInstanceUpdate
.
setServiceId
(
serviceId
);
serviceInstanceUpdate
.
setTimeBucket
(
TimeBucket
.
getMinuteTimeBucket
(
timestamp
));
sourceReceiver
.
receive
(
serviceInstanceUpdate
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录