Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
38c182e4
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 大约 1 年
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
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,体验更适合开发者的 AI 搜索 >>
未验证
提交
38c182e4
编写于
6月 02, 2021
作者:
D
Daming
提交者:
GitHub
6月 02, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Kafka transporter code polish (#7032)
上级
30349633
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
156 addition
and
104 deletion
+156
-104
apm-sniffer/optional-reporter-plugins/kafka-reporter-plugin/src/main/java/org/apache/skywalking/apm/agent/core/kafka/KafkaProducerManager.java
...skywalking/apm/agent/core/kafka/KafkaProducerManager.java
+32
-42
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/KafkaFetcherHandlerRegister.java
...ver/analyzer/agent/kafka/KafkaFetcherHandlerRegister.java
+3
-6
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JVMMetricsHandler.java
...lyzer/agent/kafka/provider/handler/JVMMetricsHandler.java
+42
-6
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JsonLogHandler.java
...analyzer/agent/kafka/provider/handler/JsonLogHandler.java
+2
-2
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/LogHandler.java
...ver/analyzer/agent/kafka/provider/handler/LogHandler.java
+13
-12
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/MeterServiceHandler.java
...zer/agent/kafka/provider/handler/MeterServiceHandler.java
+20
-10
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/ProfileTaskHandler.java
...yzer/agent/kafka/provider/handler/ProfileTaskHandler.java
+26
-1
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/ServiceManagementHandler.java
...gent/kafka/provider/handler/ServiceManagementHandler.java
+2
-10
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/TraceSegmentHandler.java
...zer/agent/kafka/provider/handler/TraceSegmentHandler.java
+7
-15
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/test/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JVMMetricsHandlerTest.java
...r/agent/kafka/provider/handler/JVMMetricsHandlerTest.java
+9
-0
未找到文件。
apm-sniffer/optional-reporter-plugins/kafka-reporter-plugin/src/main/java/org/apache/skywalking/apm/agent/core/kafka/KafkaProducerManager.java
浏览文件 @
38c182e4
...
...
@@ -101,39 +101,39 @@ public class KafkaProducerManager implements BootService, Runnable {
ProducerConfig
.
BOOTSTRAP_SERVERS_CONFIG
,
KafkaReporterPluginConfig
.
Plugin
.
Kafka
.
BOOTSTRAP_SERVERS
);
KafkaReporterPluginConfig
.
Plugin
.
Kafka
.
PRODUCER_CONFIG
.
forEach
(
properties:
:
setProperty
);
AdminClient
adminClient
=
AdminClient
.
create
(
properties
);
DescribeTopicsResult
topicsResult
=
adminClient
.
describeTopics
(
topics
);
Set
<
String
>
topics
=
topicsResult
.
values
().
entrySet
().
stream
()
.
map
(
entry
->
{
try
{
entry
.
getValue
().
get
(
KafkaReporterPluginConfig
.
Plugin
.
Kafka
.
GET_TOPIC_TIMEOUT
,
TimeUnit
.
SECONDS
);
return
null
;
}
catch
(
InterruptedException
|
ExecutionException
|
TimeoutException
e
)
{
LOGGER
.
error
(
e
,
"Get KAFKA topic:{} error."
,
entry
.
getKey
());
}
return
entry
.
getKey
();
})
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toSet
());
if
(!
topics
.
isEmpty
())
{
LOGGER
.
warn
(
"kafka topics {} is not exist, connect to kafka cluster abort"
,
topics
);
closeAdminClient
(
adminClient
);
return
;
}
try
{
producer
=
new
KafkaProducer
<>(
properties
,
new
StringSerializer
(),
new
BytesSerializer
());
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
,
"connect to kafka cluster '{}' failed"
,
KafkaReporterPluginConfig
.
Plugin
.
Kafka
.
BOOTSTRAP_SERVERS
);
closeAdminClient
(
adminClient
);
return
;
try
(
AdminClient
adminClient
=
AdminClient
.
create
(
properties
))
{
DescribeTopicsResult
topicsResult
=
adminClient
.
describeTopics
(
topics
);
Set
<
String
>
topics
=
topicsResult
.
values
().
entrySet
().
stream
()
.
map
(
entry
->
{
try
{
entry
.
getValue
().
get
(
KafkaReporterPluginConfig
.
Plugin
.
Kafka
.
GET_TOPIC_TIMEOUT
,
TimeUnit
.
SECONDS
);
return
null
;
}
catch
(
InterruptedException
|
ExecutionException
|
TimeoutException
e
)
{
LOGGER
.
error
(
e
,
"Get KAFKA topic:{} error."
,
entry
.
getKey
());
}
return
entry
.
getKey
();
})
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toSet
());
if
(!
topics
.
isEmpty
())
{
LOGGER
.
warn
(
"kafka topics {} is not exist, connect to kafka cluster abort"
,
topics
);
return
;
}
try
{
producer
=
new
KafkaProducer
<>(
properties
,
new
StringSerializer
(),
new
BytesSerializer
());
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
e
,
"connect to kafka cluster '{}' failed"
,
KafkaReporterPluginConfig
.
Plugin
.
Kafka
.
BOOTSTRAP_SERVERS
);
return
;
}
//notify listeners to send data if no exception been throw
notifyListeners
(
KafkaConnectionStatus
.
CONNECTED
);
bootProducerFuture
.
cancel
(
true
);
}
//notify listeners to send data if no exception been throw
notifyListeners
(
KafkaConnectionStatus
.
CONNECTED
);
bootProducerFuture
.
cancel
(
true
);
}
private
void
notifyListeners
(
KafkaConnectionStatus
status
)
{
...
...
@@ -142,16 +142,6 @@ public class KafkaProducerManager implements BootService, Runnable {
}
}
private
void
closeAdminClient
(
AdminClient
adminClient
)
{
if
(
adminClient
!=
null
)
{
try
{
adminClient
.
close
();
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"close kafka admin client failed"
,
e
);
}
}
}
/**
* Get the KafkaProducer instance to send data to Kafka broker.
*/
...
...
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/KafkaFetcherHandlerRegister.java
浏览文件 @
38c182e4
...
...
@@ -21,7 +21,6 @@ package org.apache.skywalking.oap.server.analyzer.agent.kafka;
import
com.google.common.collect.ImmutableMap
;
import
com.google.common.collect.Lists
;
import
java.time.Duration
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Properties
;
...
...
@@ -92,7 +91,7 @@ public class KafkaFetcherHandlerRegister implements Runnable {
try
{
entry
.
getValue
().
get
();
return
null
;
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
}
catch
(
InterruptedException
|
ExecutionException
ignor
e
)
{
}
return
entry
.
getKey
();
})
...
...
@@ -132,7 +131,7 @@ public class KafkaFetcherHandlerRegister implements Runnable {
consumer
=
new
KafkaConsumer
<>(
properties
,
new
StringDeserializer
(),
new
BytesDeserializer
());
executor
=
new
ThreadPoolExecutor
(
threadPoolSize
,
threadPoolSize
,
60
,
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
(
threadPoolQueueSize
),
new
ArrayBlockingQueue
<>
(
threadPoolQueueSize
),
new
CustomThreadFactory
(
"KafkaConsumer"
),
new
ThreadPoolExecutor
.
CallerRunsPolicy
()
);
...
...
@@ -160,9 +159,7 @@ public class KafkaFetcherHandlerRegister implements Runnable {
try
{
ConsumerRecords
<
String
,
Bytes
>
consumerRecords
=
consumer
.
poll
(
Duration
.
ofMillis
(
500L
));
if
(!
consumerRecords
.
isEmpty
())
{
Iterator
<
ConsumerRecord
<
String
,
Bytes
>>
iterator
=
consumerRecords
.
iterator
();
while
(
iterator
.
hasNext
())
{
ConsumerRecord
<
String
,
Bytes
>
record
=
iterator
.
next
();
for
(
final
ConsumerRecord
<
String
,
Bytes
>
record
:
consumerRecords
)
{
executor
.
submit
(()
->
handlerMap
.
get
(
record
.
topic
()).
handle
(
record
));
}
if
(!
enableKafkaMessageAutoCommit
)
{
...
...
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JVMMetricsHandler.java
浏览文件 @
38c182e4
...
...
@@ -27,6 +27,12 @@ import org.apache.skywalking.oap.server.analyzer.provider.jvm.JVMSourceDispatche
import
org.apache.skywalking.oap.server.core.CoreModule
;
import
org.apache.skywalking.oap.server.core.config.NamingControl
;
import
org.apache.skywalking.oap.server.library.module.ModuleManager
;
import
org.apache.skywalking.oap.server.telemetry.TelemetryModule
;
import
org.apache.skywalking.oap.server.telemetry.api.CounterMetrics
;
import
org.apache.skywalking.oap.server.telemetry.api.HistogramMetrics
;
import
org.apache.skywalking.oap.server.telemetry.api.HistogramMetrics.Timer
;
import
org.apache.skywalking.oap.server.telemetry.api.MetricsCreator
;
import
org.apache.skywalking.oap.server.telemetry.api.MetricsTag
;
/**
* A handler deserializes the message of JVM Metrics and pushes it to downstream.
...
...
@@ -37,17 +43,42 @@ public class JVMMetricsHandler extends AbstractKafkaHandler {
private
final
NamingControl
namingLengthControl
;
private
final
JVMSourceDispatcher
jvmSourceDispatcher
;
public
JVMMetricsHandler
(
ModuleManager
moduleManager
,
KafkaFetcherConfig
config
)
{
super
(
moduleManager
,
config
);
this
.
jvmSourceDispatcher
=
new
JVMSourceDispatcher
(
moduleManager
);
this
.
namingLengthControl
=
moduleManager
.
find
(
CoreModule
.
NAME
)
private
final
HistogramMetrics
histogram
;
private
final
HistogramMetrics
histogramBatch
;
private
final
CounterMetrics
errorCounter
;
public
JVMMetricsHandler
(
ModuleManager
manager
,
KafkaFetcherConfig
config
)
{
super
(
manager
,
config
);
this
.
jvmSourceDispatcher
=
new
JVMSourceDispatcher
(
manager
);
this
.
namingLengthControl
=
manager
.
find
(
CoreModule
.
NAME
)
.
provider
()
.
getService
(
NamingControl
.
class
);
MetricsCreator
metricsCreator
=
manager
.
find
(
TelemetryModule
.
NAME
)
.
provider
()
.
getService
(
MetricsCreator
.
class
);
histogram
=
metricsCreator
.
createHistogramMetric
(
"meter_in_latency"
,
"The process latency of meter"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka"
)
);
histogramBatch
=
metricsCreator
.
createHistogramMetric
(
"meter_in_latency"
,
"The process latency of meter"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka"
)
);
errorCounter
=
metricsCreator
.
createCounter
(
"meter_analysis_error_count"
,
"The error number of meter analysis"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka"
)
);
}
@Override
public
void
handle
(
final
ConsumerRecord
<
String
,
Bytes
>
record
)
{
try
{
try
(
Timer
ignored
=
histogramBatch
.
createTimer
())
{
JVMMetricCollection
metrics
=
JVMMetricCollection
.
parseFrom
(
record
.
value
().
get
());
if
(
log
.
isDebugEnabled
())
{
...
...
@@ -62,7 +93,12 @@ public class JVMMetricsHandler extends AbstractKafkaHandler {
builder
.
setServiceInstance
(
namingLengthControl
.
formatInstanceName
(
builder
.
getServiceInstance
()));
builder
.
getMetricsList
().
forEach
(
jvmMetric
->
{
jvmSourceDispatcher
.
sendMetric
(
builder
.
getService
(),
builder
.
getServiceInstance
(),
jvmMetric
);
try
(
Timer
timer
=
histogram
.
createTimer
())
{
jvmSourceDispatcher
.
sendMetric
(
builder
.
getService
(),
builder
.
getServiceInstance
(),
jvmMetric
);
}
catch
(
Exception
e
)
{
errorCounter
.
inc
();
log
.
error
(
e
.
getMessage
(),
e
);
}
});
}
catch
(
Exception
e
)
{
log
.
error
(
"handle record failed"
,
e
);
...
...
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JsonLogHandler.java
浏览文件 @
38c182e4
...
...
@@ -42,8 +42,8 @@ public class JsonLogHandler extends LogHandler {
}
@Override
protected
String
get
ProtocolName
()
{
return
"
kafka-fetcher-native-
json"
;
protected
String
get
DataFormat
()
{
return
"json"
;
}
@Override
...
...
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/LogHandler.java
浏览文件 @
38c182e4
...
...
@@ -50,12 +50,16 @@ public class LogHandler implements KafkaHandler {
.
provider
()
.
getService
(
MetricsCreator
.
class
);
histogram
=
metricsCreator
.
createHistogramMetric
(
"log_in_latency"
,
"The process latency of log"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
getProtocolName
())
"log_in_latency"
,
"The process latency of log"
,
new
MetricsTag
.
Keys
(
"protocol"
,
"data_format"
),
new
MetricsTag
.
Values
(
"kafka"
,
getDataFormat
())
);
errorCounter
=
metricsCreator
.
createCounter
(
"log_analysis_error_count"
,
"The error number of log analysis"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
getProtocolName
())
errorCounter
=
metricsCreator
.
createCounter
(
"log_analysis_error_count"
,
"The error number of log analysis"
,
new
MetricsTag
.
Keys
(
"protocol"
,
"data_format"
),
new
MetricsTag
.
Values
(
"kafka"
,
getDataFormat
())
);
}
...
...
@@ -71,20 +75,17 @@ public class LogHandler implements KafkaHandler {
@Override
public
void
handle
(
final
ConsumerRecord
<
String
,
Bytes
>
record
)
{
HistogramMetrics
.
Timer
timer
=
histogram
.
createTimer
();
try
{
try
(
HistogramMetrics
.
Timer
ignore
=
histogram
.
createTimer
())
{
LogData
logData
=
parseConsumerRecord
(
record
);
logAnalyzerService
.
doAnalysis
(
logData
);
}
catch
(
Exception
e
)
{
errorCounter
.
inc
();
log
.
error
(
e
.
getMessage
(),
e
);
}
finally
{
timer
.
finish
();
}
}
protected
String
get
ProtocolName
()
{
return
"
kafka-fetcher-native-proto
"
;
protected
String
get
DataFormat
()
{
return
"
protobuf
"
;
}
protected
LogData
parseConsumerRecord
(
ConsumerRecord
<
String
,
Bytes
>
record
)
throws
Exception
{
...
...
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/MeterServiceHandler.java
浏览文件 @
38c182e4
...
...
@@ -38,29 +38,40 @@ import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
*/
@Slf4j
public
class
MeterServiceHandler
extends
AbstractKafkaHandler
{
private
IMeterProcessService
processService
;
private
final
IMeterProcessService
processService
;
private
final
HistogramMetrics
histogram
;
private
final
HistogramMetrics
histogramBatch
;
private
final
CounterMetrics
errorCounter
;
public
MeterServiceHandler
(
ModuleManager
manager
,
KafkaFetcherConfig
config
)
{
super
(
manager
,
config
);
this
.
processService
=
manager
.
find
(
AnalyzerModule
.
NAME
).
provider
().
getService
(
IMeterProcessService
.
class
);
MetricsCreator
metricsCreator
=
manager
.
find
(
TelemetryModule
.
NAME
)
.
provider
()
.
getService
(
MetricsCreator
.
class
);
.
provider
()
.
getService
(
MetricsCreator
.
class
);
histogram
=
metricsCreator
.
createHistogramMetric
(
"meter_in_latency"
,
"The process latency of meter"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka-fetcher"
)
"meter_in_latency"
,
"The process latency of meter"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka"
)
);
errorCounter
=
metricsCreator
.
createCounter
(
"meter_analysis_error_count"
,
"The error number of meter analysis"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka-fetcher"
)
histogramBatch
=
metricsCreator
.
createHistogramMetric
(
"meter_batch_in_latency"
,
"The process latency of meter"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka"
)
);
errorCounter
=
metricsCreator
.
createCounter
(
"meter_analysis_error_count"
,
"The error number of meter analysis"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka"
)
);
}
@Override
public
void
handle
(
final
ConsumerRecord
<
String
,
Bytes
>
record
)
{
try
{
try
(
HistogramMetrics
.
Timer
timer
=
histogramBatch
.
createTimer
())
{
MeterDataCollection
meterDataCollection
=
MeterDataCollection
.
parseFrom
(
record
.
value
().
get
());
MeterProcessor
processor
=
processService
.
createProcessor
();
meterDataCollection
.
getMeterDataList
().
forEach
(
meterData
->
{
...
...
@@ -72,7 +83,6 @@ public class MeterServiceHandler extends AbstractKafkaHandler {
}
});
processor
.
process
();
}
catch
(
Exception
e
)
{
log
.
error
(
"handle record failed"
,
e
);
}
...
...
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/ProfileTaskHandler.java
浏览文件 @
38c182e4
...
...
@@ -27,20 +27,44 @@ import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
import
org.apache.skywalking.oap.server.core.analysis.worker.RecordStreamProcessor
;
import
org.apache.skywalking.oap.server.core.profile.ProfileThreadSnapshotRecord
;
import
org.apache.skywalking.oap.server.library.module.ModuleManager
;
import
org.apache.skywalking.oap.server.telemetry.TelemetryModule
;
import
org.apache.skywalking.oap.server.telemetry.api.CounterMetrics
;
import
org.apache.skywalking.oap.server.telemetry.api.HistogramMetrics
;
import
org.apache.skywalking.oap.server.telemetry.api.HistogramMetrics.Timer
;
import
org.apache.skywalking.oap.server.telemetry.api.MetricsCreator
;
import
org.apache.skywalking.oap.server.telemetry.api.MetricsTag.Keys
;
import
org.apache.skywalking.oap.server.telemetry.api.MetricsTag.Values
;
/**
* A handler deserializes the message of profiling snapshot and pushes it to downstream.
*/
@Slf4j
public
class
ProfileTaskHandler
extends
AbstractKafkaHandler
{
private
final
HistogramMetrics
histogram
;
private
final
CounterMetrics
errorCounter
;
public
ProfileTaskHandler
(
ModuleManager
manager
,
KafkaFetcherConfig
config
)
{
super
(
manager
,
config
);
MetricsCreator
metricsCreator
=
manager
.
find
(
TelemetryModule
.
NAME
)
.
provider
()
.
getService
(
MetricsCreator
.
class
);
histogram
=
metricsCreator
.
createHistogramMetric
(
"profile_task_in_latency"
,
"The process latency of profile task"
,
new
Keys
(
"protocol"
),
new
Values
(
"kafka"
)
);
errorCounter
=
metricsCreator
.
createCounter
(
"profile_task_analysis_error_count"
,
"The error number of profile task process"
,
new
Keys
(
"protocol"
),
new
Values
(
"kafka"
)
);
}
@Override
public
void
handle
(
final
ConsumerRecord
<
String
,
Bytes
>
record
)
{
try
{
try
(
Timer
ignored
=
histogram
.
createTimer
())
{
ThreadSnapshot
snapshot
=
ThreadSnapshot
.
parseFrom
(
record
.
value
().
get
());
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
...
...
@@ -60,6 +84,7 @@ public class ProfileTaskHandler extends AbstractKafkaHandler {
RecordStreamProcessor
.
getInstance
().
in
(
snapshotRecord
);
}
catch
(
Exception
e
)
{
errorCounter
.
inc
();
log
.
error
(
"handle record failed"
,
e
);
}
}
...
...
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/ServiceManagementHandler.java
浏览文件 @
38c182e4
...
...
@@ -78,11 +78,7 @@ public class ServiceManagementHandler extends AbstractKafkaHandler {
serviceInstanceUpdate
.
setName
(
instanceName
);
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"Service[{}] instance[{}] registered."
,
serviceName
,
instanceName
);
log
.
debug
(
"Service[{}] instance[{}] registered."
,
serviceName
,
instanceName
);
}
JsonObject
properties
=
new
JsonObject
();
...
...
@@ -107,11 +103,7 @@ public class ServiceManagementHandler extends AbstractKafkaHandler {
final
String
instanceName
=
namingLengthControl
.
formatInstanceName
(
request
.
getServiceInstance
());
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"A ping of Service[{}] instance[{}]."
,
serviceName
,
instanceName
);
log
.
debug
(
"A ping of Service[{}] instance[{}]."
,
serviceName
,
instanceName
);
}
ServiceInstanceUpdate
serviceInstanceUpdate
=
new
ServiceInstanceUpdate
();
...
...
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/main/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/TraceSegmentHandler.java
浏览文件 @
38c182e4
...
...
@@ -41,8 +41,8 @@ public class TraceSegmentHandler extends AbstractKafkaHandler {
private
final
ISegmentParserService
segmentParserService
;
private
HistogramMetrics
histogram
;
private
CounterMetrics
errorCounter
;
private
final
HistogramMetrics
histogram
;
private
final
CounterMetrics
errorCounter
;
public
TraceSegmentHandler
(
ModuleManager
moduleManager
,
KafkaFetcherConfig
config
)
{
super
(
moduleManager
,
config
);
...
...
@@ -57,19 +57,19 @@ public class TraceSegmentHandler extends AbstractKafkaHandler {
"trace_in_latency"
,
"The process latency of trace data"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka
-fetcher
"
)
new
MetricsTag
.
Values
(
"kafka"
)
);
errorCounter
=
metricsCreator
.
createCounter
(
"trace_analysis_error_count"
,
"The error number of trace analysis"
,
new
MetricsTag
.
Keys
(
"protocol"
),
new
MetricsTag
.
Values
(
"kafka
-fetcher
"
)
new
MetricsTag
.
Values
(
"kafka"
)
);
}
@Override
public
void
handle
(
final
ConsumerRecord
<
String
,
Bytes
>
record
)
{
try
{
try
(
HistogramMetrics
.
Timer
ignore
=
histogram
.
createTimer
())
{
SegmentObject
segment
=
SegmentObject
.
parseFrom
(
record
.
value
().
get
());
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
...
...
@@ -78,17 +78,9 @@ public class TraceSegmentHandler extends AbstractKafkaHandler {
segment
.
getServiceInstance
()
);
}
HistogramMetrics
.
Timer
timer
=
histogram
.
createTimer
();
try
{
segmentParserService
.
send
(
segment
);
}
catch
(
Exception
e
)
{
errorCounter
.
inc
();
log
.
error
(
e
.
getMessage
(),
e
);
}
finally
{
timer
.
finish
();
}
segmentParserService
.
send
(
segment
);
}
catch
(
InvalidProtocolBufferException
e
)
{
errorCounter
.
inc
();
log
.
error
(
"handle record failed"
,
e
);
}
}
...
...
oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/test/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JVMMetricsHandlerTest.java
浏览文件 @
38c182e4
...
...
@@ -41,6 +41,9 @@ import org.apache.skywalking.oap.server.library.module.ModuleManager;
import
org.apache.skywalking.oap.server.analyzer.agent.kafka.module.KafkaFetcherConfig
;
import
org.apache.skywalking.oap.server.analyzer.agent.kafka.mock.MockModuleManager
;
import
org.apache.skywalking.oap.server.analyzer.agent.kafka.mock.MockModuleProvider
;
import
org.apache.skywalking.oap.server.telemetry.TelemetryModule
;
import
org.apache.skywalking.oap.server.telemetry.api.MetricsCreator
;
import
org.apache.skywalking.oap.server.telemetry.none.MetricsCreatorNoop
;
import
org.junit.Assert
;
import
org.junit.Before
;
import
org.junit.ClassRule
;
...
...
@@ -82,6 +85,12 @@ public class JVMMetricsHandlerTest {
registerServiceImplementation
(
SourceReceiver
.
class
,
SOURCE_RECEIVER
);
}
});
register
(
TelemetryModule
.
NAME
,
()
->
new
MockModuleProvider
()
{
@Override
protected
void
register
()
{
registerServiceImplementation
(
MetricsCreator
.
class
,
new
MetricsCreatorNoop
());
}
});
}
};
handler
=
new
JVMMetricsHandler
(
manager
,
config
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录