Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
pulsar
提交
b2cbf4e8
pulsar
项目概览
apache
/
pulsar
通知
129
Star
40
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
pulsar
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Pages
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
提交
体验新版 GitCode,发现更多精彩内容 >>
提交
b2cbf4e8
编写于
9月 16, 2016
作者:
M
Matteo Merli
提交者:
GitHub
9月 16, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixed stats buffer rotation (#17)
上级
47a213c1
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
35 addition
and
37 deletion
+35
-37
pulsar-broker/src/main/java/com/yahoo/pulsar/broker/admin/BrokerStats.java
.../main/java/com/yahoo/pulsar/broker/admin/BrokerStats.java
+13
-22
pulsar-broker/src/main/java/com/yahoo/pulsar/broker/service/BrokerService.java
...n/java/com/yahoo/pulsar/broker/service/BrokerService.java
+3
-2
pulsar-broker/src/main/java/com/yahoo/pulsar/broker/service/PulsarStats.java
...ain/java/com/yahoo/pulsar/broker/service/PulsarStats.java
+19
-13
未找到文件。
pulsar-broker/src/main/java/com/yahoo/pulsar/broker/admin/BrokerStats.java
浏览文件 @
b2cbf4e8
...
...
@@ -15,7 +15,6 @@
*/
package
com.yahoo.pulsar.broker.admin
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.util.Collection
;
import
java.util.Map
;
...
...
@@ -33,13 +32,6 @@ import org.apache.bookkeeper.mledger.proto.PendingBookieOpsStats;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
com.yahoo.pulsar.common.naming.NamespaceName
;
import
com.yahoo.pulsar.common.policies.data.loadbalancer.LoadReport
;
import
com.yahoo.pulsar.common.stats.AllocatorStats
;
import
com.yahoo.pulsar.broker.loadbalance.ResourceUnit
;
import
com.yahoo.pulsar.broker.loadbalance.impl.SimpleLoadManagerImpl
;
import
com.yahoo.pulsar.broker.stats.AllocatorStatsGenerator
;
...
...
@@ -47,9 +39,14 @@ import com.yahoo.pulsar.broker.stats.BookieClientStatsGenerator;
import
com.yahoo.pulsar.broker.stats.MBeanStatsGenerator
;
import
com.yahoo.pulsar.broker.stats.Metrics
;
import
com.yahoo.pulsar.broker.web.RestException
;
import
com.yahoo.pulsar.common.naming.NamespaceName
;
import
com.yahoo.pulsar.common.policies.data.loadbalancer.LoadReport
;
import
com.yahoo.pulsar.common.stats.AllocatorStats
;
import
io.netty.buffer.ByteBuf
;
import
io.netty.util.ReferenceCountUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
@Path
(
"/broker-stats"
)
@Api
(
value
=
"/broker-stats"
,
description
=
"Stats for broker"
,
tags
=
"broker-stats"
)
...
...
@@ -99,19 +96,13 @@ public class BrokerStats extends AdminResource {
public
StreamingOutput
getDestinations2
()
throws
Exception
{
// Ensure super user access only
validateSuperUserAccess
();
return
new
StreamingOutput
()
{
public
void
write
(
OutputStream
output
)
throws
IOException
,
WebApplicationException
{
ByteBuf
statsBuf
=
null
;
return
output
->
pulsar
().
getBrokerService
().
getDimensionMetrics
(
statsBuf
->
{
try
{
statsBuf
=
pulsar
().
getBrokerService
().
getDimensionMetrics
();
output
.
write
(
statsBuf
.
array
(),
statsBuf
.
arrayOffset
(),
statsBuf
.
readableBytes
());
}
catch
(
Exception
e
)
{
throw
new
WebApplicationException
(
e
);
}
finally
{
ReferenceCountUtil
.
release
(
statsBuf
);
}
}
};
}
)
;
}
@GET
...
...
pulsar-broker/src/main/java/com/yahoo/pulsar/broker/service/BrokerService.java
浏览文件 @
b2cbf4e8
...
...
@@ -37,6 +37,7 @@ import java.util.concurrent.ScheduledExecutorService;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.atomic.AtomicInteger
;
import
java.util.function.Consumer
;
import
org.apache.bookkeeper.client.BookKeeper.DigestType
;
import
org.apache.bookkeeper.mledger.AsyncCallbacks.OpenLedgerCallback
;
...
...
@@ -591,8 +592,8 @@ public class BrokerService implements Closeable, ZooKeeperCacheListener<Policies
}
}
public
ByteBuf
getDimensionMetrics
(
)
{
return
pulsarStats
.
getDimensionMetrics
(
);
public
void
getDimensionMetrics
(
Consumer
<
ByteBuf
>
consumer
)
{
pulsarStats
.
getDimensionMetrics
(
consumer
);
}
public
List
<
Metrics
>
getDestinationMetrics
()
{
...
...
pulsar-broker/src/main/java/com/yahoo/pulsar/broker/service/PulsarStats.java
浏览文件 @
b2cbf4e8
...
...
@@ -18,6 +18,8 @@ package com.yahoo.pulsar.broker.service;
import
java.io.Closeable
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.locks.ReentrantReadWriteLock
;
import
java.util.function.Consumer
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -51,6 +53,8 @@ public class PulsarStats implements Closeable {
private
List
<
Metrics
>
metricsCollection
;
private
final
BrokerOperabilityMetrics
brokerOperabilityMetrics
;
private
final
ReentrantReadWriteLock
bufferLock
=
new
ReentrantReadWriteLock
();
public
PulsarStats
(
PulsarService
pulsar
)
{
this
.
topicStatsBuf
=
PooledByteBufAllocator
.
DEFAULT
.
heapBuffer
(
16
*
1024
);
this
.
tempTopicStatsBuf
=
PooledByteBufAllocator
.
DEFAULT
.
heapBuffer
(
16
*
1024
);
...
...
@@ -148,21 +152,23 @@ public class PulsarStats implements Closeable {
metricsCollection
=
tempMetricsCollection
;
tempMetricsCollection
=
tempRefMetrics
;
bufferLock
.
writeLock
().
lock
();
try
{
ByteBuf
tmp
=
topicStatsBuf
;
topicStatsBuf
=
tempTopicStatsBuf
;
tempTopicStatsBuf
=
tmp
;
tempTopicStatsBuf
.
clear
();
}
finally
{
bufferLock
.
writeLock
().
unlock
();
}
}
public
ByteBuf
getDimensionMetrics
()
{
while
(
true
)
{
ByteBuf
topicStatsBuf
=
this
.
topicStatsBuf
;
public
void
getDimensionMetrics
(
Consumer
<
ByteBuf
>
consumer
)
{
bufferLock
.
readLock
().
lock
();
try
{
topicStatsBuf
.
retain
();
return
topicStatsBuf
;
}
catch
(
Exception
e
)
{
// Re-fetch the buffer, since it have been swapped and release
continue
;
}
consumer
.
accept
(
topicStatsBuf
);
}
finally
{
bufferLock
.
readLock
().
unlock
();
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录