From a06571d9fb386a2214b36685cca6d647dd1d3604 Mon Sep 17 00:00:00 2001 From: wusheng Date: Thu, 25 Feb 2016 16:34:23 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E4=B8=8D=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81=202.=E7=A7=BB=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storage/chain/SaveToHBaseChain.java | 66 ++++++------------- 1 file changed, 21 insertions(+), 45 deletions(-) diff --git a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/storage/chain/SaveToHBaseChain.java b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/storage/chain/SaveToHBaseChain.java index 6f68e2db8..a3d36abb1 100644 --- a/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/storage/chain/SaveToHBaseChain.java +++ b/skywalking-server/src/main/java/com/ai/cloud/skywalking/reciever/storage/chain/SaveToHBaseChain.java @@ -58,49 +58,39 @@ public class SaveToHBaseChain implements IStorageChain { } } - public static boolean insert(String tableName, Put put) { + private static void insert(String tableName, Put put) { try { Table table = connection.getTable(TableName.valueOf(tableName)); table.put(put); - if (logger.isDebugEnabled()) { - logger.debug("Insert data[RowKey:{}] success.", put.getId()); - } - return true; } catch (IOException e) { - logger.error("Insert the data error.RowKey:[{}]", put.getId(), e); - return false; + ServerHealthCollector.getCurrentHeathReading("hbase").updateData(ServerHeathReading.ERROR, "save RowKey[" + put.getId() + "] failure."); + throw new RuntimeException("Insert the data error.RowKey:[" + put.getId() + "]", e); } } - public static void bulkInsertBuriedPointData(List spans) { + private static void bulkInsertBuriedPointData(List spans) { if (spans == null || spans.size() <= 0) return; List puts = new ArrayList(); - Put put = null; + Put put; String columnName; for (Span span : spans) { - try { - put = new Put(Bytes.toBytes(span.getTraceId()), getTSBySpanTraceId(span)); - if (StringUtils.isEmpty(span.getParentLevel().trim())) { - columnName = span.getLevelId() + ""; - if (span.isReceiver()) { - columnName = span.getLevelId() + "-S"; - } - put.addColumn(Bytes.toBytes(Config.HBaseConfig.FAMILY_COLUMN_NAME), Bytes.toBytes(columnName), - Bytes.toBytes(span.getOriginData())); - } else { - columnName = span.getParentLevel() + "." + span.getLevelId(); - if (span.isReceiver()) { - columnName = span.getParentLevel() + "." + span.getLevelId() + "-S"; - } - put.addColumn(Bytes.toBytes(Config.HBaseConfig.FAMILY_COLUMN_NAME), Bytes.toBytes(columnName), - Bytes.toBytes(span.getOriginData())); + put = new Put(Bytes.toBytes(span.getTraceId()), getTSBySpanTraceId(span)); + if (StringUtils.isEmpty(span.getParentLevel().trim())) { + columnName = span.getLevelId() + ""; + if (span.isReceiver()) { + columnName = span.getLevelId() + "-S"; } - } catch (Exception e) { - // 不合规范的数据 - logger.error("Failed to convert Span[" + span.getTraceId() + "] to put Object", e); - continue; + put.addColumn(Bytes.toBytes(Config.HBaseConfig.FAMILY_COLUMN_NAME), Bytes.toBytes(columnName), + Bytes.toBytes(span.getOriginData())); + } else { + columnName = span.getParentLevel() + "." + span.getLevelId(); + if (span.isReceiver()) { + columnName = span.getParentLevel() + "." + span.getLevelId() + "-S"; + } + put.addColumn(Bytes.toBytes(Config.HBaseConfig.FAMILY_COLUMN_NAME), Bytes.toBytes(columnName), + Bytes.toBytes(span.getOriginData())); } puts.add(put); } @@ -121,8 +111,8 @@ public class SaveToHBaseChain implements IStorageChain { table.batch(data, resultArrays); int index = 0; for (Object result : resultArrays) { - if (result == null) { - throw new RuntimeException("Failed to storage puts to Table[" + tableName + "]"); + if (result != null) { + insert(tableName, data.get(index)); } index++; } @@ -130,21 +120,7 @@ public class SaveToHBaseChain implements IStorageChain { throw new ChainException(e); } catch (InterruptedException e) { throw new ChainException(e); - }catch (RuntimeException e){ - throw new ChainException(e); } } - - public static List selectByTraceId(String traceId) throws IOException { - List entries = new ArrayList(); - Table table = connection.getTable(TableName.valueOf(Config.HBaseConfig.TABLE_NAME)); - Get g = new Get(Bytes.toBytes(traceId)); - Result r = table.get(g); - for (Cell cell : r.rawCells()) { - if (cell.getValueArray().length > 0) - entries.add(new Span(Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()))); - } - return entries; - } }