提交 1b5fd6af 编写于 作者: Y youyong

modify the cat dump

上级 ae808c9b
......@@ -20,7 +20,7 @@ import com.dianping.cat.message.internal.MessageId;
import com.dianping.cat.message.spi.AbstractMessageAnalyzer;
import com.dianping.cat.message.spi.MessagePathBuilder;
import com.dianping.cat.message.spi.MessageTree;
import com.dianping.cat.storage.dump.DumpTreeItem;
import com.dianping.cat.storage.dump.DumpItem;
import com.dianping.cat.storage.dump.LocalMessageBucketManager;
import com.dianping.cat.storage.dump.MessageBucketManager;
import com.site.helper.Threads;
......@@ -47,7 +47,7 @@ public class DumpAnalyzer extends AbstractMessageAnalyzer<Object> implements Ini
private Logger m_logger;
private final BlockingQueue<DumpTreeItem> m_queue = new LinkedBlockingQueue<DumpTreeItem>(10000);
private final BlockingQueue<DumpItem> m_storeQueue = new LinkedBlockingQueue<DumpItem>(10000);
private int m_errors;
......@@ -122,8 +122,9 @@ public class DumpAnalyzer extends AbstractMessageAnalyzer<Object> implements Ini
}
} else {
try {
DumpTreeItem item = m_bucketManager.getStoreMeta(tree);
boolean result = m_queue.offer(item);
DumpItem item = m_bucketManager.buildStoreMetaInfo(tree);
boolean result = m_storeQueue.offer(item);
if (!result) {
m_errors++;
......@@ -131,7 +132,7 @@ public class DumpAnalyzer extends AbstractMessageAnalyzer<Object> implements Ini
m_logger.error("Error when put dump item into queue, errors:" + m_errors);
}
}
// m_bucketManager.storeMessage(tree);
//m_bucketManager.storeMessage(tree);
} catch (IOException e) {
m_logger.error("Error when dumping to local file system!", e);
}
......@@ -164,7 +165,7 @@ public class DumpAnalyzer extends AbstractMessageAnalyzer<Object> implements Ini
// long current = System.currentTimeMillis();
while (true) {
try {
DumpTreeItem item = m_queue.poll(5, TimeUnit.MILLISECONDS);
DumpItem item = m_storeQueue.poll(5, TimeUnit.MILLISECONDS);
if (item != null) {
m_bucketManager.storeMessage(item);
......
......@@ -75,24 +75,6 @@ public class DumpChannel {
m_lastChunkAdjust = lastChunkAdjust;
}
public int write(ChannelBuffer buf) throws IOException{
int length = buf.readInt();
long count = m_file.length();
if (m_maxSize > 0 && count + m_lastChunkAdjust + length > m_maxSize) {
// exceed the max size
return 0;
}
buf.getBytes(buf.readerIndex(), m_out, length);
// a blank line used to separate two message trees
m_out.write('\n');
//m_out.flush();
return length + 1;
}
public int write(MessageTree tree) throws IOException {
ChannelBuffer buf = ChannelBuffers.dynamicBuffer(8192);
......
package com.dianping.cat.storage.dump;
public class DumpTreeItem {
public class DumpItem {
private int m_index;
......@@ -15,7 +15,7 @@ public class DumpTreeItem {
return m_index;
}
public DumpTreeItem setIndex(int index) {
public DumpItem setIndex(int index) {
m_index = index;
return this;
}
......@@ -24,7 +24,7 @@ public class DumpTreeItem {
return m_fileName;
}
public DumpTreeItem setFileName(String fileName) {
public DumpItem setFileName(String fileName) {
m_fileName = fileName;
return this;
}
......@@ -33,7 +33,7 @@ public class DumpTreeItem {
return m_size;
}
public DumpTreeItem setSize(int size) {
public DumpItem setSize(int size) {
m_size = size;
return this;
}
......
......@@ -168,8 +168,8 @@ public class LocalMessageBucketManager extends ContainerHolder implements Messag
m_baseDir = baseDir;
}
public DumpTreeItem getStoreMeta(MessageTree tree) throws IOException {
DumpTreeItem item = new DumpTreeItem();
public DumpItem buildStoreMetaInfo(MessageTree tree) throws IOException {
DumpItem item = new DumpItem();
MessageId messageId = MessageId.parse(tree.getMessageId());
int index = messageId.getIndex();
......@@ -206,12 +206,14 @@ public class LocalMessageBucketManager extends ContainerHolder implements Messag
private ChannelBuffer getChannelBuf(int index,String fileName, MessageTree tree) throws IOException {
LocalMessageBucket bucket = m_buckets.get(fileName);
return bucket.getChannelBuf(tree);
}
public void storeMessage(DumpTreeItem item) throws IOException{
public void storeMessage(DumpItem item) throws IOException{
LocalMessageBucket bucket = m_buckets.get(item.getFileName());
bucket.storeChannelBuf(item.getIndex(), item.getSize(),item.getBytes());
bucket.storeChannelBuf(item.getIndex(), item.getSize(), item.getBytes());
}
@Override
......
......@@ -37,9 +37,11 @@ Welcome to <b>Central Application Tracking (CAT)</b>.
<br>
<br>
<table>
<tr class="even"><td>序号</td><td>常见问题</td></tr>
<tr class="odd"><td>1</td><td>Transaction、Event历史报表,图表X轴以5分钟为刻度,Y轴表示每5分钟的值</td></tr>
<tr class="odd"><td>2</td><td>Problem、Heartbeat历史报表,图表X轴以1分钟为刻度,Y轴表示每1分钟的值</td></tr>
<tr class="even"><td>序号</td><td>常见问题</td><td>解答</td></tr>
<tr class="odd"><td>1</td><td>TestCase跑不起来</td><td>升级至CAT的0.4.0的版本,Pigeon版本至1.6.1</td></tr>
<tr class="even"><td>2</td><td>集成了CAT,但是在测试环境看不到信息</td><td>请check相关步骤<a href="http://wiki.dianpingoa.com/bin/view/SOA%E6%9E%B6%E6%9E%84/CAT%E9%9B%86%E6%88%90%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3" target="_blank">CAT集成帮助文档</a></td></tr>
<tr class="odd"><td>3</td><td>Transaction、Event报表区间</<td><td>Transaction、Event历史报表,图表X轴以5分钟为刻度,Y轴表示每5分钟的值</td></tr>
<tr class="even"><td>4</td><td>Problem、Hearbeat报表区间</<td><td>Problem、Heartbeat历史报表,图表X轴以1分钟为刻度,Y轴表示每1分钟的值</td></tr>
</table>
<br>
<br>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册