fieldList, int rowIndex) {
+ this.currentRow = row;
+ this.rowIterator = rowIterator;
+ this.fieldList = fieldList;
+ this.fieldIndex = 0;
+ this.rowIndex = rowIndex;
+ }
+
+ public boolean hasNextRow() {
+ return rowIterator.hasNext();
+ }
+
+ public RowWrapper nextRow() {
+ return new RowWrapper(rowIterator.next(), rowIterator, fieldList, ++rowIndex);
+ }
+
+ /**
+ * Get next cell in current row.
+ *
RowWrapper maintain a field index internally, which means cannot back to previous cell after call this method.
+ * However, you can use {@link RowWrapper#resetCellIndex()} to reset field index to the beginning.
+ * @return ArrowCell
+ */
+ public ArrowCell nextCell() {
+ if (!hasNextCell() || currentRow == null) {
+ throw new NoSuchElementException("No more cells in current row");
+ }
+ return new ArrowCell(fieldList.get(fieldIndex++), currentRow);
+ }
+
+ public Stream cellStream() {
+ return fieldList.stream().map(field -> new ArrowCell(field, currentRow));
+ }
+
+ public boolean hasNextCell() {
+ return fieldIndex < fieldList.size();
+ }
+
+ public void resetCellIndex() {
+ this.fieldIndex = 0;
+ }
+}
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/job/Metrics.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/job/Metrics.java
index 6a2838577e8..003f5792fcd 100644
--- a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/job/Metrics.java
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/job/Metrics.java
@@ -124,6 +124,11 @@ public class Metrics {
* eg: size = size1 + size2, speed = speedSize
*/
private List calculates;
+ /**
+ * filters
+ * eg: class == 9 && name != 'java'
+ */
+ private List filters;
/**
* unit conversion expr
* eg:
@@ -269,7 +274,7 @@ public class Metrics {
* collector use - Temporarily store subTask metrics response data
*/
@JsonIgnore
- private transient AtomicReference subTaskDataRef;
+ private transient AtomicReference subTaskDataRef;
/**
* collector use - Temporarily store subTask running num
@@ -299,26 +304,24 @@ public boolean isHasSubTask() {
* @return is last task?
*/
public boolean consumeSubTaskResponse(CollectRep.MetricsData metricsData) {
- if (subTaskNum == null) {
- return true;
- }
synchronized (subTaskNum) {
int index = subTaskNum.decrementAndGet();
if (subTaskDataRef.get() == null) {
- subTaskDataRef.set(metricsData);
+ subTaskDataRef.set(CollectRep.MetricsData.newBuilder(metricsData));
} else {
if (metricsData.getValuesCount() >= 1) {
- CollectRep.MetricsData.Builder dataBuilder = CollectRep.MetricsData.newBuilder(subTaskDataRef.get());
- for (CollectRep.ValueRow valueRow : metricsData.getValuesList()) {
+ CollectRep.MetricsData.Builder dataBuilder = subTaskDataRef.get();
+ for (CollectRep.ValueRow valueRow : metricsData.getValues()) {
if (valueRow.getColumnsCount() == dataBuilder.getFieldsCount()) {
- dataBuilder.addValues(valueRow);
+ dataBuilder.addValueRow(valueRow);
} else {
log.error("consume subTask data value not mapping filed");
}
}
- subTaskDataRef.set(dataBuilder.build());
+ subTaskDataRef.set(dataBuilder);
}
}
+ metricsData.close();
return index == 0;
}
}
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/message/ClusterMsg.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/message/ClusterMsg.java
index f0c8dc4480c..18181be994c 100644
--- a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/message/ClusterMsg.java
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/message/ClusterMsg.java
@@ -485,20 +485,10 @@ public interface MessageOrBuilder extends
* message content
*
*
- * string msg = 4;
+ * bytes msg = 4;
* @return The msg.
*/
- String getMsg();
- /**
- *
- * message content
- *
- *
- * string msg = 4;
- * @return The bytes for msg.
- */
- com.google.protobuf.ByteString
- getMsgBytes();
+ com.google.protobuf.ByteString getMsg();
}
/**
* Protobuf type {@code org.apache.hertzbeat.common.entity.message.Message}
@@ -516,7 +506,7 @@ private Message() {
identity_ = "";
direction_ = 0;
type_ = 0;
- msg_ = "";
+ msg_ = com.google.protobuf.ByteString.EMPTY;
}
@Override
@@ -568,9 +558,8 @@ private Message(
break;
}
case 34: {
- String s = input.readStringRequireUtf8();
- msg_ = s;
+ msg_ = input.readBytes();
break;
}
default: {
@@ -708,49 +697,18 @@ public String getIdentity() {
}
public static final int MSG_FIELD_NUMBER = 4;
- private volatile Object msg_;
+ private com.google.protobuf.ByteString msg_;
/**
*
* message content
*
*
- * string msg = 4;
+ * bytes msg = 4;
* @return The msg.
*/
@Override
- public String getMsg() {
- Object ref = msg_;
- if (ref instanceof String) {
- return (String) ref;
- } else {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- String s = bs.toStringUtf8();
- msg_ = s;
- return s;
- }
- }
- /**
- *
- * message content
- *
- *
- * string msg = 4;
- * @return The bytes for msg.
- */
- @Override
- public com.google.protobuf.ByteString
- getMsgBytes() {
- Object ref = msg_;
- if (ref instanceof String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (String) ref);
- msg_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
+ public com.google.protobuf.ByteString getMsg() {
+ return msg_;
}
private byte memoizedIsInitialized = -1;
@@ -776,8 +734,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
if (type_ != MessageType.HEARTBEAT.getNumber()) {
output.writeEnum(3, type_);
}
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) {
- com.google.protobuf.GeneratedMessageV3.writeString(output, 4, msg_);
+ if (!msg_.isEmpty()) {
+ output.writeBytes(4, msg_);
}
unknownFields.writeTo(output);
}
@@ -799,8 +757,9 @@ public int getSerializedSize() {
size += com.google.protobuf.CodedOutputStream
.computeEnumSize(3, type_);
}
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) {
- size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, msg_);
+ if (!msg_.isEmpty()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(4, msg_);
}
size += unknownFields.getSerializedSize();
memoizedSize = size;
@@ -981,7 +940,7 @@ public Builder clear() {
type_ = 0;
- msg_ = "";
+ msg_ = com.google.protobuf.ByteString.EMPTY;
return this;
}
@@ -1071,9 +1030,8 @@ public Builder mergeFrom(Message other) {
if (other.type_ != 0) {
setTypeValue(other.getTypeValue());
}
- if (!other.getMsg().isEmpty()) {
- msg_ = other.msg_;
- onChanged();
+ if (other.getMsg() != com.google.protobuf.ByteString.EMPTY) {
+ setMsg(other.getMsg());
}
this.mergeUnknownFields(other.unknownFields);
onChanged();
@@ -1348,59 +1306,29 @@ public Builder clearType() {
return this;
}
- private Object msg_ = "";
+ private com.google.protobuf.ByteString msg_ = com.google.protobuf.ByteString.EMPTY;
/**
*
* message content
*
*
- * string msg = 4;
+ * bytes msg = 4;
* @return The msg.
*/
- public String getMsg() {
- Object ref = msg_;
- if (!(ref instanceof String)) {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- String s = bs.toStringUtf8();
- msg_ = s;
- return s;
- } else {
- return (String) ref;
- }
- }
- /**
- *
- * message content
- *
- *
- * string msg = 4;
- * @return The bytes for msg.
- */
- public com.google.protobuf.ByteString
- getMsgBytes() {
- Object ref = msg_;
- if (ref instanceof String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (String) ref);
- msg_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
+ @Override
+ public com.google.protobuf.ByteString getMsg() {
+ return msg_;
}
/**
*
* message content
*
*
- * string msg = 4;
+ * bytes msg = 4;
* @param value The msg to set.
* @return This builder for chaining.
*/
- public Builder setMsg(
- String value) {
+ public Builder setMsg(com.google.protobuf.ByteString value) {
if (value == null) {
throw new NullPointerException();
}
@@ -1414,7 +1342,7 @@ public Builder setMsg(
* message content
*
*
- * string msg = 4;
+ * bytes msg = 4;
* @return This builder for chaining.
*/
public Builder clearMsg() {
@@ -1423,26 +1351,6 @@ public Builder clearMsg() {
onChanged();
return this;
}
- /**
- *
- * message content
- *
- *
- * string msg = 4;
- * @param value The bytes for msg to set.
- * @return This builder for chaining.
- */
- public Builder setMsgBytes(
- com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
- }
- checkByteStringIsUtf8(value);
-
- msg_ = value;
- onChanged();
- return this;
- }
@Override
public final Builder setUnknownFields(
final com.google.protobuf.UnknownFieldSet unknownFields) {
@@ -1516,7 +1424,7 @@ public Message getDefaultInstanceForType() {
"pache.hertzbeat.common.entity.message.Di" +
"rection\022E\n\004type\030\003 \001(\01627.org.apache.hertz" +
"beat.common.entity.message.MessageType\022\013" +
- "\n\003msg\030\004 \001(\t*\363\001\n\013MessageType\022\r\n\tHEARTBEAT" +
+ "\n\003msg\030\004 \001(\014*\363\001\n\013MessageType\022\r\n\tHEARTBEAT" +
"\020\000\022\r\n\tGO_ONLINE\020\001\022\016\n\nGO_OFFLINE\020\002\022\014\n\010GO_" +
"CLOSE\020\003\022\025\n\021ISSUE_CYCLIC_TASK\020\004\022\026\n\022DELETE" +
"_CYCLIC_TASK\020\005\022\027\n\023ISSUE_ONE_TIME_TASK\020\006\022" +
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/message/CollectRep.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/message/CollectRep.java
index 8b0ab91a27a..cc36bbcbfd7 100644
--- a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/message/CollectRep.java
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/message/CollectRep.java
@@ -17,151 +17,84 @@
* under the License.
*/
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: collect_rep.proto
-
package org.apache.hertzbeat.common.entity.message;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.nio.channels.Channels;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.stream.Collectors;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.arrow.vector.ipc.ArrowStreamWriter;
+import org.apache.arrow.vector.table.ArrowTable;
+import org.apache.arrow.vector.table.Row;
+import org.apache.hertzbeat.common.constants.MetricDataConstants;
+import org.apache.hertzbeat.common.entity.arrow.RowWrapper;
+
@SuppressWarnings("all")
+@Slf4j
public final class CollectRep {
private CollectRep() {}
- public static void registerAllExtensions(
- com.google.protobuf.ExtensionRegistryLite registry) {
- }
- public static void registerAllExtensions(
- com.google.protobuf.ExtensionRegistry registry) {
- registerAllExtensions(
- (com.google.protobuf.ExtensionRegistryLite) registry);
- }
/**
- * Protobuf enum {@code org.apache.hertzbeat.common.entity.message.Code}
+ * Collect response status code enum
*/
- public enum Code
- implements com.google.protobuf.ProtocolMessageEnum {
+ public enum Code {
/**
- *
* collect success
- *
- *
- * SUCCESS = 0;
*/
SUCCESS(0),
+
/**
- *
* collector not available
- *
- *
- * UN_AVAILABLE = 1;
*/
UN_AVAILABLE(1),
+
/**
- *
* peer network un reachable(icmp)
- *
- *
- * UN_REACHABLE = 2;
*/
UN_REACHABLE(2),
+
/**
- *
* peer network server un connectable(tcp,udp...)
- *
- *
- * UN_CONNECTABLE = 3;
*/
UN_CONNECTABLE(3),
+
/**
- *
* collect metrics data failed(http,ssh,snmp...)
- *
- *
- * FAIL = 4;
*/
FAIL(4),
+
/**
- *
* collect metrics data timeout
- *
- *
- * TIMEOUT = 5;
*/
TIMEOUT(5),
- UNRECOGNIZED(-1),
- ;
/**
- *
- * collect success
- *
- *
- * SUCCESS = 0;
- */
- public static final int SUCCESS_VALUE = 0;
- /**
- *
- * collector not available
- *
- *
- * UN_AVAILABLE = 1;
- */
- public static final int UN_AVAILABLE_VALUE = 1;
- /**
- *
- * peer network un reachable(icmp)
- *
- *
- * UN_REACHABLE = 2;
- */
- public static final int UN_REACHABLE_VALUE = 2;
- /**
- *
- * peer network server un connectable(tcp,udp...)
- *
- *
- * UN_CONNECTABLE = 3;
- */
- public static final int UN_CONNECTABLE_VALUE = 3;
- /**
- *
- * collect metrics data failed(http,ssh,snmp...)
- *
- *
- * FAIL = 4;
- */
- public static final int FAIL_VALUE = 4;
- /**
- *
- * collect metrics data timeout
- *
- *
- * TIMEOUT = 5;
+ * unrecognized collect response code
*/
- public static final int TIMEOUT_VALUE = 5;
+ UNRECOGNIZED(-1);
+
+ private final int value;
+ Code(int value) {
+ this.value = value;
+ }
- public final int getNumber() {
+ public int getNumber() {
if (this == UNRECOGNIZED) {
- throw new java.lang.IllegalArgumentException(
- "Can't get the number of an unknown enum value.");
+ throw new IllegalArgumentException("Can't get the number of an unknown enum value.");
}
return value;
}
- /**
- * @param value The numeric wire value of the corresponding enum entry.
- * @return The enum associated with the given numeric wire value.
- * @deprecated Use {@link #forNumber(int)} instead.
- */
- @java.lang.Deprecated
- public static Code valueOf(int value) {
- return forNumber(value);
- }
-
- /**
- * @param value The numeric wire value of the corresponding enum entry.
- * @return The enum associated with the given numeric wire value.
- */
public static Code forNumber(int value) {
switch (value) {
case 0: return SUCCESS;
@@ -173,4258 +106,587 @@ public static Code forNumber(int value) {
default: return null;
}
}
-
- public static com.google.protobuf.Internal.EnumLiteMap
- internalGetValueMap() {
- return internalValueMap;
- }
- private static final com.google.protobuf.Internal.EnumLiteMap<
- Code> internalValueMap =
- new com.google.protobuf.Internal.EnumLiteMap() {
- public Code findValueByNumber(int number) {
- return Code.forNumber(number);
- }
- };
-
- public final com.google.protobuf.Descriptors.EnumValueDescriptor
- getValueDescriptor() {
- if (this == UNRECOGNIZED) {
- throw new java.lang.IllegalStateException(
- "Can't get the descriptor of an unrecognized enum value.");
- }
- return getDescriptor().getValues().get(ordinal());
- }
- public final com.google.protobuf.Descriptors.EnumDescriptor
- getDescriptorForType() {
- return getDescriptor();
- }
- public static final com.google.protobuf.Descriptors.EnumDescriptor
- getDescriptor() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.getDescriptor().getEnumTypes().get(0);
- }
-
- private static final Code[] VALUES = values();
-
- public static Code valueOf(
- com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
- if (desc.getType() != getDescriptor()) {
- throw new java.lang.IllegalArgumentException(
- "EnumValueDescriptor is not for this type.");
- }
- if (desc.getIndex() == -1) {
- return UNRECOGNIZED;
- }
- return VALUES[desc.getIndex()];
- }
-
- private final int value;
-
- private Code(int value) {
- this.value = value;
- }
-
- // @@protoc_insertion_point(enum_scope:org.apache.hertzbeat.common.entity.message.Code)
}
- public interface MetricsDataOrBuilder extends
- // @@protoc_insertion_point(interface_extends:org.apache.hertzbeat.common.entity.message.MetricsData)
- com.google.protobuf.MessageOrBuilder {
-
- /**
- *
- * monitoring id
- *
- *
- * uint64 id = 1;
- * @return The id.
- */
- long getId();
-
- /**
- *
- * tenant id
- *
- *
- * uint64 tenantId = 2;
- * @return The tenantId.
- */
- long getTenantId();
-
- /**
- *
- * monitoring app eg: linux | mysql | jvm
- *
- *
- * string app = 3;
- * @return The app.
- */
- java.lang.String getApp();
- /**
- *
- * monitoring app eg: linux | mysql | jvm
- *
- *
- * string app = 3;
- * @return The bytes for app.
- */
- com.google.protobuf.ByteString
- getAppBytes();
-
- /**
- *
- * monitoring metrics eg: cpu | memory | health
- *
- *
- * string metrics = 4;
- * @return The metrics.
- */
- java.lang.String getMetrics();
- /**
- *
- * monitoring metrics eg: cpu | memory | health
- *
- *
- * string metrics = 4;
- * @return The bytes for metrics.
- */
- com.google.protobuf.ByteString
- getMetricsBytes();
-
- /**
- *
- * monitoring collect priority >=0
- *
- *
- * uint32 priority = 5;
- * @return The priority.
- */
- int getPriority();
-
- /**
- *
- * collect timestamp
- *
- *
- * uint64 time = 6;
- * @return The time.
- */
- long getTime();
-
- /**
- *
- * collect response code
- *
- *
- * .org.apache.hertzbeat.common.entity.message.Code code = 7;
- * @return The enum numeric value on the wire for code.
- */
- int getCodeValue();
- /**
- *
- * collect response code
- *
- *
- * .org.apache.hertzbeat.common.entity.message.Code code = 7;
- * @return The code.
- */
- org.apache.hertzbeat.common.entity.message.CollectRep.Code getCode();
-
- /**
- *
- * collect response error message
- *
- *
- * string msg = 8;
- * @return The msg.
- */
- java.lang.String getMsg();
- /**
- *
- * collect response error message
- *
- *
- * string msg = 8;
- * @return The bytes for msg.
- */
- com.google.protobuf.ByteString
- getMsgBytes();
-
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- java.util.List
- getFieldsList();
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- org.apache.hertzbeat.common.entity.message.CollectRep.Field getFields(int index);
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- int getFieldsCount();
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- java.util.List extends org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder>
- getFieldsOrBuilderList();
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder getFieldsOrBuilder(
- int index);
-
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- java.util.List
- getValuesList();
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow getValues(int index);
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- int getValuesCount();
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- java.util.List extends org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder>
- getValuesOrBuilderList();
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder getValuesOrBuilder(
- int index);
- }
/**
- * Protobuf type {@code org.apache.hertzbeat.common.entity.message.MetricsData}
+ * Metrics data collect response entity
*/
- public static final class MetricsData extends
- com.google.protobuf.GeneratedMessageV3 implements
- // @@protoc_insertion_point(message_implements:org.apache.hertzbeat.common.entity.message.MetricsData)
- MetricsDataOrBuilder {
- private static final long serialVersionUID = 0L;
- // Use MetricsData.newBuilder() to construct.
- private MetricsData(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
- super(builder);
- }
- private MetricsData() {
- app_ = "";
- metrics_ = "";
- code_ = 0;
- msg_ = "";
- fields_ = java.util.Collections.emptyList();
- values_ = java.util.Collections.emptyList();
- }
-
- @java.lang.Override
- @SuppressWarnings({"unused"})
- protected java.lang.Object newInstance(
- UnusedPrivateParameter unused) {
- return new MetricsData();
- }
-
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
- private MetricsData(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- this();
- if (extensionRegistry == null) {
- throw new java.lang.NullPointerException();
- }
- int mutable_bitField0_ = 0;
- com.google.protobuf.UnknownFieldSet.Builder unknownFields =
- com.google.protobuf.UnknownFieldSet.newBuilder();
- try {
- boolean done = false;
- while (!done) {
- int tag = input.readTag();
- switch (tag) {
- case 0:
- done = true;
- break;
- case 8: {
-
- id_ = input.readUInt64();
- break;
- }
- case 16: {
-
- tenantId_ = input.readUInt64();
- break;
- }
- case 26: {
- java.lang.String s = input.readStringRequireUtf8();
-
- app_ = s;
- break;
- }
- case 34: {
- java.lang.String s = input.readStringRequireUtf8();
-
- metrics_ = s;
- break;
- }
- case 40: {
-
- priority_ = input.readUInt32();
- break;
- }
- case 48: {
-
- time_ = input.readUInt64();
- break;
- }
- case 56: {
- int rawValue = input.readEnum();
-
- code_ = rawValue;
- break;
- }
- case 66: {
- java.lang.String s = input.readStringRequireUtf8();
-
- msg_ = s;
- break;
- }
- case 74: {
- if (!((mutable_bitField0_ & 0x00000001) != 0)) {
- fields_ = new java.util.ArrayList();
- mutable_bitField0_ |= 0x00000001;
- }
- fields_.add(
- input.readMessage(org.apache.hertzbeat.common.entity.message.CollectRep.Field.parser(), extensionRegistry));
- break;
- }
- case 82: {
- if (!((mutable_bitField0_ & 0x00000002) != 0)) {
- values_ = new java.util.ArrayList();
- mutable_bitField0_ |= 0x00000002;
- }
- values_.add(
- input.readMessage(org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.parser(), extensionRegistry));
- break;
- }
- default: {
- if (!parseUnknownField(
- input, unknownFields, extensionRegistry, tag)) {
- done = true;
- }
- break;
- }
- }
- }
- } catch (com.google.protobuf.InvalidProtocolBufferException e) {
- throw e.setUnfinishedMessage(this);
- } catch (com.google.protobuf.UninitializedMessageException e) {
- throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
- } catch (java.io.IOException e) {
- throw new com.google.protobuf.InvalidProtocolBufferException(
- e).setUnfinishedMessage(this);
- } finally {
- if (((mutable_bitField0_ & 0x00000001) != 0)) {
- fields_ = java.util.Collections.unmodifiableList(fields_);
- }
- if (((mutable_bitField0_ & 0x00000002) != 0)) {
- values_ = java.util.Collections.unmodifiableList(values_);
- }
- this.unknownFields = unknownFields.build();
- makeExtensionsImmutable();
- }
- }
- public static final com.google.protobuf.Descriptors.Descriptor
- getDescriptor() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_descriptor;
- }
-
- @java.lang.Override
- protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
- internalGetFieldAccessorTable() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_fieldAccessorTable
- .ensureFieldAccessorsInitialized(
- org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData.class, org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData.Builder.class);
- }
-
- public static final int ID_FIELD_NUMBER = 1;
- private long id_;
- /**
- *
- * monitoring id
- *
- *
- * uint64 id = 1;
- * @return The id.
- */
- @java.lang.Override
- public long getId() {
- return id_;
- }
-
- public static final int TENANTID_FIELD_NUMBER = 2;
- private long tenantId_;
- /**
- *
- * tenant id
- *
- *
- * uint64 tenantId = 2;
- * @return The tenantId.
- */
- @java.lang.Override
- public long getTenantId() {
- return tenantId_;
- }
-
- public static final int APP_FIELD_NUMBER = 3;
- private volatile java.lang.Object app_;
- /**
- *
- * monitoring app eg: linux | mysql | jvm
- *
- *
- * string app = 3;
- * @return The app.
- */
- @java.lang.Override
- public java.lang.String getApp() {
- java.lang.Object ref = app_;
- if (ref instanceof java.lang.String) {
- return (java.lang.String) ref;
- } else {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- app_ = s;
- return s;
- }
- }
- /**
- *
- * monitoring app eg: linux | mysql | jvm
- *
- *
- * string app = 3;
- * @return The bytes for app.
- */
- @java.lang.Override
- public com.google.protobuf.ByteString
- getAppBytes() {
- java.lang.Object ref = app_;
- if (ref instanceof java.lang.String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- app_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
- }
-
- public static final int METRICS_FIELD_NUMBER = 4;
- private volatile java.lang.Object metrics_;
- /**
- *
- * monitoring metrics eg: cpu | memory | health
- *
- *
- * string metrics = 4;
- * @return The metrics.
- */
- @java.lang.Override
- public java.lang.String getMetrics() {
- java.lang.Object ref = metrics_;
- if (ref instanceof java.lang.String) {
- return (java.lang.String) ref;
- } else {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- metrics_ = s;
- return s;
- }
- }
- /**
- *
- * monitoring metrics eg: cpu | memory | health
- *
- *
- * string metrics = 4;
- * @return The bytes for metrics.
- */
- @java.lang.Override
- public com.google.protobuf.ByteString
- getMetricsBytes() {
- java.lang.Object ref = metrics_;
- if (ref instanceof java.lang.String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- metrics_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
- }
-
- public static final int PRIORITY_FIELD_NUMBER = 5;
- private int priority_;
- /**
- *
- * monitoring collect priority >=0
- *
- *
- * uint32 priority = 5;
- * @return The priority.
- */
- @java.lang.Override
- public int getPriority() {
- return priority_;
- }
-
- public static final int TIME_FIELD_NUMBER = 6;
- private long time_;
- /**
- *
- * collect timestamp
- *
- *
- * uint64 time = 6;
- * @return The time.
- */
- @java.lang.Override
- public long getTime() {
- return time_;
- }
-
- public static final int CODE_FIELD_NUMBER = 7;
- private int code_;
- /**
- *
- * collect response code
- *
- *
- * .org.apache.hertzbeat.common.entity.message.Code code = 7;
- * @return The enum numeric value on the wire for code.
- */
- @java.lang.Override public int getCodeValue() {
- return code_;
- }
- /**
- *
- * collect response code
- *
- *
- * .org.apache.hertzbeat.common.entity.message.Code code = 7;
- * @return The code.
- */
- @java.lang.Override public org.apache.hertzbeat.common.entity.message.CollectRep.Code getCode() {
- @SuppressWarnings("deprecation")
- org.apache.hertzbeat.common.entity.message.CollectRep.Code result = org.apache.hertzbeat.common.entity.message.CollectRep.Code.valueOf(code_);
- return result == null ? org.apache.hertzbeat.common.entity.message.CollectRep.Code.UNRECOGNIZED : result;
- }
-
- public static final int MSG_FIELD_NUMBER = 8;
- private volatile java.lang.Object msg_;
- /**
- *
- * collect response error message
- *
- *
- * string msg = 8;
- * @return The msg.
- */
- @java.lang.Override
- public java.lang.String getMsg() {
- java.lang.Object ref = msg_;
- if (ref instanceof java.lang.String) {
- return (java.lang.String) ref;
- } else {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- msg_ = s;
- return s;
- }
- }
- /**
- *
- * collect response error message
- *
- *
- * string msg = 8;
- * @return The bytes for msg.
- */
- @java.lang.Override
- public com.google.protobuf.ByteString
- getMsgBytes() {
- java.lang.Object ref = msg_;
- if (ref instanceof java.lang.String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- msg_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
- }
-
- public static final int FIELDS_FIELD_NUMBER = 9;
- private java.util.List fields_;
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- @java.lang.Override
- public java.util.List getFieldsList() {
- return fields_;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- @java.lang.Override
- public java.util.List extends org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder>
- getFieldsOrBuilderList() {
- return fields_;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- @java.lang.Override
- public int getFieldsCount() {
- return fields_.size();
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.Field getFields(int index) {
- return fields_.get(index);
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder getFieldsOrBuilder(
- int index) {
- return fields_.get(index);
- }
+ public static class MetricsData implements AutoCloseable {
- public static final int VALUES_FIELD_NUMBER = 10;
- private java.util.List values_;
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- @java.lang.Override
- public java.util.List getValuesList() {
- return values_;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- @java.lang.Override
- public java.util.List extends org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder>
- getValuesOrBuilderList() {
- return values_;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- @java.lang.Override
- public int getValuesCount() {
- return values_.size();
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow getValues(int index) {
- return values_.get(index);
- }
/**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
+ * arrow collect metrics data table
*/
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder getValuesOrBuilder(
- int index) {
- return values_.get(index);
- }
-
- private byte memoizedIsInitialized = -1;
- @java.lang.Override
- public final boolean isInitialized() {
- byte isInitialized = memoizedIsInitialized;
- if (isInitialized == 1) return true;
- if (isInitialized == 0) return false;
+ private ArrowTable table;
- memoizedIsInitialized = 1;
- return true;
+ public MetricsData(ArrowTable table) {
+ this.table = table;
}
-
- @java.lang.Override
- public void writeTo(com.google.protobuf.CodedOutputStream output)
- throws java.io.IOException {
- if (id_ != 0L) {
- output.writeUInt64(1, id_);
- }
- if (tenantId_ != 0L) {
- output.writeUInt64(2, tenantId_);
- }
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(app_)) {
- com.google.protobuf.GeneratedMessageV3.writeString(output, 3, app_);
- }
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(metrics_)) {
- com.google.protobuf.GeneratedMessageV3.writeString(output, 4, metrics_);
- }
- if (priority_ != 0) {
- output.writeUInt32(5, priority_);
- }
- if (time_ != 0L) {
- output.writeUInt64(6, time_);
- }
- if (code_ != org.apache.hertzbeat.common.entity.message.CollectRep.Code.SUCCESS.getNumber()) {
- output.writeEnum(7, code_);
- }
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) {
- com.google.protobuf.GeneratedMessageV3.writeString(output, 8, msg_);
- }
- for (int i = 0; i < fields_.size(); i++) {
- output.writeMessage(9, fields_.get(i));
- }
- for (int i = 0; i < values_.size(); i++) {
- output.writeMessage(10, values_.get(i));
- }
- unknownFields.writeTo(output);
+
+ public MetricsData(VectorSchemaRoot vectorSchemaRoot) {
+ this.table = new ArrowTable(vectorSchemaRoot);
}
- @java.lang.Override
- public int getSerializedSize() {
- int size = memoizedSize;
- if (size != -1) return size;
-
- size = 0;
- if (id_ != 0L) {
- size += com.google.protobuf.CodedOutputStream
- .computeUInt64Size(1, id_);
- }
- if (tenantId_ != 0L) {
- size += com.google.protobuf.CodedOutputStream
- .computeUInt64Size(2, tenantId_);
- }
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(app_)) {
- size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, app_);
- }
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(metrics_)) {
- size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, metrics_);
- }
- if (priority_ != 0) {
- size += com.google.protobuf.CodedOutputStream
- .computeUInt32Size(5, priority_);
- }
- if (time_ != 0L) {
- size += com.google.protobuf.CodedOutputStream
- .computeUInt64Size(6, time_);
- }
- if (code_ != org.apache.hertzbeat.common.entity.message.CollectRep.Code.SUCCESS.getNumber()) {
- size += com.google.protobuf.CodedOutputStream
- .computeEnumSize(7, code_);
- }
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(msg_)) {
- size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, msg_);
- }
- for (int i = 0; i < fields_.size(); i++) {
- size += com.google.protobuf.CodedOutputStream
- .computeMessageSize(9, fields_.get(i));
- }
- for (int i = 0; i < values_.size(); i++) {
- size += com.google.protobuf.CodedOutputStream
- .computeMessageSize(10, values_.get(i));
- }
- size += unknownFields.getSerializedSize();
- memoizedSize = size;
- return size;
- }
-
- @java.lang.Override
- public boolean equals(final java.lang.Object obj) {
- if (obj == this) {
- return true;
- }
- if (!(obj instanceof org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData)) {
- return super.equals(obj);
- }
- org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData other = (org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData) obj;
-
- if (getId()
- != other.getId()) return false;
- if (getTenantId()
- != other.getTenantId()) return false;
- if (!getApp()
- .equals(other.getApp())) return false;
- if (!getMetrics()
- .equals(other.getMetrics())) return false;
- if (getPriority()
- != other.getPriority()) return false;
- if (getTime()
- != other.getTime()) return false;
- if (code_ != other.code_) return false;
- if (!getMsg()
- .equals(other.getMsg())) return false;
- if (!getFieldsList()
- .equals(other.getFieldsList())) return false;
- if (!getValuesList()
- .equals(other.getValuesList())) return false;
- if (!unknownFields.equals(other.unknownFields)) return false;
- return true;
- }
-
- @java.lang.Override
- public int hashCode() {
- if (memoizedHashCode != 0) {
- return memoizedHashCode;
- }
- int hash = 41;
- hash = (19 * hash) + getDescriptor().hashCode();
- hash = (37 * hash) + ID_FIELD_NUMBER;
- hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
- getId());
- hash = (37 * hash) + TENANTID_FIELD_NUMBER;
- hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
- getTenantId());
- hash = (37 * hash) + APP_FIELD_NUMBER;
- hash = (53 * hash) + getApp().hashCode();
- hash = (37 * hash) + METRICS_FIELD_NUMBER;
- hash = (53 * hash) + getMetrics().hashCode();
- hash = (37 * hash) + PRIORITY_FIELD_NUMBER;
- hash = (53 * hash) + getPriority();
- hash = (37 * hash) + TIME_FIELD_NUMBER;
- hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
- getTime());
- hash = (37 * hash) + CODE_FIELD_NUMBER;
- hash = (53 * hash) + code_;
- hash = (37 * hash) + MSG_FIELD_NUMBER;
- hash = (53 * hash) + getMsg().hashCode();
- if (getFieldsCount() > 0) {
- hash = (37 * hash) + FIELDS_FIELD_NUMBER;
- hash = (53 * hash) + getFieldsList().hashCode();
- }
- if (getValuesCount() > 0) {
- hash = (37 * hash) + VALUES_FIELD_NUMBER;
- hash = (53 * hash) + getValuesList().hashCode();
- }
- hash = (29 * hash) + unknownFields.hashCode();
- memoizedHashCode = hash;
- return hash;
- }
-
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(
- java.nio.ByteBuffer data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(
- java.nio.ByteBuffer data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(
- com.google.protobuf.ByteString data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(
- com.google.protobuf.ByteString data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(byte[] data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(
- byte[] data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(java.io.InputStream input)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseDelimitedFrom(java.io.InputStream input)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseDelimitedWithIOException(PARSER, input);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseDelimitedFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(
- com.google.protobuf.CodedInputStream input)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parseFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input, extensionRegistry);
- }
-
- @java.lang.Override
- public Builder newBuilderForType() { return newBuilder(); }
public static Builder newBuilder() {
- return DEFAULT_INSTANCE.toBuilder();
- }
- public static Builder newBuilder(org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData prototype) {
- return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
- }
- @java.lang.Override
- public Builder toBuilder() {
- return this == DEFAULT_INSTANCE
- ? new Builder() : new Builder().mergeFrom(this);
- }
-
- @java.lang.Override
- protected Builder newBuilderForType(
- com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
- Builder builder = new Builder(parent);
+ return new Builder();
+ }
+
+ public static Builder newBuilder(MetricsData metricsData) {
+ Builder builder = new Builder();
+ // get metadata from metricsData
+ Map metadata = metricsData.getMetadata();
+ builder.setId(Long.parseLong(metadata.getOrDefault(MetricDataConstants.MONITOR_ID, "0")))
+ .setTenantId(Long.parseLong(metadata.getOrDefault(MetricDataConstants.TENANT_ID, "0")))
+ .setApp(metadata.getOrDefault(MetricDataConstants.APP, ""))
+ .setMetrics(metadata.getOrDefault(MetricDataConstants.METRICS, ""))
+ .setPriority(Integer.parseInt(metadata.getOrDefault(MetricDataConstants.PRIORITY, "0")))
+ .setTime(Long.parseLong(metadata.getOrDefault(MetricDataConstants.TIME, "0")))
+ .setCode(Code.forNumber(Integer.parseInt(metadata.getOrDefault(MetricDataConstants.CODE, "0"))))
+ .setMsg(metadata.getOrDefault(MetricDataConstants.MSG, ""));
+
+ metricsData.getFields().forEach(builder::addField);
+ metricsData.getValues().forEach(builder::addValueRow);
return builder;
}
- /**
- * Protobuf type {@code org.apache.hertzbeat.common.entity.message.MetricsData}
- */
- public static final class Builder extends
- com.google.protobuf.GeneratedMessageV3.Builder implements
- // @@protoc_insertion_point(builder_implements:org.apache.hertzbeat.common.entity.message.MetricsData)
- org.apache.hertzbeat.common.entity.message.CollectRep.MetricsDataOrBuilder {
- public static final com.google.protobuf.Descriptors.Descriptor
- getDescriptor() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_descriptor;
- }
-
- @java.lang.Override
- protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
- internalGetFieldAccessorTable() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_fieldAccessorTable
- .ensureFieldAccessorsInitialized(
- org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData.class, org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData.Builder.class);
- }
-
- // Construct using org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData.newBuilder()
- private Builder() {
- maybeForceBuilderInitialization();
- }
-
- private Builder(
- com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
- super(parent);
- maybeForceBuilderInitialization();
- }
- private void maybeForceBuilderInitialization() {
- if (com.google.protobuf.GeneratedMessageV3
- .alwaysUseFieldBuilders) {
- getFieldsFieldBuilder();
- getValuesFieldBuilder();
- }
- }
- @java.lang.Override
- public Builder clear() {
- super.clear();
- id_ = 0L;
-
- tenantId_ = 0L;
-
- app_ = "";
-
- metrics_ = "";
-
- priority_ = 0;
-
- time_ = 0L;
-
- code_ = 0;
-
- msg_ = "";
-
- if (fieldsBuilder_ == null) {
- fields_ = java.util.Collections.emptyList();
- bitField0_ = (bitField0_ & ~0x00000001);
- } else {
- fieldsBuilder_.clear();
- }
- if (valuesBuilder_ == null) {
- values_ = java.util.Collections.emptyList();
- bitField0_ = (bitField0_ & ~0x00000002);
- } else {
- valuesBuilder_.clear();
- }
- return this;
- }
-
- @java.lang.Override
- public com.google.protobuf.Descriptors.Descriptor
- getDescriptorForType() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_descriptor;
- }
-
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData getDefaultInstanceForType() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData.getDefaultInstance();
- }
-
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData build() {
- org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData result = buildPartial();
- if (!result.isInitialized()) {
- throw newUninitializedMessageException(result);
- }
- return result;
- }
-
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData buildPartial() {
- org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData result = new org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData(this);
- int from_bitField0_ = bitField0_;
- result.id_ = id_;
- result.tenantId_ = tenantId_;
- result.app_ = app_;
- result.metrics_ = metrics_;
- result.priority_ = priority_;
- result.time_ = time_;
- result.code_ = code_;
- result.msg_ = msg_;
- if (fieldsBuilder_ == null) {
- if (((bitField0_ & 0x00000001) != 0)) {
- fields_ = java.util.Collections.unmodifiableList(fields_);
- bitField0_ = (bitField0_ & ~0x00000001);
- }
- result.fields_ = fields_;
- } else {
- result.fields_ = fieldsBuilder_.build();
- }
- if (valuesBuilder_ == null) {
- if (((bitField0_ & 0x00000002) != 0)) {
- values_ = java.util.Collections.unmodifiableList(values_);
- bitField0_ = (bitField0_ & ~0x00000002);
- }
- result.values_ = values_;
- } else {
- result.values_ = valuesBuilder_.build();
- }
- onBuilt();
- return result;
- }
-
- @java.lang.Override
- public Builder clone() {
- return super.clone();
- }
- @java.lang.Override
- public Builder setField(
- com.google.protobuf.Descriptors.FieldDescriptor field,
- java.lang.Object value) {
- return super.setField(field, value);
- }
- @java.lang.Override
- public Builder clearField(
- com.google.protobuf.Descriptors.FieldDescriptor field) {
- return super.clearField(field);
- }
- @java.lang.Override
- public Builder clearOneof(
- com.google.protobuf.Descriptors.OneofDescriptor oneof) {
- return super.clearOneof(oneof);
- }
- @java.lang.Override
- public Builder setRepeatedField(
- com.google.protobuf.Descriptors.FieldDescriptor field,
- int index, java.lang.Object value) {
- return super.setRepeatedField(field, index, value);
- }
- @java.lang.Override
- public Builder addRepeatedField(
- com.google.protobuf.Descriptors.FieldDescriptor field,
- java.lang.Object value) {
- return super.addRepeatedField(field, value);
- }
- @java.lang.Override
- public Builder mergeFrom(com.google.protobuf.Message other) {
- if (other instanceof org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData) {
- return mergeFrom((org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData)other);
- } else {
- super.mergeFrom(other);
- return this;
- }
- }
-
- public Builder mergeFrom(org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData other) {
- if (other == org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData.getDefaultInstance()) return this;
- if (other.getId() != 0L) {
- setId(other.getId());
- }
- if (other.getTenantId() != 0L) {
- setTenantId(other.getTenantId());
- }
- if (!other.getApp().isEmpty()) {
- app_ = other.app_;
- onChanged();
- }
- if (!other.getMetrics().isEmpty()) {
- metrics_ = other.metrics_;
- onChanged();
- }
- if (other.getPriority() != 0) {
- setPriority(other.getPriority());
- }
- if (other.getTime() != 0L) {
- setTime(other.getTime());
- }
- if (other.code_ != 0) {
- setCodeValue(other.getCodeValue());
- }
- if (!other.getMsg().isEmpty()) {
- msg_ = other.msg_;
- onChanged();
- }
- if (fieldsBuilder_ == null) {
- if (!other.fields_.isEmpty()) {
- if (fields_.isEmpty()) {
- fields_ = other.fields_;
- bitField0_ = (bitField0_ & ~0x00000001);
- } else {
- ensureFieldsIsMutable();
- fields_.addAll(other.fields_);
- }
- onChanged();
- }
- } else {
- if (!other.fields_.isEmpty()) {
- if (fieldsBuilder_.isEmpty()) {
- fieldsBuilder_.dispose();
- fieldsBuilder_ = null;
- fields_ = other.fields_;
- bitField0_ = (bitField0_ & ~0x00000001);
- fieldsBuilder_ =
- com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
- getFieldsFieldBuilder() : null;
- } else {
- fieldsBuilder_.addAllMessages(other.fields_);
- }
- }
- }
- if (valuesBuilder_ == null) {
- if (!other.values_.isEmpty()) {
- if (values_.isEmpty()) {
- values_ = other.values_;
- bitField0_ = (bitField0_ & ~0x00000002);
- } else {
- ensureValuesIsMutable();
- values_.addAll(other.values_);
- }
- onChanged();
- }
- } else {
- if (!other.values_.isEmpty()) {
- if (valuesBuilder_.isEmpty()) {
- valuesBuilder_.dispose();
- valuesBuilder_ = null;
- values_ = other.values_;
- bitField0_ = (bitField0_ & ~0x00000002);
- valuesBuilder_ =
- com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
- getValuesFieldBuilder() : null;
- } else {
- valuesBuilder_.addAllMessages(other.values_);
- }
- }
- }
- this.mergeUnknownFields(other.unknownFields);
- onChanged();
- return this;
- }
-
- @java.lang.Override
- public final boolean isInitialized() {
- return true;
- }
-
- @java.lang.Override
- public Builder mergeFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData parsedMessage = null;
- try {
- parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
- } catch (com.google.protobuf.InvalidProtocolBufferException e) {
- parsedMessage = (org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData) e.getUnfinishedMessage();
- throw e.unwrapIOException();
- } finally {
- if (parsedMessage != null) {
- mergeFrom(parsedMessage);
- }
- }
- return this;
- }
- private int bitField0_;
-
- private long id_ ;
- /**
- *
- * monitoring id
- *
- *
- * uint64 id = 1;
- * @return The id.
- */
- @java.lang.Override
- public long getId() {
- return id_;
- }
- /**
- *
- * monitoring id
- *
- *
- * uint64 id = 1;
- * @param value The id to set.
- * @return This builder for chaining.
- */
- public Builder setId(long value) {
-
- id_ = value;
- onChanged();
- return this;
- }
- /**
- *
- * monitoring id
- *
- *
- * uint64 id = 1;
- * @return This builder for chaining.
- */
- public Builder clearId() {
-
- id_ = 0L;
- onChanged();
- return this;
- }
-
- private long tenantId_ ;
- /**
- *
- * tenant id
- *
- *
- * uint64 tenantId = 2;
- * @return The tenantId.
- */
- @java.lang.Override
- public long getTenantId() {
- return tenantId_;
- }
- /**
- *
- * tenant id
- *
- *
- * uint64 tenantId = 2;
- * @param value The tenantId to set.
- * @return This builder for chaining.
- */
- public Builder setTenantId(long value) {
-
- tenantId_ = value;
- onChanged();
- return this;
- }
- /**
- *
- * tenant id
- *
- *
- * uint64 tenantId = 2;
- * @return This builder for chaining.
- */
- public Builder clearTenantId() {
-
- tenantId_ = 0L;
- onChanged();
- return this;
- }
-
- private java.lang.Object app_ = "";
- /**
- *
- * monitoring app eg: linux | mysql | jvm
- *
- *
- * string app = 3;
- * @return The app.
- */
- public java.lang.String getApp() {
- java.lang.Object ref = app_;
- if (!(ref instanceof java.lang.String)) {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- app_ = s;
- return s;
- } else {
- return (java.lang.String) ref;
- }
- }
- /**
- *
- * monitoring app eg: linux | mysql | jvm
- *
- *
- * string app = 3;
- * @return The bytes for app.
- */
- public com.google.protobuf.ByteString
- getAppBytes() {
- java.lang.Object ref = app_;
- if (ref instanceof String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- app_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
- }
- /**
- *
- * monitoring app eg: linux | mysql | jvm
- *
- *
- * string app = 3;
- * @param value The app to set.
- * @return This builder for chaining.
- */
- public Builder setApp(
- java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
-
- app_ = value;
- onChanged();
- return this;
- }
- /**
- *
- * monitoring app eg: linux | mysql | jvm
- *
- *
- * string app = 3;
- * @return This builder for chaining.
- */
- public Builder clearApp() {
-
- app_ = getDefaultInstance().getApp();
- onChanged();
- return this;
- }
- /**
- *
- * monitoring app eg: linux | mysql | jvm
- *
- *
- * string app = 3;
- * @param value The bytes for app to set.
- * @return This builder for chaining.
- */
- public Builder setAppBytes(
- com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
- }
- checkByteStringIsUtf8(value);
-
- app_ = value;
- onChanged();
- return this;
- }
-
- private java.lang.Object metrics_ = "";
- /**
- *
- * monitoring metrics eg: cpu | memory | health
- *
- *
- * string metrics = 4;
- * @return The metrics.
- */
- public java.lang.String getMetrics() {
- java.lang.Object ref = metrics_;
- if (!(ref instanceof java.lang.String)) {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- metrics_ = s;
- return s;
- } else {
- return (java.lang.String) ref;
- }
- }
- /**
- *
- * monitoring metrics eg: cpu | memory | health
- *
- *
- * string metrics = 4;
- * @return The bytes for metrics.
- */
- public com.google.protobuf.ByteString
- getMetricsBytes() {
- java.lang.Object ref = metrics_;
- if (ref instanceof String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- metrics_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
- }
- /**
- *
- * monitoring metrics eg: cpu | memory | health
- *
- *
- * string metrics = 4;
- * @param value The metrics to set.
- * @return This builder for chaining.
- */
- public Builder setMetrics(
- java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
-
- metrics_ = value;
- onChanged();
- return this;
- }
- /**
- *
- * monitoring metrics eg: cpu | memory | health
- *
- *
- * string metrics = 4;
- * @return This builder for chaining.
- */
- public Builder clearMetrics() {
-
- metrics_ = getDefaultInstance().getMetrics();
- onChanged();
- return this;
- }
- /**
- *
- * monitoring metrics eg: cpu | memory | health
- *
- *
- * string metrics = 4;
- * @param value The bytes for metrics to set.
- * @return This builder for chaining.
- */
- public Builder setMetricsBytes(
- com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
- }
- checkByteStringIsUtf8(value);
-
- metrics_ = value;
- onChanged();
- return this;
- }
-
- private int priority_ ;
- /**
- *
- * monitoring collect priority >=0
- *
- *
- * uint32 priority = 5;
- * @return The priority.
- */
- @java.lang.Override
- public int getPriority() {
- return priority_;
- }
- /**
- *
- * monitoring collect priority >=0
- *
- *
- * uint32 priority = 5;
- * @param value The priority to set.
- * @return This builder for chaining.
- */
- public Builder setPriority(int value) {
-
- priority_ = value;
- onChanged();
- return this;
- }
- /**
- *
- * monitoring collect priority >=0
- *
- *
- * uint32 priority = 5;
- * @return This builder for chaining.
- */
- public Builder clearPriority() {
-
- priority_ = 0;
- onChanged();
- return this;
- }
-
- private long time_ ;
- /**
- *
- * collect timestamp
- *
- *
- * uint64 time = 6;
- * @return The time.
- */
- @java.lang.Override
- public long getTime() {
- return time_;
- }
- /**
- *
- * collect timestamp
- *
- *
- * uint64 time = 6;
- * @param value The time to set.
- * @return This builder for chaining.
- */
- public Builder setTime(long value) {
-
- time_ = value;
- onChanged();
- return this;
- }
- /**
- *
- * collect timestamp
- *
- *
- * uint64 time = 6;
- * @return This builder for chaining.
- */
- public Builder clearTime() {
-
- time_ = 0L;
- onChanged();
- return this;
- }
-
- private int code_ = 0;
- /**
- *
- * collect response code
- *
- *
- * .org.apache.hertzbeat.common.entity.message.Code code = 7;
- * @return The enum numeric value on the wire for code.
- */
- @java.lang.Override public int getCodeValue() {
- return code_;
- }
- /**
- *
- * collect response code
- *
- *
- * .org.apache.hertzbeat.common.entity.message.Code code = 7;
- * @param value The enum numeric value on the wire for code to set.
- * @return This builder for chaining.
- */
- public Builder setCodeValue(int value) {
-
- code_ = value;
- onChanged();
- return this;
- }
- /**
- *
- * collect response code
- *
- *
- * .org.apache.hertzbeat.common.entity.message.Code code = 7;
- * @return The code.
- */
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.Code getCode() {
- @SuppressWarnings("deprecation")
- org.apache.hertzbeat.common.entity.message.CollectRep.Code result = org.apache.hertzbeat.common.entity.message.CollectRep.Code.valueOf(code_);
- return result == null ? org.apache.hertzbeat.common.entity.message.CollectRep.Code.UNRECOGNIZED : result;
- }
- /**
- *
- * collect response code
- *
- *
- * .org.apache.hertzbeat.common.entity.message.Code code = 7;
- * @param value The code to set.
- * @return This builder for chaining.
- */
- public Builder setCode(org.apache.hertzbeat.common.entity.message.CollectRep.Code value) {
- if (value == null) {
- throw new NullPointerException();
- }
-
- code_ = value.getNumber();
- onChanged();
- return this;
- }
- /**
- *
- * collect response code
- *
- *
- * .org.apache.hertzbeat.common.entity.message.Code code = 7;
- * @return This builder for chaining.
- */
- public Builder clearCode() {
-
- code_ = 0;
- onChanged();
- return this;
- }
-
- private java.lang.Object msg_ = "";
- /**
- *
- * collect response error message
- *
- *
- * string msg = 8;
- * @return The msg.
- */
- public java.lang.String getMsg() {
- java.lang.Object ref = msg_;
- if (!(ref instanceof java.lang.String)) {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- msg_ = s;
- return s;
- } else {
- return (java.lang.String) ref;
- }
- }
- /**
- *
- * collect response error message
- *
- *
- * string msg = 8;
- * @return The bytes for msg.
- */
- public com.google.protobuf.ByteString
- getMsgBytes() {
- java.lang.Object ref = msg_;
- if (ref instanceof String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- msg_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
- }
- /**
- *
- * collect response error message
- *
- *
- * string msg = 8;
- * @param value The msg to set.
- * @return This builder for chaining.
- */
- public Builder setMsg(
- java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
-
- msg_ = value;
- onChanged();
- return this;
- }
- /**
- *
- * collect response error message
- *
- *
- * string msg = 8;
- * @return This builder for chaining.
- */
- public Builder clearMsg() {
-
- msg_ = getDefaultInstance().getMsg();
- onChanged();
- return this;
- }
- /**
- *
- * collect response error message
- *
- *
- * string msg = 8;
- * @param value The bytes for msg to set.
- * @return This builder for chaining.
- */
- public Builder setMsgBytes(
- com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
- }
- checkByteStringIsUtf8(value);
-
- msg_ = value;
- onChanged();
- return this;
- }
-
- private java.util.List fields_ =
- java.util.Collections.emptyList();
- private void ensureFieldsIsMutable() {
- if (!((bitField0_ & 0x00000001) != 0)) {
- fields_ = new java.util.ArrayList(fields_);
- bitField0_ |= 0x00000001;
- }
- }
-
- private com.google.protobuf.RepeatedFieldBuilderV3<
- org.apache.hertzbeat.common.entity.message.CollectRep.Field, org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder, org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder> fieldsBuilder_;
-
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public java.util.List getFieldsList() {
- if (fieldsBuilder_ == null) {
- return java.util.Collections.unmodifiableList(fields_);
- } else {
- return fieldsBuilder_.getMessageList();
- }
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public int getFieldsCount() {
- if (fieldsBuilder_ == null) {
- return fields_.size();
- } else {
- return fieldsBuilder_.getCount();
- }
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.Field getFields(int index) {
- if (fieldsBuilder_ == null) {
- return fields_.get(index);
- } else {
- return fieldsBuilder_.getMessage(index);
- }
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public Builder setFields(
- int index, org.apache.hertzbeat.common.entity.message.CollectRep.Field value) {
- if (fieldsBuilder_ == null) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureFieldsIsMutable();
- fields_.set(index, value);
- onChanged();
- } else {
- fieldsBuilder_.setMessage(index, value);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public Builder setFields(
- int index, org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder builderForValue) {
- if (fieldsBuilder_ == null) {
- ensureFieldsIsMutable();
- fields_.set(index, builderForValue.build());
- onChanged();
- } else {
- fieldsBuilder_.setMessage(index, builderForValue.build());
- }
- return this;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public Builder addFields(org.apache.hertzbeat.common.entity.message.CollectRep.Field value) {
- if (fieldsBuilder_ == null) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureFieldsIsMutable();
- fields_.add(value);
- onChanged();
- } else {
- fieldsBuilder_.addMessage(value);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public Builder addFields(
- int index, org.apache.hertzbeat.common.entity.message.CollectRep.Field value) {
- if (fieldsBuilder_ == null) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureFieldsIsMutable();
- fields_.add(index, value);
- onChanged();
- } else {
- fieldsBuilder_.addMessage(index, value);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public Builder addFields(
- org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder builderForValue) {
- if (fieldsBuilder_ == null) {
- ensureFieldsIsMutable();
- fields_.add(builderForValue.build());
- onChanged();
- } else {
- fieldsBuilder_.addMessage(builderForValue.build());
- }
- return this;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public Builder addFields(
- int index, org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder builderForValue) {
- if (fieldsBuilder_ == null) {
- ensureFieldsIsMutable();
- fields_.add(index, builderForValue.build());
- onChanged();
- } else {
- fieldsBuilder_.addMessage(index, builderForValue.build());
- }
- return this;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public Builder addAllFields(
- java.lang.Iterable extends org.apache.hertzbeat.common.entity.message.CollectRep.Field> values) {
- if (fieldsBuilder_ == null) {
- ensureFieldsIsMutable();
- com.google.protobuf.AbstractMessageLite.Builder.addAll(
- values, fields_);
- onChanged();
- } else {
- fieldsBuilder_.addAllMessages(values);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public Builder clearFields() {
- if (fieldsBuilder_ == null) {
- fields_ = java.util.Collections.emptyList();
- bitField0_ = (bitField0_ & ~0x00000001);
- onChanged();
- } else {
- fieldsBuilder_.clear();
- }
- return this;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public Builder removeFields(int index) {
- if (fieldsBuilder_ == null) {
- ensureFieldsIsMutable();
- fields_.remove(index);
- onChanged();
- } else {
- fieldsBuilder_.remove(index);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder getFieldsBuilder(
- int index) {
- return getFieldsFieldBuilder().getBuilder(index);
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder getFieldsOrBuilder(
- int index) {
- if (fieldsBuilder_ == null) {
- return fields_.get(index); } else {
- return fieldsBuilder_.getMessageOrBuilder(index);
- }
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public java.util.List extends org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder>
- getFieldsOrBuilderList() {
- if (fieldsBuilder_ != null) {
- return fieldsBuilder_.getMessageOrBuilderList();
- } else {
- return java.util.Collections.unmodifiableList(fields_);
- }
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder addFieldsBuilder() {
- return getFieldsFieldBuilder().addBuilder(
- org.apache.hertzbeat.common.entity.message.CollectRep.Field.getDefaultInstance());
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder addFieldsBuilder(
- int index) {
- return getFieldsFieldBuilder().addBuilder(
- index, org.apache.hertzbeat.common.entity.message.CollectRep.Field.getDefaultInstance());
- }
- /**
- *
- * monitoring collect metric field
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.Field fields = 9;
- */
- public java.util.List
- getFieldsBuilderList() {
- return getFieldsFieldBuilder().getBuilderList();
- }
- private com.google.protobuf.RepeatedFieldBuilderV3<
- org.apache.hertzbeat.common.entity.message.CollectRep.Field, org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder, org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder>
- getFieldsFieldBuilder() {
- if (fieldsBuilder_ == null) {
- fieldsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
- org.apache.hertzbeat.common.entity.message.CollectRep.Field, org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder, org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder>(
- fields_,
- ((bitField0_ & 0x00000001) != 0),
- getParentForChildren(),
- isClean());
- fields_ = null;
- }
- return fieldsBuilder_;
- }
-
- private java.util.List values_ =
- java.util.Collections.emptyList();
- private void ensureValuesIsMutable() {
- if (!((bitField0_ & 0x00000002) != 0)) {
- values_ = new java.util.ArrayList(values_);
- bitField0_ |= 0x00000002;
- }
- }
-
- private com.google.protobuf.RepeatedFieldBuilderV3<
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder> valuesBuilder_;
-
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public java.util.List getValuesList() {
- if (valuesBuilder_ == null) {
- return java.util.Collections.unmodifiableList(values_);
- } else {
- return valuesBuilder_.getMessageList();
- }
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public int getValuesCount() {
- if (valuesBuilder_ == null) {
- return values_.size();
- } else {
- return valuesBuilder_.getCount();
- }
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow getValues(int index) {
- if (valuesBuilder_ == null) {
- return values_.get(index);
- } else {
- return valuesBuilder_.getMessage(index);
- }
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public Builder setValues(
- int index, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow value) {
- if (valuesBuilder_ == null) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureValuesIsMutable();
- values_.set(index, value);
- onChanged();
- } else {
- valuesBuilder_.setMessage(index, value);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public Builder setValues(
- int index, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder builderForValue) {
- if (valuesBuilder_ == null) {
- ensureValuesIsMutable();
- values_.set(index, builderForValue.build());
- onChanged();
- } else {
- valuesBuilder_.setMessage(index, builderForValue.build());
- }
- return this;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public Builder addValues(org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow value) {
- if (valuesBuilder_ == null) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureValuesIsMutable();
- values_.add(value);
- onChanged();
- } else {
- valuesBuilder_.addMessage(value);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public Builder addValues(
- int index, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow value) {
- if (valuesBuilder_ == null) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureValuesIsMutable();
- values_.add(index, value);
- onChanged();
- } else {
- valuesBuilder_.addMessage(index, value);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public Builder addValues(
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder builderForValue) {
- if (valuesBuilder_ == null) {
- ensureValuesIsMutable();
- values_.add(builderForValue.build());
- onChanged();
- } else {
- valuesBuilder_.addMessage(builderForValue.build());
- }
- return this;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public Builder addValues(
- int index, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder builderForValue) {
- if (valuesBuilder_ == null) {
- ensureValuesIsMutable();
- values_.add(index, builderForValue.build());
- onChanged();
- } else {
- valuesBuilder_.addMessage(index, builderForValue.build());
- }
- return this;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public Builder addAllValues(
- java.lang.Iterable extends org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow> values) {
- if (valuesBuilder_ == null) {
- ensureValuesIsMutable();
- com.google.protobuf.AbstractMessageLite.Builder.addAll(
- values, values_);
- onChanged();
- } else {
- valuesBuilder_.addAllMessages(values);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public Builder clearValues() {
- if (valuesBuilder_ == null) {
- values_ = java.util.Collections.emptyList();
- bitField0_ = (bitField0_ & ~0x00000002);
- onChanged();
- } else {
- valuesBuilder_.clear();
- }
- return this;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public Builder removeValues(int index) {
- if (valuesBuilder_ == null) {
- ensureValuesIsMutable();
- values_.remove(index);
- onChanged();
- } else {
- valuesBuilder_.remove(index);
- }
- return this;
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder getValuesBuilder(
- int index) {
- return getValuesFieldBuilder().getBuilder(index);
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder getValuesOrBuilder(
- int index) {
- if (valuesBuilder_ == null) {
- return values_.get(index); } else {
- return valuesBuilder_.getMessageOrBuilder(index);
- }
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public java.util.List extends org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder>
- getValuesOrBuilderList() {
- if (valuesBuilder_ != null) {
- return valuesBuilder_.getMessageOrBuilderList();
- } else {
- return java.util.Collections.unmodifiableList(values_);
- }
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder addValuesBuilder() {
- return getValuesFieldBuilder().addBuilder(
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.getDefaultInstance());
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder addValuesBuilder(
- int index) {
- return getValuesFieldBuilder().addBuilder(
- index, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.getDefaultInstance());
- }
- /**
- *
- * monitoring collect metric data, mapping with the fields
- *
- *
- * repeated .org.apache.hertzbeat.common.entity.message.ValueRow values = 10;
- */
- public java.util.List
- getValuesBuilderList() {
- return getValuesFieldBuilder().getBuilderList();
- }
- private com.google.protobuf.RepeatedFieldBuilderV3<
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder>
- getValuesFieldBuilder() {
- if (valuesBuilder_ == null) {
- valuesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder>(
- values_,
- ((bitField0_ & 0x00000002) != 0),
- getParentForChildren(),
- isClean());
- values_ = null;
- }
- return valuesBuilder_;
- }
- @java.lang.Override
- public final Builder setUnknownFields(
- final com.google.protobuf.UnknownFieldSet unknownFields) {
- return super.setUnknownFields(unknownFields);
- }
-
- @java.lang.Override
- public final Builder mergeUnknownFields(
- final com.google.protobuf.UnknownFieldSet unknownFields) {
- return super.mergeUnknownFields(unknownFields);
- }
-
-
- // @@protoc_insertion_point(builder_scope:org.apache.hertzbeat.common.entity.message.MetricsData)
- }
-
- // @@protoc_insertion_point(class_scope:org.apache.hertzbeat.common.entity.message.MetricsData)
- private static final org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData DEFAULT_INSTANCE;
- static {
- DEFAULT_INSTANCE = new org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData();
- }
-
- public static org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData getDefaultInstance() {
- return DEFAULT_INSTANCE;
- }
-
- private static final com.google.protobuf.Parser
- PARSER = new com.google.protobuf.AbstractParser() {
- @java.lang.Override
- public MetricsData parsePartialFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return new MetricsData(input, extensionRegistry);
- }
- };
-
- public static com.google.protobuf.Parser parser() {
- return PARSER;
- }
-
- @java.lang.Override
- public com.google.protobuf.Parser getParserForType() {
- return PARSER;
- }
-
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.MetricsData getDefaultInstanceForType() {
- return DEFAULT_INSTANCE;
- }
-
- }
-
- public interface FieldOrBuilder extends
- // @@protoc_insertion_point(interface_extends:org.apache.hertzbeat.common.entity.message.Field)
- com.google.protobuf.MessageOrBuilder {
-
- /**
- *
- * monitoring collect metric field name
- *
- *
- * string name = 1;
- * @return The name.
- */
- java.lang.String getName();
- /**
- *
- * monitoring collect metric field name
- *
- *
- * string name = 1;
- * @return The bytes for name.
- */
- com.google.protobuf.ByteString
- getNameBytes();
-
- /**
- *
- * monitoring collect metrics field type, 0-number 1-string
- *
- *
- * uint32 type = 2;
- * @return The type.
- */
- int getType();
-
- /**
- *
- * monitoring collect metrics field unit, % MB GB TB S...
- *
- *
- * string unit = 3;
- * @return The unit.
- */
- java.lang.String getUnit();
- /**
- *
- * monitoring collect metrics field unit, % MB GB TB S...
- *
- *
- * string unit = 3;
- * @return The bytes for unit.
- */
- com.google.protobuf.ByteString
- getUnitBytes();
-
- /**
- *
- * is label field
- *
- *
- * bool label = 4;
- * @return The label.
- */
- boolean getLabel();
- }
- /**
- * Protobuf type {@code org.apache.hertzbeat.common.entity.message.Field}
- */
- public static final class Field extends
- com.google.protobuf.GeneratedMessageV3 implements
- // @@protoc_insertion_point(message_implements:org.apache.hertzbeat.common.entity.message.Field)
- FieldOrBuilder {
- private static final long serialVersionUID = 0L;
- // Use Field.newBuilder() to construct.
- private Field(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
- super(builder);
- }
- private Field() {
- name_ = "";
- unit_ = "";
- }
-
- @java.lang.Override
- @SuppressWarnings({"unused"})
- protected java.lang.Object newInstance(
- UnusedPrivateParameter unused) {
- return new Field();
- }
-
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
- private Field(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- this();
- if (extensionRegistry == null) {
- throw new java.lang.NullPointerException();
- }
- com.google.protobuf.UnknownFieldSet.Builder unknownFields =
- com.google.protobuf.UnknownFieldSet.newBuilder();
- try {
- boolean done = false;
- while (!done) {
- int tag = input.readTag();
- switch (tag) {
- case 0:
- done = true;
- break;
- case 10: {
- java.lang.String s = input.readStringRequireUtf8();
-
- name_ = s;
- break;
- }
- case 16: {
-
- type_ = input.readUInt32();
- break;
- }
- case 26: {
- java.lang.String s = input.readStringRequireUtf8();
-
- unit_ = s;
- break;
- }
- case 32: {
-
- label_ = input.readBool();
- break;
- }
- default: {
- if (!parseUnknownField(
- input, unknownFields, extensionRegistry, tag)) {
- done = true;
- }
- break;
- }
- }
- }
- } catch (com.google.protobuf.InvalidProtocolBufferException e) {
- throw e.setUnfinishedMessage(this);
- } catch (com.google.protobuf.UninitializedMessageException e) {
- throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
- } catch (java.io.IOException e) {
- throw new com.google.protobuf.InvalidProtocolBufferException(
- e).setUnfinishedMessage(this);
- } finally {
- this.unknownFields = unknownFields.build();
- makeExtensionsImmutable();
- }
- }
- public static final com.google.protobuf.Descriptors.Descriptor
- getDescriptor() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_Field_descriptor;
- }
-
- @java.lang.Override
- protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
- internalGetFieldAccessorTable() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_Field_fieldAccessorTable
- .ensureFieldAccessorsInitialized(
- org.apache.hertzbeat.common.entity.message.CollectRep.Field.class, org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder.class);
- }
-
- public static final int NAME_FIELD_NUMBER = 1;
- private volatile java.lang.Object name_;
- /**
- *
- * monitoring collect metric field name
- *
- *
- * string name = 1;
- * @return The name.
- */
- @java.lang.Override
- public java.lang.String getName() {
- java.lang.Object ref = name_;
- if (ref instanceof java.lang.String) {
- return (java.lang.String) ref;
- } else {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- name_ = s;
- return s;
- }
- }
- /**
- *
- * monitoring collect metric field name
- *
- *
- * string name = 1;
- * @return The bytes for name.
- */
- @java.lang.Override
- public com.google.protobuf.ByteString
- getNameBytes() {
- java.lang.Object ref = name_;
- if (ref instanceof java.lang.String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- name_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
- }
-
- public static final int TYPE_FIELD_NUMBER = 2;
- private int type_;
- /**
- *
- * monitoring collect metrics field type, 0-number 1-string
- *
- *
- * uint32 type = 2;
- * @return The type.
- */
- @java.lang.Override
- public int getType() {
- return type_;
- }
-
- public static final int UNIT_FIELD_NUMBER = 3;
- private volatile java.lang.Object unit_;
- /**
- *
- * monitoring collect metrics field unit, % MB GB TB S...
- *
- *
- * string unit = 3;
- * @return The unit.
- */
- @java.lang.Override
- public java.lang.String getUnit() {
- java.lang.Object ref = unit_;
- if (ref instanceof java.lang.String) {
- return (java.lang.String) ref;
- } else {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- unit_ = s;
- return s;
- }
- }
- /**
- *
- * monitoring collect metrics field unit, % MB GB TB S...
- *
- *
- * string unit = 3;
- * @return The bytes for unit.
- */
- @java.lang.Override
- public com.google.protobuf.ByteString
- getUnitBytes() {
- java.lang.Object ref = unit_;
- if (ref instanceof java.lang.String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- unit_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
- }
-
- public static final int LABEL_FIELD_NUMBER = 4;
- private boolean label_;
- /**
- *
- * is label field
- *
- *
- * bool label = 4;
- * @return The label.
- */
- @java.lang.Override
- public boolean getLabel() {
- return label_;
- }
-
- private byte memoizedIsInitialized = -1;
- @java.lang.Override
- public final boolean isInitialized() {
- byte isInitialized = memoizedIsInitialized;
- if (isInitialized == 1) return true;
- if (isInitialized == 0) return false;
-
- memoizedIsInitialized = 1;
- return true;
- }
-
- @java.lang.Override
- public void writeTo(com.google.protobuf.CodedOutputStream output)
- throws java.io.IOException {
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
- com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
- }
- if (type_ != 0) {
- output.writeUInt32(2, type_);
- }
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(unit_)) {
- com.google.protobuf.GeneratedMessageV3.writeString(output, 3, unit_);
- }
- if (label_ != false) {
- output.writeBool(4, label_);
- }
- unknownFields.writeTo(output);
- }
-
- @java.lang.Override
- public int getSerializedSize() {
- int size = memoizedSize;
- if (size != -1) return size;
-
- size = 0;
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
- size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
- }
- if (type_ != 0) {
- size += com.google.protobuf.CodedOutputStream
- .computeUInt32Size(2, type_);
- }
- if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(unit_)) {
- size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, unit_);
- }
- if (label_ != false) {
- size += com.google.protobuf.CodedOutputStream
- .computeBoolSize(4, label_);
- }
- size += unknownFields.getSerializedSize();
- memoizedSize = size;
- return size;
- }
-
- @java.lang.Override
- public boolean equals(final java.lang.Object obj) {
- if (obj == this) {
- return true;
- }
- if (!(obj instanceof org.apache.hertzbeat.common.entity.message.CollectRep.Field)) {
- return super.equals(obj);
- }
- org.apache.hertzbeat.common.entity.message.CollectRep.Field other = (org.apache.hertzbeat.common.entity.message.CollectRep.Field) obj;
-
- if (!getName()
- .equals(other.getName())) return false;
- if (getType()
- != other.getType()) return false;
- if (!getUnit()
- .equals(other.getUnit())) return false;
- if (getLabel()
- != other.getLabel()) return false;
- if (!unknownFields.equals(other.unknownFields)) return false;
- return true;
- }
-
- @java.lang.Override
- public int hashCode() {
- if (memoizedHashCode != 0) {
- return memoizedHashCode;
- }
- int hash = 41;
- hash = (19 * hash) + getDescriptor().hashCode();
- hash = (37 * hash) + NAME_FIELD_NUMBER;
- hash = (53 * hash) + getName().hashCode();
- hash = (37 * hash) + TYPE_FIELD_NUMBER;
- hash = (53 * hash) + getType();
- hash = (37 * hash) + UNIT_FIELD_NUMBER;
- hash = (53 * hash) + getUnit().hashCode();
- hash = (37 * hash) + LABEL_FIELD_NUMBER;
- hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
- getLabel());
- hash = (29 * hash) + unknownFields.hashCode();
- memoizedHashCode = hash;
- return hash;
- }
-
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(
- java.nio.ByteBuffer data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(
- java.nio.ByteBuffer data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(
- com.google.protobuf.ByteString data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(
- com.google.protobuf.ByteString data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data, extensionRegistry);
+
+ public long rowCount() {
+ return table != null ? table.getRowCount() : 0;
}
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(byte[] data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data);
+
+ public ArrowTable getTable() {
+ return table;
}
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(
- byte[] data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data, extensionRegistry);
+
+ /**
+ * notice is to vectorschemaRoot for arrow, the table will empty
+ * @return
+ */
+ public VectorSchemaRoot toVectorSchemaRootAndRelease() {
+ return table != null ? table.toVectorSchemaRoot() : null;
}
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(java.io.InputStream input)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input);
+
+ /**
+ * to byte array and release the table
+ * @return
+ */
+ public byte[] toByteArrayAndRelease() {
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream();
+ VectorSchemaRoot root = table.toVectorSchemaRoot();
+ ArrowStreamWriter writer = new ArrowStreamWriter(root,
+ null, Channels.newChannel(out))) {
+ writer.start();
+ writer.writeBatch();
+ writer.end();
+ return out.toByteArray();
+ } catch (IOException e) {
+ log.error(e.getMessage(), e);
+ return null;
+ }
}
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input, extensionRegistry);
+
+ public long getId() {
+ Map metadata = getMetadata();
+ return Long.parseLong(metadata.getOrDefault("id", "0"));
}
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseDelimitedFrom(java.io.InputStream input)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseDelimitedWithIOException(PARSER, input);
+
+ public long getTenantId() {
+ Map metadata = getMetadata();
+ return Long.parseLong(metadata.getOrDefault("tenantId", "0"));
}
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseDelimitedFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+
+ public String getApp() {
+ Map metadata = getMetadata();
+ return metadata.getOrDefault("app", "");
}
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(
- com.google.protobuf.CodedInputStream input)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input);
+
+ public String getMetrics() {
+ Map metadata = getMetadata();
+ return metadata.getOrDefault("metrics", "");
}
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field parseFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input, extensionRegistry);
+
+ public int getPriority() {
+ Map metadata = getMetadata();
+ return Integer.parseInt(metadata.getOrDefault("priority", "0"));
}
- @java.lang.Override
- public Builder newBuilderForType() { return newBuilder(); }
- public static Builder newBuilder() {
- return DEFAULT_INSTANCE.toBuilder();
+ public long getTime() {
+ Map metadata = getMetadata();
+ return Long.parseLong(metadata.getOrDefault("time", "0"));
}
- public static Builder newBuilder(org.apache.hertzbeat.common.entity.message.CollectRep.Field prototype) {
- return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+
+ public Code getCode() {
+ Map metadata = getMetadata();
+ return Code.forNumber(Integer.parseInt(metadata.getOrDefault("code", "0")));
}
- @java.lang.Override
- public Builder toBuilder() {
- return this == DEFAULT_INSTANCE
- ? new Builder() : new Builder().mergeFrom(this);
+
+ public String getMsg() {
+ Map metadata = getMetadata();
+ return metadata.getOrDefault("msg", "");
}
- @java.lang.Override
- protected Builder newBuilderForType(
- com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
- Builder builder = new Builder(parent);
- return builder;
+ private Map getMetadata() {
+ return table != null ? table.getSchema().getCustomMetadata() : new HashMap<>();
}
- /**
- * Protobuf type {@code org.apache.hertzbeat.common.entity.message.Field}
- */
- public static final class Builder extends
- com.google.protobuf.GeneratedMessageV3.Builder implements
- // @@protoc_insertion_point(builder_implements:org.apache.hertzbeat.common.entity.message.Field)
- org.apache.hertzbeat.common.entity.message.CollectRep.FieldOrBuilder {
- public static final com.google.protobuf.Descriptors.Descriptor
- getDescriptor() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_Field_descriptor;
- }
- @java.lang.Override
- protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
- internalGetFieldAccessorTable() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_Field_fieldAccessorTable
- .ensureFieldAccessorsInitialized(
- org.apache.hertzbeat.common.entity.message.CollectRep.Field.class, org.apache.hertzbeat.common.entity.message.CollectRep.Field.Builder.class);
+ // Get fields and values from table
+ public List getFields() {
+ if (table == null) {
+ return new ArrayList<>();
}
+ return table.getSchema().getFields().stream()
+ .map(field -> {
+ Map metadata = field.getMetadata();
+ return Field.newBuilder()
+ .setName(field.getName())
+ .setType(Integer.parseInt(metadata.getOrDefault(MetricDataConstants.TYPE, "0")))
+ .setUnit(metadata.getOrDefault(MetricDataConstants.UNIT, ""))
+ .setLabel(Boolean.parseBoolean(metadata.getOrDefault(MetricDataConstants.LABEL, "false")))
+ .build();
+ })
+ .collect(Collectors.toList());
+ }
- // Construct using org.apache.hertzbeat.common.entity.message.CollectRep.Field.newBuilder()
- private Builder() {
- maybeForceBuilderInitialization();
+ public List getValues() {
+ if (table == null) {
+ return new ArrayList<>();
}
- private Builder(
- com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
- super(parent);
- maybeForceBuilderInitialization();
+ List fieldNames = table.getSchema().getFields().stream()
+ .map(org.apache.arrow.vector.types.pojo.Field::getName)
+ .collect(Collectors.toList());
+
+ List values = new ArrayList<>();
+ Iterator iterator = table.iterator();
+ while (iterator.hasNext()) {
+ org.apache.arrow.vector.table.Row row = iterator.next();
+ ValueRow valueRow = ValueRow.newBuilder()
+ .setColumns(fieldNames.stream()
+ .map(fieldName -> new String(((org.apache.arrow.vector.VarCharVector)
+ table.getVector(fieldName)).get(row.getRowNumber())))
+ .collect(Collectors.toList()))
+ .build();
+ values.add(valueRow);
}
- private void maybeForceBuilderInitialization() {
- if (com.google.protobuf.GeneratedMessageV3
- .alwaysUseFieldBuilders) {
- }
+ return values;
+ }
+
+ public RowWrapper readRow() {
+ final Iterator rowIterator = table.iterator();
+
+ if (!rowIterator.hasNext()) {
+ throw new NoSuchElementException("No data found! ");
}
- @java.lang.Override
- public Builder clear() {
- super.clear();
- name_ = "";
+ List fields = table.getSchema().getFields();
+ return new RowWrapper(null, rowIterator, fields, -1);
+ }
- type_ = 0;
+ public int getValuesCount() {
+ return table != null ? (int)table.getRowCount() : 0;
+ }
- unit_ = "";
+ public int getFieldsCount() {
+ return table != null ? table.getSchema().getFields().size() : 0;
+ }
- label_ = false;
+ @Override
+ public void close() {
+ if (table != null) {
+ table.close();
+ }
+ }
+ // Builder remains mostly the same, but build() method changes
+ public static class Builder {
+ private long id;
+ private long tenantId;
+ private String app = "";
+ private String metrics = "";
+ private int priority;
+ private long time;
+ private Code code = Code.SUCCESS;
+ private String msg = "";
+ private List fields = new ArrayList<>();
+ private List values = new ArrayList<>();
+
+ public Builder setId(long id) {
+ this.id = id;
return this;
}
- @java.lang.Override
- public com.google.protobuf.Descriptors.Descriptor
- getDescriptorForType() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_Field_descriptor;
+ public Builder setTenantId(long tenantId) {
+ this.tenantId = tenantId;
+ return this;
}
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.Field getDefaultInstanceForType() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.Field.getDefaultInstance();
+ public Builder setApp(String app) {
+ this.app = app;
+ return this;
}
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.Field build() {
- org.apache.hertzbeat.common.entity.message.CollectRep.Field result = buildPartial();
- if (!result.isInitialized()) {
- throw newUninitializedMessageException(result);
- }
- return result;
+ public Builder setMetrics(String metrics) {
+ this.metrics = metrics;
+ return this;
}
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.Field buildPartial() {
- org.apache.hertzbeat.common.entity.message.CollectRep.Field result = new org.apache.hertzbeat.common.entity.message.CollectRep.Field(this);
- result.name_ = name_;
- result.type_ = type_;
- result.unit_ = unit_;
- result.label_ = label_;
- onBuilt();
- return result;
+ public Builder setPriority(int priority) {
+ this.priority = priority;
+ return this;
}
- @java.lang.Override
- public Builder clone() {
- return super.clone();
- }
- @java.lang.Override
- public Builder setField(
- com.google.protobuf.Descriptors.FieldDescriptor field,
- java.lang.Object value) {
- return super.setField(field, value);
- }
- @java.lang.Override
- public Builder clearField(
- com.google.protobuf.Descriptors.FieldDescriptor field) {
- return super.clearField(field);
- }
- @java.lang.Override
- public Builder clearOneof(
- com.google.protobuf.Descriptors.OneofDescriptor oneof) {
- return super.clearOneof(oneof);
- }
- @java.lang.Override
- public Builder setRepeatedField(
- com.google.protobuf.Descriptors.FieldDescriptor field,
- int index, java.lang.Object value) {
- return super.setRepeatedField(field, index, value);
+ public Builder setTime(long time) {
+ this.time = time;
+ return this;
}
- @java.lang.Override
- public Builder addRepeatedField(
- com.google.protobuf.Descriptors.FieldDescriptor field,
- java.lang.Object value) {
- return super.addRepeatedField(field, value);
+
+ public Builder setCode(Code code) {
+ this.code = code;
+ return this;
}
- @java.lang.Override
- public Builder mergeFrom(com.google.protobuf.Message other) {
- if (other instanceof org.apache.hertzbeat.common.entity.message.CollectRep.Field) {
- return mergeFrom((org.apache.hertzbeat.common.entity.message.CollectRep.Field)other);
- } else {
- super.mergeFrom(other);
- return this;
- }
+
+ public Builder setMsg(String msg) {
+ this.msg = msg;
+ return this;
}
- public Builder mergeFrom(org.apache.hertzbeat.common.entity.message.CollectRep.Field other) {
- if (other == org.apache.hertzbeat.common.entity.message.CollectRep.Field.getDefaultInstance()) return this;
- if (!other.getName().isEmpty()) {
- name_ = other.name_;
- onChanged();
- }
- if (other.getType() != 0) {
- setType(other.getType());
- }
- if (!other.getUnit().isEmpty()) {
- unit_ = other.unit_;
- onChanged();
- }
- if (other.getLabel() != false) {
- setLabel(other.getLabel());
- }
- this.mergeUnknownFields(other.unknownFields);
- onChanged();
+ public Builder addField(Field field) {
+ this.fields.add(field);
return this;
}
- @java.lang.Override
- public final boolean isInitialized() {
- return true;
+ public Builder addValueRow(ValueRow valueRow) {
+ this.values.add(valueRow);
+ return this;
}
- @java.lang.Override
- public Builder mergeFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- org.apache.hertzbeat.common.entity.message.CollectRep.Field parsedMessage = null;
+ public MetricsData build() {
+ // Create metadata
+ Map metadata = new HashMap<>();
+ metadata.put(MetricDataConstants.MONITOR_ID, String.valueOf(id));
+ metadata.put(MetricDataConstants.TENANT_ID, String.valueOf(tenantId));
+ metadata.put(MetricDataConstants.APP, app != null ? app : "");
+ metadata.put(MetricDataConstants.METRICS, metrics != null ? metrics : "");
+ metadata.put(MetricDataConstants.PRIORITY, String.valueOf(priority));
+ metadata.put(MetricDataConstants.TIME, String.valueOf(time));
+ metadata.put(MetricDataConstants.CODE, String.valueOf(code != null ? code.value : 0));
+ metadata.put(MetricDataConstants.MSG, msg != null ? msg : "");
+
+ org.apache.arrow.memory.BufferAllocator allocator =
+ new org.apache.arrow.memory.RootAllocator();
try {
- parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
- } catch (com.google.protobuf.InvalidProtocolBufferException e) {
- parsedMessage = (org.apache.hertzbeat.common.entity.message.CollectRep.Field) e.getUnfinishedMessage();
- throw e.unwrapIOException();
- } finally {
- if (parsedMessage != null) {
- mergeFrom(parsedMessage);
+ // Create Arrow fields with metadata
+ List arrowFields = fields.stream()
+ .map(field -> {
+ Map fieldMetadata = new HashMap<>();
+ fieldMetadata.put(MetricDataConstants.TYPE, String.valueOf(field.getType()));
+ fieldMetadata.put(MetricDataConstants.UNIT, field.getUnit());
+ fieldMetadata.put(MetricDataConstants.LABEL, String.valueOf(field.getLabel()));
+
+ return new org.apache.arrow.vector.types.pojo.Field(
+ field.getName(),
+ new org.apache.arrow.vector.types.pojo.FieldType(
+ true,
+ new org.apache.arrow.vector.types.pojo.ArrowType.Utf8(),
+ null,
+ fieldMetadata),
+ null);
+ })
+ .collect(Collectors.toList());
+
+ // Create Schema with metadata
+ org.apache.arrow.vector.types.pojo.Schema schema =
+ new org.apache.arrow.vector.types.pojo.Schema(arrowFields, metadata);
+
+ org.apache.arrow.vector.VectorSchemaRoot root =
+ org.apache.arrow.vector.VectorSchemaRoot.create(schema, allocator);
+
+ try {
+ root.allocateNew();
+ int rowCount = values.size();
+ root.setRowCount(rowCount);
+ // Write values
+ for (int fieldIndex = 0; fieldIndex < fields.size(); fieldIndex++) {
+ org.apache.arrow.vector.VarCharVector vector =
+ (org.apache.arrow.vector.VarCharVector) root.getVector(fieldIndex);
+ vector.allocateNew();
+
+ for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) {
+ ValueRow row = values.get(rowIndex);
+ if (row != null && row.getColumnsList() != null &&
+ fieldIndex < row.getColumnsList().size()) {
+ String value = row.getColumns(fieldIndex);
+ if (value != null) {
+ vector.set(rowIndex, value.getBytes());
+ }
+ }
+ }
+ vector.setValueCount(rowCount);
+ }
+ return new MetricsData(new ArrowTable(root));
+ } catch (Exception e1) {
+ log.error(e1.getMessage(), e1);
+ root.close();
+ throw e1;
}
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ allocator.close();
+ throw e;
}
- return this;
}
- private java.lang.Object name_ = "";
- /**
- *
- * monitoring collect metric field name
- *
- *
- * string name = 1;
- * @return The name.
- */
- public java.lang.String getName() {
- java.lang.Object ref = name_;
- if (!(ref instanceof java.lang.String)) {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- name_ = s;
- return s;
- } else {
- return (java.lang.String) ref;
- }
- }
- /**
- *
- * monitoring collect metric field name
- *
- *
- * string name = 1;
- * @return The bytes for name.
- */
- public com.google.protobuf.ByteString
- getNameBytes() {
- java.lang.Object ref = name_;
- if (ref instanceof String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- name_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
+ // Add getter methods
+ public long getId() {
+ return id;
}
- /**
- *
- * monitoring collect metric field name
- *
- *
- * string name = 1;
- * @param value The name to set.
- * @return This builder for chaining.
- */
- public Builder setName(
- java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
- name_ = value;
- onChanged();
- return this;
+ public long getTenantId() {
+ return tenantId;
}
- /**
- *
- * monitoring collect metric field name
- *
- *
- * string name = 1;
- * @return This builder for chaining.
- */
- public Builder clearName() {
- name_ = getDefaultInstance().getName();
- onChanged();
- return this;
+ public String getApp() {
+ return app;
}
- /**
- *
- * monitoring collect metric field name
- *
- *
- * string name = 1;
- * @param value The bytes for name to set.
- * @return This builder for chaining.
- */
- public Builder setNameBytes(
- com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
- }
- checkByteStringIsUtf8(value);
- name_ = value;
- onChanged();
- return this;
+ public String getMetrics() {
+ return metrics;
}
- private int type_ ;
- /**
- *
- * monitoring collect metrics field type, 0-number 1-string
- *
- *
- * uint32 type = 2;
- * @return The type.
- */
- @java.lang.Override
- public int getType() {
- return type_;
+ public int getPriority() {
+ return priority;
}
- /**
- *
- * monitoring collect metrics field type, 0-number 1-string
- *
- *
- * uint32 type = 2;
- * @param value The type to set.
- * @return This builder for chaining.
- */
- public Builder setType(int value) {
- type_ = value;
- onChanged();
- return this;
+ public long getTime() {
+ return time;
}
- /**
- *
- * monitoring collect metrics field type, 0-number 1-string
- *
- *
- * uint32 type = 2;
- * @return This builder for chaining.
- */
- public Builder clearType() {
- type_ = 0;
- onChanged();
- return this;
+ public Code getCode() {
+ return code;
}
- private java.lang.Object unit_ = "";
- /**
- *
- * monitoring collect metrics field unit, % MB GB TB S...
- *
- *
- * string unit = 3;
- * @return The unit.
- */
- public java.lang.String getUnit() {
- java.lang.Object ref = unit_;
- if (!(ref instanceof java.lang.String)) {
- com.google.protobuf.ByteString bs =
- (com.google.protobuf.ByteString) ref;
- java.lang.String s = bs.toStringUtf8();
- unit_ = s;
- return s;
- } else {
- return (java.lang.String) ref;
- }
- }
- /**
- *
- * monitoring collect metrics field unit, % MB GB TB S...
- *
- *
- * string unit = 3;
- * @return The bytes for unit.
- */
- public com.google.protobuf.ByteString
- getUnitBytes() {
- java.lang.Object ref = unit_;
- if (ref instanceof String) {
- com.google.protobuf.ByteString b =
- com.google.protobuf.ByteString.copyFromUtf8(
- (java.lang.String) ref);
- unit_ = b;
- return b;
- } else {
- return (com.google.protobuf.ByteString) ref;
- }
+ public String getMsg() {
+ return msg;
}
- /**
- *
- * monitoring collect metrics field unit, % MB GB TB S...
- *
- *
- * string unit = 3;
- * @param value The unit to set.
- * @return This builder for chaining.
- */
- public Builder setUnit(
- java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
- unit_ = value;
- onChanged();
- return this;
+ public List getFieldsList() {
+ return fields;
}
- /**
- *
- * monitoring collect metrics field unit, % MB GB TB S...
- *
- *
- * string unit = 3;
- * @return This builder for chaining.
- */
- public Builder clearUnit() {
- unit_ = getDefaultInstance().getUnit();
- onChanged();
- return this;
+ public Field getFields(int index) {
+ return fields.get(index);
}
- /**
- *
- * monitoring collect metrics field unit, % MB GB TB S...
- *
- *
- * string unit = 3;
- * @param value The bytes for unit to set.
- * @return This builder for chaining.
- */
- public Builder setUnitBytes(
- com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
- }
- checkByteStringIsUtf8(value);
- unit_ = value;
- onChanged();
- return this;
+ public int getFieldsCount() {
+ return fields.size();
}
- private boolean label_ ;
- /**
- *
- * is label field
- *
- *
- * bool label = 4;
- * @return The label.
- */
- @java.lang.Override
- public boolean getLabel() {
- return label_;
+ public List getValuesList() {
+ return values;
}
- /**
- *
- * is label field
- *
- *
- * bool label = 4;
- * @param value The label to set.
- * @return This builder for chaining.
- */
- public Builder setLabel(boolean value) {
- label_ = value;
- onChanged();
- return this;
+ public ValueRow getValues(int index) {
+ return values.get(index);
}
- /**
- *
- * is label field
- *
- *
- * bool label = 4;
- * @return This builder for chaining.
- */
- public Builder clearLabel() {
- label_ = false;
- onChanged();
- return this;
- }
- @java.lang.Override
- public final Builder setUnknownFields(
- final com.google.protobuf.UnknownFieldSet unknownFields) {
- return super.setUnknownFields(unknownFields);
+ public int getValuesCount() {
+ return values.size();
}
- @java.lang.Override
- public final Builder mergeUnknownFields(
- final com.google.protobuf.UnknownFieldSet unknownFields) {
- return super.mergeUnknownFields(unknownFields);
+ public void addAllFields(List fieldList) {
+ fields.addAll(fieldList);
}
-
- // @@protoc_insertion_point(builder_scope:org.apache.hertzbeat.common.entity.message.Field)
- }
-
- // @@protoc_insertion_point(class_scope:org.apache.hertzbeat.common.entity.message.Field)
- private static final org.apache.hertzbeat.common.entity.message.CollectRep.Field DEFAULT_INSTANCE;
- static {
- DEFAULT_INSTANCE = new org.apache.hertzbeat.common.entity.message.CollectRep.Field();
- }
-
- public static org.apache.hertzbeat.common.entity.message.CollectRep.Field getDefaultInstance() {
- return DEFAULT_INSTANCE;
- }
-
- private static final com.google.protobuf.Parser
- PARSER = new com.google.protobuf.AbstractParser() {
- @java.lang.Override
- public Field parsePartialFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return new Field(input, extensionRegistry);
+ public void clearValues() {
+ values = new LinkedList<>();
}
- };
-
- public static com.google.protobuf.Parser parser() {
- return PARSER;
- }
- @java.lang.Override
- public com.google.protobuf.Parser getParserForType() {
- return PARSER;
- }
+ public void clearMetrics() {
+ metrics = null;
+ }
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.Field getDefaultInstanceForType() {
- return DEFAULT_INSTANCE;
+ public void clearFields() {
+ fields = new LinkedList<>();
+ }
}
-
}
- public interface ValueRowOrBuilder extends
- // @@protoc_insertion_point(interface_extends:org.apache.hertzbeat.common.entity.message.ValueRow)
- com.google.protobuf.MessageOrBuilder {
-
+ /**
+ * Metrics field entity
+ */
+ public static class Field {
/**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @return A list containing the columns.
+ * monitoring collect metric field name
*/
- java.util.List
- getColumnsList();
+ private String name;
+
/**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @return The count of columns.
+ * monitoring collect metrics field type, 0-number 1-string
*/
- int getColumnsCount();
+ private int type;
+
/**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param index The index of the element to return.
- * @return The columns at the given index.
+ * monitoring collect metrics field unit, % MB GB TB S...
*/
- java.lang.String getColumns(int index);
+ private String unit;
+
/**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param index The index of the value to return.
- * @return The bytes of the columns at the given index.
+ * is label field
*/
- com.google.protobuf.ByteString
- getColumnsBytes(int index);
- }
- /**
- * Protobuf type {@code org.apache.hertzbeat.common.entity.message.ValueRow}
- */
- public static final class ValueRow extends
- com.google.protobuf.GeneratedMessageV3 implements
- // @@protoc_insertion_point(message_implements:org.apache.hertzbeat.common.entity.message.ValueRow)
- ValueRowOrBuilder {
- private static final long serialVersionUID = 0L;
- // Use ValueRow.newBuilder() to construct.
- private ValueRow(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
- super(builder);
- }
- private ValueRow() {
- columns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
- }
+ private boolean label;
- @java.lang.Override
- @SuppressWarnings({"unused"})
- protected java.lang.Object newInstance(
- UnusedPrivateParameter unused) {
- return new ValueRow();
+ public Field() {
+ name = "";
+ unit = "";
}
- @java.lang.Override
- public final com.google.protobuf.UnknownFieldSet
- getUnknownFields() {
- return this.unknownFields;
- }
- private ValueRow(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- this();
- if (extensionRegistry == null) {
- throw new java.lang.NullPointerException();
- }
- int mutable_bitField0_ = 0;
- com.google.protobuf.UnknownFieldSet.Builder unknownFields =
- com.google.protobuf.UnknownFieldSet.newBuilder();
- try {
- boolean done = false;
- while (!done) {
- int tag = input.readTag();
- switch (tag) {
- case 0:
- done = true;
- break;
- case 10: {
- java.lang.String s = input.readStringRequireUtf8();
- if (!((mutable_bitField0_ & 0x00000001) != 0)) {
- columns_ = new com.google.protobuf.LazyStringArrayList();
- mutable_bitField0_ |= 0x00000001;
- }
- columns_.add(s);
- break;
- }
- default: {
- if (!parseUnknownField(
- input, unknownFields, extensionRegistry, tag)) {
- done = true;
- }
- break;
- }
- }
- }
- } catch (com.google.protobuf.InvalidProtocolBufferException e) {
- throw e.setUnfinishedMessage(this);
- } catch (com.google.protobuf.UninitializedMessageException e) {
- throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
- } catch (java.io.IOException e) {
- throw new com.google.protobuf.InvalidProtocolBufferException(
- e).setUnfinishedMessage(this);
- } finally {
- if (((mutable_bitField0_ & 0x00000001) != 0)) {
- columns_ = columns_.getUnmodifiableView();
- }
- this.unknownFields = unknownFields.build();
- makeExtensionsImmutable();
- }
- }
- public static final com.google.protobuf.Descriptors.Descriptor
- getDescriptor() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_descriptor;
+ // Getters and setters
+ public String getName() {
+ return name;
}
- @java.lang.Override
- protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
- internalGetFieldAccessorTable() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_fieldAccessorTable
- .ensureFieldAccessorsInitialized(
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.class, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder.class);
+ public void setName(String name) {
+ this.name = name;
}
- public static final int COLUMNS_FIELD_NUMBER = 1;
- private com.google.protobuf.LazyStringList columns_;
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @return A list containing the columns.
- */
- public com.google.protobuf.ProtocolStringList
- getColumnsList() {
- return columns_;
+ public int getType() {
+ return type;
}
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @return The count of columns.
- */
- public int getColumnsCount() {
- return columns_.size();
+
+ public void setType(int type) {
+ this.type = type;
}
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param index The index of the element to return.
- * @return The columns at the given index.
- */
- public java.lang.String getColumns(int index) {
- return columns_.get(index);
+
+ public String getUnit() {
+ return unit;
}
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param index The index of the value to return.
- * @return The bytes of the columns at the given index.
- */
- public com.google.protobuf.ByteString
- getColumnsBytes(int index) {
- return columns_.getByteString(index);
+
+ public void setUnit(String unit) {
+ this.unit = unit;
}
- private byte memoizedIsInitialized = -1;
- @java.lang.Override
- public final boolean isInitialized() {
- byte isInitialized = memoizedIsInitialized;
- if (isInitialized == 1) return true;
- if (isInitialized == 0) return false;
+ public boolean getLabel() {
+ return label;
+ }
- memoizedIsInitialized = 1;
- return true;
+ public void setLabel(boolean label) {
+ this.label = label;
}
- @java.lang.Override
- public void writeTo(com.google.protobuf.CodedOutputStream output)
- throws java.io.IOException {
- for (int i = 0; i < columns_.size(); i++) {
- com.google.protobuf.GeneratedMessageV3.writeString(output, 1, columns_.getRaw(i));
- }
- unknownFields.writeTo(output);
+ public static Builder newBuilder() {
+ return new Builder();
}
- @java.lang.Override
- public int getSerializedSize() {
- int size = memoizedSize;
- if (size != -1) return size;
+ public static class Builder {
+ private final Field instance;
- size = 0;
- {
- int dataSize = 0;
- for (int i = 0; i < columns_.size(); i++) {
- dataSize += computeStringSizeNoTag(columns_.getRaw(i));
- }
- size += dataSize;
- size += 1 * getColumnsList().size();
+ private Builder() {
+ instance = new Field();
}
- size += unknownFields.getSerializedSize();
- memoizedSize = size;
- return size;
- }
- @java.lang.Override
- public boolean equals(final java.lang.Object obj) {
- if (obj == this) {
- return true;
+ public Builder setName(String name) {
+ instance.setName(name);
+ return this;
}
- if (!(obj instanceof org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow)) {
- return super.equals(obj);
+
+ public Builder setType(int type) {
+ instance.setType(type);
+ return this;
}
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow other = (org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow) obj;
- if (!getColumnsList()
- .equals(other.getColumnsList())) return false;
- if (!unknownFields.equals(other.unknownFields)) return false;
- return true;
- }
+ public Builder setUnit(String unit) {
+ instance.setUnit(unit);
+ return this;
+ }
- @java.lang.Override
- public int hashCode() {
- if (memoizedHashCode != 0) {
- return memoizedHashCode;
+ public Builder setLabel(boolean label) {
+ instance.setLabel(label);
+ return this;
}
- int hash = 41;
- hash = (19 * hash) + getDescriptor().hashCode();
- if (getColumnsCount() > 0) {
- hash = (37 * hash) + COLUMNS_FIELD_NUMBER;
- hash = (53 * hash) + getColumnsList().hashCode();
+
+ public Field build() {
+ return instance;
}
- hash = (29 * hash) + unknownFields.hashCode();
- memoizedHashCode = hash;
- return hash;
}
+ }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(
- java.nio.ByteBuffer data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(
- java.nio.ByteBuffer data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(
- com.google.protobuf.ByteString data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(
- com.google.protobuf.ByteString data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(byte[] data)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(
- byte[] data,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return PARSER.parseFrom(data, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(java.io.InputStream input)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseDelimitedFrom(java.io.InputStream input)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseDelimitedWithIOException(PARSER, input);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseDelimitedFrom(
- java.io.InputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(
- com.google.protobuf.CodedInputStream input)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input);
- }
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parseFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- return com.google.protobuf.GeneratedMessageV3
- .parseWithIOException(PARSER, input, extensionRegistry);
- }
+ /**
+ * Metrics value row entity
+ */
+ public static class ValueRow {
+ /**
+ * monitoring collect metrics value, mapping with the fields
+ */
+ private java.util.List columns;
- @java.lang.Override
- public Builder newBuilderForType() { return newBuilder(); }
- public static Builder newBuilder() {
- return DEFAULT_INSTANCE.toBuilder();
+ public ValueRow() {
+ columns = new LinkedList<>();
}
- public static Builder newBuilder(org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow prototype) {
- return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
- }
- @java.lang.Override
- public Builder toBuilder() {
- return this == DEFAULT_INSTANCE
- ? new Builder() : new Builder().mergeFrom(this);
+
+ public ValueRow(java.util.List columns) {
+ this.columns = new LinkedList<>();
+ this.columns.addAll(columns);
}
- @java.lang.Override
- protected Builder newBuilderForType(
- com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
- Builder builder = new Builder(parent);
- return builder;
+ public List getColumnsList() {
+ return columns;
}
- /**
- * Protobuf type {@code org.apache.hertzbeat.common.entity.message.ValueRow}
- */
- public static final class Builder extends
- com.google.protobuf.GeneratedMessageV3.Builder implements
- // @@protoc_insertion_point(builder_implements:org.apache.hertzbeat.common.entity.message.ValueRow)
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRowOrBuilder {
- public static final com.google.protobuf.Descriptors.Descriptor
- getDescriptor() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_descriptor;
- }
- @java.lang.Override
- protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
- internalGetFieldAccessorTable() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_fieldAccessorTable
- .ensureFieldAccessorsInitialized(
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.class, org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.Builder.class);
- }
+ public void setColumns(java.util.List columns) {
+ this.columns = columns;
+ }
- // Construct using org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.newBuilder()
- private Builder() {
- maybeForceBuilderInitialization();
+ public void addColumns(String value) {
+ if (value == null) {
+ throw new NullPointerException();
}
+ columns.add(value);
+ }
- private Builder(
- com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
- super(parent);
- maybeForceBuilderInitialization();
- }
- private void maybeForceBuilderInitialization() {
- if (com.google.protobuf.GeneratedMessageV3
- .alwaysUseFieldBuilders) {
- }
- }
- @java.lang.Override
- public Builder clear() {
- super.clear();
- columns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
- bitField0_ = (bitField0_ & ~0x00000001);
- return this;
- }
+ public void clearColumns() {
+ columns = new LinkedList<>();
+ }
- @java.lang.Override
- public com.google.protobuf.Descriptors.Descriptor
- getDescriptorForType() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_descriptor;
- }
+ public String getColumns(int index) {
+ return columns.get(index);
+ }
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow getDefaultInstanceForType() {
- return org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.getDefaultInstance();
- }
+ public int getColumnsCount() {
+ return columns.size();
+ }
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow build() {
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow result = buildPartial();
- if (!result.isInitialized()) {
- throw newUninitializedMessageException(result);
- }
- return result;
- }
+ public static Builder newBuilder() {
+ return new Builder();
+ }
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow buildPartial() {
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow result = new org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow(this);
- int from_bitField0_ = bitField0_;
- if (((bitField0_ & 0x00000001) != 0)) {
- columns_ = columns_.getUnmodifiableView();
- bitField0_ = (bitField0_ & ~0x00000001);
- }
- result.columns_ = columns_;
- onBuilt();
- return result;
- }
+ public static class Builder {
+ private java.util.List columns;
- @java.lang.Override
- public Builder clone() {
- return super.clone();
- }
- @java.lang.Override
- public Builder setField(
- com.google.protobuf.Descriptors.FieldDescriptor field,
- java.lang.Object value) {
- return super.setField(field, value);
- }
- @java.lang.Override
- public Builder clearField(
- com.google.protobuf.Descriptors.FieldDescriptor field) {
- return super.clearField(field);
- }
- @java.lang.Override
- public Builder clearOneof(
- com.google.protobuf.Descriptors.OneofDescriptor oneof) {
- return super.clearOneof(oneof);
- }
- @java.lang.Override
- public Builder setRepeatedField(
- com.google.protobuf.Descriptors.FieldDescriptor field,
- int index, java.lang.Object value) {
- return super.setRepeatedField(field, index, value);
- }
- @java.lang.Override
- public Builder addRepeatedField(
- com.google.protobuf.Descriptors.FieldDescriptor field,
- java.lang.Object value) {
- return super.addRepeatedField(field, value);
- }
- @java.lang.Override
- public Builder mergeFrom(com.google.protobuf.Message other) {
- if (other instanceof org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow) {
- return mergeFrom((org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow)other);
- } else {
- super.mergeFrom(other);
- return this;
- }
+ private Builder() {
+ columns = new LinkedList<>();
}
- public Builder mergeFrom(org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow other) {
- if (other == org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow.getDefaultInstance()) return this;
- if (!other.columns_.isEmpty()) {
- if (columns_.isEmpty()) {
- columns_ = other.columns_;
- bitField0_ = (bitField0_ & ~0x00000001);
- } else {
- ensureColumnsIsMutable();
- columns_.addAll(other.columns_);
- }
- onChanged();
- }
- this.mergeUnknownFields(other.unknownFields);
- onChanged();
+ public Builder setColumns(java.util.List columns) {
+ columns = columns;
return this;
}
- @java.lang.Override
- public final boolean isInitialized() {
- return true;
- }
-
- @java.lang.Override
- public Builder mergeFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws java.io.IOException {
- org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow parsedMessage = null;
- try {
- parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
- } catch (com.google.protobuf.InvalidProtocolBufferException e) {
- parsedMessage = (org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow) e.getUnfinishedMessage();
- throw e.unwrapIOException();
- } finally {
- if (parsedMessage != null) {
- mergeFrom(parsedMessage);
- }
- }
+ public Builder addColumn(String column) {
+ columns.add(column);
return this;
}
- private int bitField0_;
- private com.google.protobuf.LazyStringList columns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
- private void ensureColumnsIsMutable() {
- if (!((bitField0_ & 0x00000001) != 0)) {
- columns_ = new com.google.protobuf.LazyStringArrayList(columns_);
- bitField0_ |= 0x00000001;
- }
- }
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @return A list containing the columns.
- */
- public com.google.protobuf.ProtocolStringList
- getColumnsList() {
- return columns_.getUnmodifiableView();
- }
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @return The count of columns.
- */
- public int getColumnsCount() {
- return columns_.size();
- }
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param index The index of the element to return.
- * @return The columns at the given index.
- */
- public java.lang.String getColumns(int index) {
- return columns_.get(index);
- }
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param index The index of the value to return.
- * @return The bytes of the columns at the given index.
- */
- public com.google.protobuf.ByteString
- getColumnsBytes(int index) {
- return columns_.getByteString(index);
- }
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param index The index to set the value at.
- * @param value The columns to set.
- * @return This builder for chaining.
- */
- public Builder setColumns(
- int index, java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureColumnsIsMutable();
- columns_.set(index, value);
- onChanged();
- return this;
- }
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param value The columns to add.
- * @return This builder for chaining.
- */
- public Builder addColumns(
- java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureColumnsIsMutable();
- columns_.add(value);
- onChanged();
- return this;
- }
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param values The columns to add.
- * @return This builder for chaining.
- */
- public Builder addAllColumns(
- java.lang.Iterable values) {
- ensureColumnsIsMutable();
- com.google.protobuf.AbstractMessageLite.Builder.addAll(
- values, columns_);
- onChanged();
- return this;
- }
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @return This builder for chaining.
- */
- public Builder clearColumns() {
- columns_ = com.google.protobuf.LazyStringArrayList.EMPTY;
- bitField0_ = (bitField0_ & ~0x00000001);
- onChanged();
- return this;
- }
- /**
- *
- * monitoring collect metrics value, mapping with the fields
- *
- *
- * repeated string columns = 1;
- * @param value The bytes of the columns to add.
- * @return This builder for chaining.
- */
- public Builder addColumnsBytes(
- com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
+ public Builder addAllColumns(Iterable columns) {
+ for (String column : columns) {
+ this.columns.add(column);
}
- checkByteStringIsUtf8(value);
- ensureColumnsIsMutable();
- columns_.add(value);
- onChanged();
return this;
}
- @java.lang.Override
- public final Builder setUnknownFields(
- final com.google.protobuf.UnknownFieldSet unknownFields) {
- return super.setUnknownFields(unknownFields);
- }
- @java.lang.Override
- public final Builder mergeUnknownFields(
- final com.google.protobuf.UnknownFieldSet unknownFields) {
- return super.mergeUnknownFields(unknownFields);
+ public ValueRow build() {
+ return new ValueRow(columns);
}
-
- // @@protoc_insertion_point(builder_scope:org.apache.hertzbeat.common.entity.message.ValueRow)
- }
-
- // @@protoc_insertion_point(class_scope:org.apache.hertzbeat.common.entity.message.ValueRow)
- private static final org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow DEFAULT_INSTANCE;
- static {
- DEFAULT_INSTANCE = new org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow();
- }
-
- public static org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow getDefaultInstance() {
- return DEFAULT_INSTANCE;
- }
-
- private static final com.google.protobuf.Parser
- PARSER = new com.google.protobuf.AbstractParser() {
- @java.lang.Override
- public ValueRow parsePartialFrom(
- com.google.protobuf.CodedInputStream input,
- com.google.protobuf.ExtensionRegistryLite extensionRegistry)
- throws com.google.protobuf.InvalidProtocolBufferException {
- return new ValueRow(input, extensionRegistry);
+ public void clear() {
+ columns.clear();
}
- };
-
- public static com.google.protobuf.Parser parser() {
- return PARSER;
- }
-
- @java.lang.Override
- public com.google.protobuf.Parser getParserForType() {
- return PARSER;
}
-
- @java.lang.Override
- public org.apache.hertzbeat.common.entity.message.CollectRep.ValueRow getDefaultInstanceForType() {
- return DEFAULT_INSTANCE;
- }
-
- }
-
- private static final com.google.protobuf.Descriptors.Descriptor
- internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_descriptor;
- private static final
- com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
- internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_fieldAccessorTable;
- private static final com.google.protobuf.Descriptors.Descriptor
- internal_static_org_apache_hertzbeat_common_entity_message_Field_descriptor;
- private static final
- com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
- internal_static_org_apache_hertzbeat_common_entity_message_Field_fieldAccessorTable;
- private static final com.google.protobuf.Descriptors.Descriptor
- internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_descriptor;
- private static final
- com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
- internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_fieldAccessorTable;
-
- public static com.google.protobuf.Descriptors.FileDescriptor
- getDescriptor() {
- return descriptor;
}
- private static com.google.protobuf.Descriptors.FileDescriptor
- descriptor;
- static {
- java.lang.String[] descriptorData = {
- "\n\021collect_rep.proto\022*org.apache.hertzbea" +
- "t.common.entity.message\"\277\002\n\013MetricsData\022" +
- "\n\n\002id\030\001 \001(\004\022\020\n\010tenantId\030\002 \001(\004\022\013\n\003app\030\003 \001" +
- "(\t\022\017\n\007metrics\030\004 \001(\t\022\020\n\010priority\030\005 \001(\r\022\014\n" +
- "\004time\030\006 \001(\004\022>\n\004code\030\007 \001(\01620.org.apache.h" +
- "ertzbeat.common.entity.message.Code\022\013\n\003m" +
- "sg\030\010 \001(\t\022A\n\006fields\030\t \003(\01321.org.apache.he" +
- "rtzbeat.common.entity.message.Field\022D\n\006v" +
- "alues\030\n \003(\01324.org.apache.hertzbeat.commo" +
- "n.entity.message.ValueRow\"@\n\005Field\022\014\n\004na" +
- "me\030\001 \001(\t\022\014\n\004type\030\002 \001(\r\022\014\n\004unit\030\003 \001(\t\022\r\n\005" +
- "label\030\004 \001(\010\"\033\n\010ValueRow\022\017\n\007columns\030\001 \003(\t" +
- "*b\n\004Code\022\013\n\007SUCCESS\020\000\022\020\n\014UN_AVAILABLE\020\001\022" +
- "\020\n\014UN_REACHABLE\020\002\022\022\n\016UN_CONNECTABLE\020\003\022\010\n" +
- "\004FAIL\020\004\022\013\n\007TIMEOUT\020\005b\006proto3"
- };
- descriptor = com.google.protobuf.Descriptors.FileDescriptor
- .internalBuildGeneratedFileFrom(descriptorData,
- new com.google.protobuf.Descriptors.FileDescriptor[] {
- });
- internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_descriptor =
- getDescriptor().getMessageTypes().get(0);
- internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_fieldAccessorTable = new
- com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
- internal_static_org_apache_hertzbeat_common_entity_message_MetricsData_descriptor,
- new java.lang.String[] { "Id", "TenantId", "App", "Metrics", "Priority", "Time", "Code", "Msg", "Fields", "Values", });
- internal_static_org_apache_hertzbeat_common_entity_message_Field_descriptor =
- getDescriptor().getMessageTypes().get(1);
- internal_static_org_apache_hertzbeat_common_entity_message_Field_fieldAccessorTable = new
- com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
- internal_static_org_apache_hertzbeat_common_entity_message_Field_descriptor,
- new java.lang.String[] { "Name", "Type", "Unit", "Label", });
- internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_descriptor =
- getDescriptor().getMessageTypes().get(2);
- internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_fieldAccessorTable = new
- com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
- internal_static_org_apache_hertzbeat_common_entity_message_ValueRow_descriptor,
- new java.lang.String[] { "Columns", });
- }
-
- // @@protoc_insertion_point(outer_class_scope)
}
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/CommonDataQueue.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/CommonDataQueue.java
index df45ee13ede..9fe1472508d 100644
--- a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/CommonDataQueue.java
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/CommonDataQueue.java
@@ -44,14 +44,7 @@ public interface CommonDataQueue {
* @return metrics data
* @throws InterruptedException when poll timeout
*/
- CollectRep.MetricsData pollMetricsDataToPersistentStorage() throws InterruptedException;
-
- /**
- * poll collect metrics data for real-time Storage
- * @return metrics data
- * @throws InterruptedException when poll timeout
- */
- CollectRep.MetricsData pollMetricsDataToRealTimeStorage() throws InterruptedException;
+ CollectRep.MetricsData pollMetricsDataToStorage() throws InterruptedException;
/**
* offer alert data
@@ -72,6 +65,12 @@ public interface CommonDataQueue {
*/
void sendMetricsData(CollectRep.MetricsData metricsData);
+ /**
+ * send metrics data to storage from alerter
+ * @param metricsData metrics data
+ */
+ void sendMetricsDataToStorage(CollectRep.MetricsData metricsData);
+
/**
* send service discovery data
* @param metricsData service discovery data
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/InMemoryCommonDataQueue.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/InMemoryCommonDataQueue.java
index 5e285267433..bf719d18389 100644
--- a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/InMemoryCommonDataQueue.java
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/InMemoryCommonDataQueue.java
@@ -46,15 +46,13 @@ public class InMemoryCommonDataQueue implements CommonDataQueue, DisposableBean
private final LinkedBlockingQueue alertDataQueue;
private final LinkedBlockingQueue metricsDataToAlertQueue;
- private final LinkedBlockingQueue metricsDataToPersistentStorageQueue;
- private final LinkedBlockingQueue metricsDataToRealTimeStorageQueue;
+ private final LinkedBlockingQueue metricsDataToStorageQueue;
private final LinkedBlockingQueue serviceDiscoveryDataQueue;
public InMemoryCommonDataQueue() {
alertDataQueue = new LinkedBlockingQueue<>();
metricsDataToAlertQueue = new LinkedBlockingQueue<>();
- metricsDataToPersistentStorageQueue = new LinkedBlockingQueue<>();
- metricsDataToRealTimeStorageQueue = new LinkedBlockingQueue<>();
+ metricsDataToStorageQueue = new LinkedBlockingQueue<>();
serviceDiscoveryDataQueue = new LinkedBlockingQueue<>();
}
@@ -62,8 +60,7 @@ public Map getQueueSizeMetricsInfo() {
Map metrics = new HashMap<>(8);
metrics.put("alertDataQueue", alertDataQueue.size());
metrics.put("metricsDataToAlertQueue", metricsDataToAlertQueue.size());
- metrics.put("metricsDataToPersistentStorageQueue", metricsDataToPersistentStorageQueue.size());
- metrics.put("metricsDataToMemoryStorageQueue", metricsDataToRealTimeStorageQueue.size());
+ metrics.put("metricsDataToStorageQueue", metricsDataToStorageQueue.size());
return metrics;
}
@@ -88,20 +85,18 @@ public CollectRep.MetricsData pollMetricsDataToAlerter() throws InterruptedExcep
}
@Override
- public CollectRep.MetricsData pollMetricsDataToPersistentStorage() throws InterruptedException {
- return metricsDataToPersistentStorageQueue.take();
+ public CollectRep.MetricsData pollMetricsDataToStorage() throws InterruptedException {
+ return metricsDataToStorageQueue.take();
}
@Override
- public CollectRep.MetricsData pollMetricsDataToRealTimeStorage() throws InterruptedException {
- return metricsDataToRealTimeStorageQueue.take();
+ public void sendMetricsData(CollectRep.MetricsData metricsData) {
+ metricsDataToAlertQueue.offer(metricsData);
}
@Override
- public void sendMetricsData(CollectRep.MetricsData metricsData) {
- metricsDataToAlertQueue.offer(metricsData);
- metricsDataToPersistentStorageQueue.offer(metricsData);
- metricsDataToRealTimeStorageQueue.offer(metricsData);
+ public void sendMetricsDataToStorage(CollectRep.MetricsData metricsData) {
+ metricsDataToStorageQueue.offer(metricsData);
}
@Override
@@ -113,8 +108,7 @@ public void sendServiceDiscoveryData(CollectRep.MetricsData metricsData) {
public void destroy() {
alertDataQueue.clear();
metricsDataToAlertQueue.clear();
- metricsDataToPersistentStorageQueue.clear();
- metricsDataToRealTimeStorageQueue.clear();
+ metricsDataToStorageQueue.clear();
serviceDiscoveryDataQueue.clear();
}
}
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/KafkaCommonDataQueue.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/KafkaCommonDataQueue.java
index 6172ebbc13a..6de2faa173d 100644
--- a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/KafkaCommonDataQueue.java
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/KafkaCommonDataQueue.java
@@ -61,21 +61,18 @@ public class KafkaCommonDataQueue implements CommonDataQueue, DisposableBean {
private final ReentrantLock alertLock = new ReentrantLock();
private final ReentrantLock metricDataToAlertLock = new ReentrantLock();
- private final ReentrantLock metricDataToPersistentLock = new ReentrantLock();
- private final ReentrantLock metricDataToRealTimeStorageLock = new ReentrantLock();
+ private final ReentrantLock metricDataToStorageLock = new ReentrantLock();
private final ReentrantLock serviceDiscoveryDataLock = new ReentrantLock();
private final LinkedBlockingQueue alertDataQueue;
private final LinkedBlockingQueue metricsDataToAlertQueue;
- private final LinkedBlockingQueue metricsDataToPersistentStorageQueue;
- private final LinkedBlockingQueue metricsDataToRealTimeStorageQueue;
+ private final LinkedBlockingQueue metricsDataToStorageQueue;
private final LinkedBlockingQueue serviceDiscoveryDataQueue;
private final CommonProperties.KafkaProperties kafka;
private KafkaProducer metricsDataProducer;
private KafkaProducer alertDataProducer;
private KafkaConsumer alertDataConsumer;
private KafkaConsumer metricsDataToAlertConsumer;
- private KafkaConsumer metricsDataToPersistentStorageConsumer;
- private KafkaConsumer metricsDataToRealTimeStorageConsumer;
+ private KafkaConsumer metricsDataToStorageConsumer;
private KafkaConsumer serviceDiscoveryDataConsumer;
public KafkaCommonDataQueue(CommonProperties properties) {
@@ -86,8 +83,7 @@ public KafkaCommonDataQueue(CommonProperties properties) {
this.kafka = properties.getQueue().getKafka();
alertDataQueue = new LinkedBlockingQueue<>();
metricsDataToAlertQueue = new LinkedBlockingQueue<>();
- metricsDataToPersistentStorageQueue = new LinkedBlockingQueue<>();
- metricsDataToRealTimeStorageQueue = new LinkedBlockingQueue<>();
+ metricsDataToStorageQueue = new LinkedBlockingQueue<>();
serviceDiscoveryDataQueue = new LinkedBlockingQueue<>();
initDataQueue();
}
@@ -119,15 +115,10 @@ private void initDataQueue() {
metricsDataToAlertConsumer = new KafkaConsumer<>(metricsToAlertConsumerConfig, new LongDeserializer(), new KafkaMetricsDataDeserializer());
metricsDataToAlertConsumer.subscribe(Collections.singletonList(kafka.getMetricsDataTopic()));
- Map metricsToPersistentConsumerConfig = new HashMap<>(consumerConfig);
- metricsToPersistentConsumerConfig.put("group.id", "metrics-persistent-consumer");
- metricsDataToPersistentStorageConsumer = new KafkaConsumer<>(metricsToPersistentConsumerConfig, new LongDeserializer(), new KafkaMetricsDataDeserializer());
- metricsDataToPersistentStorageConsumer.subscribe(Collections.singletonList(kafka.getMetricsDataTopic()));
-
- Map metricsToRealTimeConsumerConfig = new HashMap<>(consumerConfig);
- metricsToRealTimeConsumerConfig.put("group.id", "metrics-memory-consumer");
- metricsDataToRealTimeStorageConsumer = new KafkaConsumer<>(metricsToRealTimeConsumerConfig, new LongDeserializer(), new KafkaMetricsDataDeserializer());
- metricsDataToRealTimeStorageConsumer.subscribe(Collections.singletonList(kafka.getMetricsDataTopic()));
+ Map metricsToStorageConsumerConfig = new HashMap<>(consumerConfig);
+ metricsToStorageConsumerConfig.put("group.id", "metrics-persistent-consumer");
+ metricsDataToStorageConsumer = new KafkaConsumer<>(metricsToStorageConsumerConfig, new LongDeserializer(), new KafkaMetricsDataDeserializer());
+ metricsDataToStorageConsumer.subscribe(Collections.singletonList(kafka.getMetricsDataTopic()));
Map serviceDiscoveryDataConsumerConfig = new HashMap<>(consumerConfig);
serviceDiscoveryDataConsumerConfig.put("group.id", "service-discovery-data-consumer");
@@ -166,17 +157,10 @@ public CollectRep.MetricsData pollMetricsDataToAlerter() throws InterruptedExcep
}
@Override
- public CollectRep.MetricsData pollMetricsDataToPersistentStorage() throws InterruptedException {
- return genericPollDataFunction(metricsDataToPersistentStorageQueue, metricsDataToPersistentStorageConsumer, metricDataToPersistentLock);
+ public CollectRep.MetricsData pollMetricsDataToStorage() throws InterruptedException {
+ return genericPollDataFunction(metricsDataToStorageQueue, metricsDataToStorageConsumer, metricDataToStorageLock);
}
-
- @Override
- public CollectRep.MetricsData pollMetricsDataToRealTimeStorage() throws InterruptedException {
- return genericPollDataFunction(metricsDataToRealTimeStorageQueue, metricsDataToRealTimeStorageConsumer, metricDataToRealTimeStorageLock);
- }
-
-
public T genericPollDataFunction(LinkedBlockingQueue dataQueue, KafkaConsumer dataConsumer, ReentrantLock lock) throws InterruptedException {
T pollData = dataQueue.poll();
@@ -207,7 +191,20 @@ public T genericPollDataFunction(LinkedBlockingQueue dataQueue, KafkaCons
@Override
public void sendMetricsData(CollectRep.MetricsData metricsData) {
if (metricsDataProducer != null) {
- metricsDataProducer.send(new ProducerRecord<>(kafka.getMetricsDataTopic(), metricsData));
+ ProducerRecord record =
+ new ProducerRecord<>(kafka.getMetricsDataTopic(), metricsData);
+ metricsDataProducer.send(record);
+ } else {
+ log.error("metricsDataProducer is not enabled");
+ }
+ }
+
+ @Override
+ public void sendMetricsDataToStorage(CollectRep.MetricsData metricsData) {
+ if (metricsDataProducer != null) {
+ ProducerRecord record =
+ new ProducerRecord<>(kafka.getMetricsDataToStorageTopic(), metricsData);
+ metricsDataProducer.send(record);
} else {
log.error("metricsDataProducer is not enabled");
}
@@ -216,7 +213,9 @@ public void sendMetricsData(CollectRep.MetricsData metricsData) {
@Override
public void sendServiceDiscoveryData(CollectRep.MetricsData metricsData) {
if (metricsDataProducer != null) {
- metricsDataProducer.send(new ProducerRecord<>(kafka.getServiceDiscoveryDataTopic(), metricsData));
+ ProducerRecord record =
+ new ProducerRecord<>(kafka.getServiceDiscoveryDataTopic(), metricsData);
+ metricsDataProducer.send(record);
} else {
log.error("metricsDataProducer is not enabled");
}
@@ -236,11 +235,8 @@ public void destroy() throws Exception {
if (metricsDataToAlertConsumer != null) {
metricsDataToAlertConsumer.close();
}
- if (metricsDataToPersistentStorageConsumer != null) {
- metricsDataToPersistentStorageConsumer.close();
- }
- if (metricsDataToRealTimeStorageConsumer != null) {
- metricsDataToRealTimeStorageConsumer.close();
+ if (metricsDataToStorageConsumer != null) {
+ metricsDataToStorageConsumer.close();
}
if (serviceDiscoveryDataConsumer != null) {
serviceDiscoveryDataConsumer.close();
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/RedisCommonDataQueue.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/RedisCommonDataQueue.java
index ec73b9c565d..59e3f017668 100644
--- a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/RedisCommonDataQueue.java
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/queue/impl/RedisCommonDataQueue.java
@@ -27,8 +27,7 @@
import org.apache.hertzbeat.common.entity.alerter.Alert;
import org.apache.hertzbeat.common.entity.message.CollectRep;
import org.apache.hertzbeat.common.queue.CommonDataQueue;
-import org.apache.hertzbeat.common.util.JsonUtil;
-import org.apache.hertzbeat.common.util.ProtoJsonUtil;
+import org.apache.hertzbeat.common.serialize.RedisMetricsDataCodec;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
@@ -46,13 +45,11 @@
public class RedisCommonDataQueue implements CommonDataQueue, DisposableBean {
private final RedisClient redisClient;
- private final StatefulRedisConnection connection;
- private final RedisCommands syncCommands;
- private final String metricsDataQueueNameToAlerter;
- private final String metricsDataQueueNameToPersistentStorage;
- private final String metricsDataQueueNameToRealTimeStorage;
+ private final StatefulRedisConnection connection;
+ private final RedisCommands syncCommands;
+ private final String metricsDataQueueNameToStorage;
private final String metricsDataQueueNameForServiceDiscovery;
- private final String alertsDataQueueName;
+ private final String metricsDataQueueNameToAlerter;
private final CommonProperties.RedisProperties redisProperties;
public RedisCommonDataQueue(CommonProperties properties) {
@@ -70,129 +67,84 @@ public RedisCommonDataQueue(CommonProperties properties) {
.withPort(redisProperties.getRedisPort())
.build()
);
- this.connection = redisClient.connect();
+ RedisMetricsDataCodec codec = new RedisMetricsDataCodec();
+ this.connection = redisClient.connect(codec);
this.syncCommands = connection.sync();
- this.metricsDataQueueNameToAlerter = redisProperties.getMetricsDataQueueNameToAlerter();
- this.metricsDataQueueNameToPersistentStorage = redisProperties.getMetricsDataQueueNameToPersistentStorage();
- this.metricsDataQueueNameToRealTimeStorage = redisProperties.getMetricsDataQueueNameToRealTimeStorage();
+ this.metricsDataQueueNameToStorage = redisProperties.getMetricsDataQueueNameToPersistentStorage();
this.metricsDataQueueNameForServiceDiscovery = redisProperties.getMetricsDataQueueNameForServiceDiscovery();
- this.alertsDataQueueName = redisProperties.getAlertsDataQueueName();
+ this.metricsDataQueueNameToAlerter = redisProperties.getMetricsDataQueueNameToAlerter();
}
@Override
public Alert pollAlertsData() {
-
- try {
- String alertJson = syncCommands.rpop(alertsDataQueueName);
- if (alertJson != null) {
- return JsonUtil.fromJson(alertJson, Alert.class);
- }
- } catch (Exception e) {
- log.error("please config common.queue.redis props correctly", e);
- throw new RuntimeException(e);
- }
+ // todo will remove this
return null;
}
@Override
public CollectRep.MetricsData pollMetricsDataToAlerter() {
-
try {
- String metricsDataJson = syncCommands.rpop(metricsDataQueueNameToAlerter);
- if (metricsDataJson != null) {
- return (CollectRep.MetricsData) ProtoJsonUtil.toProtobuf(metricsDataJson, CollectRep.MetricsData.newBuilder());
- }
+ return syncCommands.rpop(metricsDataQueueNameToAlerter);
} catch (Exception e) {
log.error(e.getMessage());
- throw new RuntimeException(e);
+ return null;
}
- return null;
}
@Override
- public CollectRep.MetricsData pollMetricsDataToPersistentStorage() throws InterruptedException {
-
+ public CollectRep.MetricsData pollMetricsDataToStorage() throws InterruptedException {
try {
- String metricsDataJson = syncCommands.rpop(metricsDataQueueNameToPersistentStorage);
- if (metricsDataJson != null) {
- return JsonUtil.fromJson(metricsDataJson, CollectRep.MetricsData.class);
- }
+ return syncCommands.rpop(metricsDataQueueNameToStorage);
} catch (Exception e) {
log.error(e.getMessage());
- throw new RuntimeException(e);
+ return null;
}
- return null;
}
@Override
- public CollectRep.MetricsData pollMetricsDataToRealTimeStorage() throws InterruptedException {
-
- try {
- String metricsDataJson = syncCommands.rpop(metricsDataQueueNameToRealTimeStorage);
- if (metricsDataJson != null) {
- return JsonUtil.fromJson(metricsDataJson, CollectRep.MetricsData.class);
- }
- } catch (Exception e) {
- log.error(e.getMessage());
- throw new RuntimeException(e);
- }
- return null;
+ public void sendAlertsData(Alert alert) {
+ // will remove this todo
}
@Override
- public void sendAlertsData(Alert alert) {
-
+ public CollectRep.MetricsData pollServiceDiscoveryData() throws InterruptedException {
try {
- String alertJson = JsonUtil.toJson(alert);
- syncCommands.lpush(alertsDataQueueName, alertJson);
+ return syncCommands.rpop(metricsDataQueueNameForServiceDiscovery);
} catch (Exception e) {
log.error(e.getMessage());
- throw new RuntimeException(e);
+ return null;
}
}
@Override
- public CollectRep.MetricsData pollServiceDiscoveryData() throws InterruptedException {
+ public void sendMetricsData(CollectRep.MetricsData metricsData) {
try {
- String metricsDataJson = syncCommands.rpop(metricsDataQueueNameForServiceDiscovery);
- if (metricsDataJson != null) {
- return JsonUtil.fromJson(metricsDataJson, CollectRep.MetricsData.class);
- }
+ syncCommands.lpush(metricsDataQueueNameToAlerter, metricsData);
} catch (Exception e) {
log.error(e.getMessage());
- throw new RuntimeException(e);
}
- return null;
}
@Override
- public void sendMetricsData(CollectRep.MetricsData metricsData) {
-
+ public void sendMetricsDataToStorage(CollectRep.MetricsData metricsData) {
try {
- String metricsDataJson = ProtoJsonUtil.toJsonStr(metricsData);
- syncCommands.lpush(metricsDataQueueNameToAlerter, metricsDataJson);
- syncCommands.lpush(metricsDataQueueNameToPersistentStorage, metricsDataJson);
- syncCommands.lpush(metricsDataQueueNameToRealTimeStorage, metricsDataJson);
+ syncCommands.lpush(metricsDataQueueNameToStorage, metricsData);
} catch (Exception e) {
log.error(e.getMessage());
- throw new RuntimeException(e);
}
}
@Override
public void sendServiceDiscoveryData(CollectRep.MetricsData metricsData) {
try {
- String metricsDataJson = ProtoJsonUtil.toJsonStr(metricsData);
- syncCommands.lpush(metricsDataQueueNameForServiceDiscovery, metricsDataJson);
+ syncCommands.lpush(metricsDataQueueNameForServiceDiscovery, metricsData);
} catch (Exception e) {
log.error(e.getMessage());
- throw new RuntimeException(e);
}
}
@Override
public void destroy() {
-
connection.close();
redisClient.shutdown();
}
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataDeserializer.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataDeserializer.java
index c1f80270503..3d4b95b4fe0 100644
--- a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataDeserializer.java
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataDeserializer.java
@@ -17,8 +17,14 @@
package org.apache.hertzbeat.common.serialize;
-import com.google.protobuf.InvalidProtocolBufferException;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.nio.channels.Channels;
import java.util.Map;
+import org.apache.arrow.memory.RootAllocator;
+import org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.arrow.vector.ipc.ArrowStreamReader;
+import org.apache.arrow.vector.table.ArrowTable;
import org.apache.hertzbeat.common.entity.message.CollectRep;
import org.apache.kafka.common.header.Headers;
import org.apache.kafka.common.serialization.Deserializer;
@@ -35,10 +41,13 @@ public void configure(Map configs, boolean isKey) {
@Override
public CollectRep.MetricsData deserialize(String s, byte[] bytes){
- try {
- return CollectRep.MetricsData.parseFrom(bytes);
- } catch (InvalidProtocolBufferException e) {
- throw new RuntimeException(e);
+ try (ByteArrayInputStream in = new ByteArrayInputStream(bytes);
+ ArrowStreamReader reader = new ArrowStreamReader(Channels.newChannel(in), new RootAllocator())) {
+ VectorSchemaRoot root = reader.getVectorSchemaRoot();
+ reader.loadNextBatch();
+ return new CollectRep.MetricsData(new ArrowTable(root));
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to deserialize Arrow table", e);
}
}
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataSerializer.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataSerializer.java
index bcd2fe6d66f..39f9c4ca158 100644
--- a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataSerializer.java
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataSerializer.java
@@ -17,8 +17,13 @@
package org.apache.hertzbeat.common.serialize;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.nio.channels.Channels;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
+import org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.arrow.vector.ipc.ArrowStreamWriter;
import org.apache.hertzbeat.common.entity.message.CollectRep;
import org.apache.kafka.common.header.Headers;
import org.apache.kafka.common.serialization.Serializer;
@@ -37,13 +42,23 @@ public void configure(Map configs, boolean isKey) {
@Override
public byte[] serialize(String s, CollectRep.MetricsData metricsData) {
-
+ // todo use the ArrowTable bytebuffer to direct send zero copy
if (metricsData == null) {
log.error("metricsData is null");
return null;
}
-
- return metricsData.toByteArray();
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream();
+ VectorSchemaRoot root = metricsData.toVectorSchemaRootAndRelease();
+ ArrowStreamWriter writer = new ArrowStreamWriter(root,
+ null, Channels.newChannel(out))) {
+ writer.start();
+ writer.writeBatch();
+ writer.end();
+ return out.toByteArray();
+ } catch (IOException e) {
+ log.error("sendMetricsData error", e);
+ }
+ return null;
}
@Override
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/RedisMetricsDataCodec.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/RedisMetricsDataCodec.java
new file mode 100644
index 00000000000..bf79bf0e578
--- /dev/null
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/serialize/RedisMetricsDataCodec.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hertzbeat.common.serialize;
+
+import io.lettuce.core.codec.RedisCodec;
+import io.netty.buffer.Unpooled;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.channels.Channels;
+import java.nio.charset.StandardCharsets;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.arrow.memory.RootAllocator;
+import org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.arrow.vector.ipc.ArrowStreamReader;
+import org.apache.arrow.vector.ipc.ArrowStreamWriter;
+import org.apache.arrow.vector.table.ArrowTable;
+import org.apache.hertzbeat.common.entity.message.CollectRep;
+
+/**
+ * redis metrics data codec
+ */
+@Slf4j
+public class RedisMetricsDataCodec implements RedisCodec {
+
+ @Override
+ public String decodeKey(ByteBuffer byteBuffer) {
+ return Unpooled.wrappedBuffer(byteBuffer).toString(StandardCharsets.UTF_8);
+ }
+
+ @Override
+ public CollectRep.MetricsData decodeValue(ByteBuffer byteBuffer) {
+ try (ByteArrayInputStream in = new ByteArrayInputStream(byteBuffer.array());
+ ArrowStreamReader reader = new ArrowStreamReader(Channels.newChannel(in), new RootAllocator())) {
+ VectorSchemaRoot root = reader.getVectorSchemaRoot();
+ reader.loadNextBatch();
+ return new CollectRep.MetricsData(new ArrowTable(root));
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to deserialize Arrow table", e);
+ }
+ }
+
+ @Override
+ public ByteBuffer encodeKey(String s) {
+ return ByteBuffer.wrap(s.getBytes(StandardCharsets.UTF_8));
+ }
+
+ @Override
+ public ByteBuffer encodeValue(CollectRep.MetricsData metricsData) {
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream();
+ VectorSchemaRoot root = metricsData.toVectorSchemaRootAndRelease();
+ ArrowStreamWriter writer = new ArrowStreamWriter(root,
+ null, Channels.newChannel(out))) {
+ writer.start();
+ writer.writeBatch();
+ writer.end();
+ return ByteBuffer.wrap(out.toByteArray());
+ } catch (IOException e) {
+ log.error("sendMetricsData error", e);
+ }
+ return null;
+ }
+}
diff --git a/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/util/ArrowUtil.java b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/util/ArrowUtil.java
new file mode 100644
index 00000000000..b5d391977d2
--- /dev/null
+++ b/hertzbeat-common/src/main/java/org/apache/hertzbeat/common/util/ArrowUtil.java
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hertzbeat.common.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.nio.channels.Channels;
+import java.util.ArrayList;
+import java.util.List;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.arrow.memory.RootAllocator;
+import org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.arrow.vector.ipc.ArrowStreamReader;
+import org.apache.arrow.vector.ipc.ArrowStreamWriter;
+import org.apache.hertzbeat.common.entity.message.CollectRep;
+
+/**
+ * Arrow data serialization and deserialization utility class
+ */
+@Slf4j
+public final class ArrowUtil {
+
+ private ArrowUtil() {
+ }
+
+ /**
+ * Serialize multiple VectorSchemaRoots into a byte array
+ * The serialization process:
+ * 1. Write the number of roots as an integer
+ * 2. For each root, serialize its content using ArrowStreamWriter
+ *
+ * @param roots List of VectorSchemaRoot to be serialized
+ * @return serialized byte array
+ */
+ public static byte[] serializeMultipleRoots(List roots) {
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream();
+ DataOutputStream dataOut = new DataOutputStream(out)) {
+
+ dataOut.writeInt(roots.size());
+ for (VectorSchemaRoot root : roots) {
+ ArrowStreamWriter writer = new ArrowStreamWriter(
+ root,
+ null,
+ Channels.newChannel(out));
+ writer.start();
+ writer.writeBatch();
+ writer.end();
+ writer.close();
+ }
+ return out.toByteArray();
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to serialize multiple VectorSchemaRoots", e);
+ }
+ }
+
+ /**
+ * Deserialize multiple VectorSchemaRoots from a byte array
+ * The deserialization process:
+ * 1. Read the number of roots from the first integer
+ * 2. Create a single RootAllocator for memory management
+ * 3. Deserialize each root using ArrowStreamReader
+ *
+ * @param data byte array containing serialized VectorSchemaRoots
+ * @return List of deserialized VectorSchemaRoot objects
+ * @throws RuntimeException if deserialization fails
+ */
+ public static List deserializeMultipleRoots(byte[] data) {
+ List roots = new ArrayList<>();
+ try (ByteArrayInputStream in = new ByteArrayInputStream(data);
+ DataInputStream dataIn = new DataInputStream(in)) {
+
+ int rootCount = dataIn.readInt();
+ RootAllocator allocator = new RootAllocator();
+
+ for (int i = 0; i < rootCount; i++) {
+ ArrowStreamReader reader = new ArrowStreamReader(
+ Channels.newChannel(in),
+ allocator);
+ VectorSchemaRoot root = reader.getVectorSchemaRoot();
+ reader.loadNextBatch();
+ roots.add(root);
+ }
+ return roots;
+ } catch (IOException e) {
+ roots.forEach(VectorSchemaRoot::close);
+ throw new RuntimeException("Failed to deserialize multiple VectorSchemaRoots", e);
+ }
+ }
+
+ /**
+ * Deserialize a list of MetricsData from a byte array
+ * The process:
+ * 1. Check for null or empty input
+ * 2. Deserialize VectorSchemaRoots
+ * 3. Convert each valid root to MetricsData
+ * 4. Ensure proper resource cleanup
+ *
+ * @param data byte array containing serialized metrics data
+ * @return List of MetricsData objects
+ */
+ public static List deserializeMetricsData(byte[] data) {
+ if (data == null || data.length == 0) {
+ return new ArrayList<>();
+ }
+ List roots = deserializeMultipleRoots(data);
+ List metricsDataList = new ArrayList<>(roots.size());
+ try {
+ for (VectorSchemaRoot root : roots) {
+ if (root != null) {
+ CollectRep.MetricsData metricsData = new CollectRep.MetricsData(root);
+ metricsDataList.add(metricsData);
+ }
+ }
+ } finally {
+ roots.forEach(VectorSchemaRoot::close);
+ }
+ return metricsDataList;
+ }
+
+ /**
+ * Serialize a list of MetricsData into a byte array
+ * The process:
+ * 1. Convert each MetricsData to VectorSchemaRoot
+ * 2. Serialize all roots into a single byte array
+ *
+ * @param metricsDataList List of MetricsData to be serialized
+ * @return serialized byte array
+ */
+ public static byte[] serializeMetricsData(List metricsDataList) {
+ List roots = new ArrayList<>(metricsDataList.size());
+ for (CollectRep.MetricsData metricsData : metricsDataList) {
+ VectorSchemaRoot root = metricsData.toVectorSchemaRootAndRelease();
+ roots.add(root);
+ }
+ return serializeMultipleRoots(roots);
+ }
+
+}
diff --git a/hertzbeat-common/src/main/message/cluster_msg.proto b/hertzbeat-common/src/main/message/cluster_msg.proto
index 3578d7311b2..e1321e1a41f 100644
--- a/hertzbeat-common/src/main/message/cluster_msg.proto
+++ b/hertzbeat-common/src/main/message/cluster_msg.proto
@@ -27,7 +27,7 @@ message Message
// message type
MessageType type = 3;
// message content
- string msg = 4;
+ bytes msg = 4;
}
enum MessageType
diff --git a/hertzbeat-common/src/main/message/collect_rep.proto b/hertzbeat-common/src/main/message/collect_rep.proto
deleted file mode 100644
index 7a43bdac3e3..00000000000
--- a/hertzbeat-common/src/main/message/collect_rep.proto
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-syntax = "proto3";
-package org.apache.hertzbeat.common.entity.message;
-
-message MetricsData
-{
- // monitoring id
- uint64 id = 1;
- // tenant id
- uint64 tenantId = 2;
- // monitoring app eg: linux | mysql | jvm
- string app = 3;
- // monitoring metrics eg: cpu | memory | health
- string metrics = 4;
- // monitoring collect priority >=0
- uint32 priority = 5;
- // collect timestamp
- uint64 time = 6;
- // collect response code
- Code code = 7;
- // collect response error message
- string msg = 8;
- // monitoring collect metric field
- repeated Field fields = 9;
- // monitoring collect metric data, mapping with the fields
- repeated ValueRow values = 10;
-}
-
-message Field
-{
- // monitoring collect metric field name
- string name = 1;
- // monitoring collect metrics field type, 0-number 1-string
- uint32 type = 2;
- // monitoring collect metrics field unit, % MB GB TB S...
- string unit = 3;
- // is label field
- bool label = 4;
-}
-
-message ValueRow
-{
- // monitoring collect metrics value, mapping with the fields
- repeated string columns = 1;
-}
-
-enum Code
-{
- // collect success
- SUCCESS = 0;
- // collector not available
- UN_AVAILABLE = 1;
- // peer network un reachable(icmp)
- UN_REACHABLE = 2;
- // peer network server un connectable(tcp,udp...)
- UN_CONNECTABLE = 3;
- // collect metrics data failed(http,ssh,snmp...)
- FAIL = 4;
- // collect metrics data timeout
- TIMEOUT = 5;
-}
diff --git a/hertzbeat-common/src/test/java/org/apache/arrow/vector/table/ArrowTableTest.java b/hertzbeat-common/src/test/java/org/apache/arrow/vector/table/ArrowTableTest.java
new file mode 100644
index 00000000000..bc488ec54ab
--- /dev/null
+++ b/hertzbeat-common/src/test/java/org/apache/arrow/vector/table/ArrowTableTest.java
@@ -0,0 +1,188 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.arrow.vector.table;
+
+import static java.util.Arrays.asList;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.nio.channels.Channels;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.arrow.memory.BufferAllocator;
+import org.apache.arrow.memory.RootAllocator;
+import org.apache.arrow.vector.IntVector;
+import org.apache.arrow.vector.VarCharVector;
+import org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.arrow.vector.ipc.ArrowStreamReader;
+import org.apache.arrow.vector.ipc.ArrowStreamWriter;
+import org.apache.arrow.vector.types.pojo.ArrowType;
+import org.apache.arrow.vector.types.pojo.Field;
+import org.apache.arrow.vector.types.pojo.FieldType;
+import org.apache.arrow.vector.types.pojo.Schema;
+import org.junit.jupiter.api.Test;
+
+/**
+ * test for arrow table
+ */
+class ArrowTableTest {
+
+ @Test
+ void testArrow() {
+ BufferAllocator allocator = new RootAllocator();
+ Map metadata = new HashMap<>();
+ metadata.put("K1", "V1");
+ metadata.put("K2", "V2");
+ Field a = new Field("age", FieldType.nullable(new ArrowType.Int(32, true)), /*children*/ null);
+ Field b = new Field("name", FieldType.nullable(new ArrowType.Utf8()), /*children*/ null);
+ Schema schema = new Schema(asList(a, b), metadata);
+ VectorSchemaRoot root = VectorSchemaRoot.create(schema, allocator);
+ IntVector ageVector = (IntVector) root.getVector("age");
+ VarCharVector nameVector = (VarCharVector) root.getVector("name");
+ ageVector.allocateNew(3);
+ ageVector.set(0, 10);
+ ageVector.set(1, 20);
+ ageVector.set(2, 30);
+ nameVector.allocateNew(3);
+ nameVector.set(0, "Dave".getBytes(StandardCharsets.UTF_8));
+ nameVector.set(1, "Peter".getBytes(StandardCharsets.UTF_8));
+ nameVector.set(2, "Mary".getBytes(StandardCharsets.UTF_8));
+ root.setRowCount(3);
+
+ assertEquals(3, root.getRowCount());
+ Table t = new Table(root);
+ assertEquals(3, t.getRowCount());
+ Table t2 = t.slice(2);
+ root.close();
+ VectorSchemaRoot root2 = t.toVectorSchemaRoot();
+ assertEquals(3, root2.getRowCount());
+ assertEquals(0, t.getRowCount());
+ assertEquals(1, t2.getRowCount());
+ assertEquals(0, root.getRowCount());
+ root2.close();
+ }
+
+ @Test
+ void testArrow3() {
+ BufferAllocator allocator = new RootAllocator();
+ Map metadata = new HashMap<>();
+ metadata.put("K1", "V1");
+ metadata.put("K2", "V2");
+ Field a = new Field("age", FieldType.nullable(new ArrowType.Int(32, true)), /*children*/ null);
+ Field b = new Field("name", FieldType.nullable(new ArrowType.Utf8()), /*children*/ null);
+ Schema schema = new Schema(asList(a, b), metadata);
+ VectorSchemaRoot root = VectorSchemaRoot.create(schema, allocator);
+ IntVector ageVector = (IntVector) root.getVector("age");
+ VarCharVector nameVector = (VarCharVector) root.getVector("name");
+ ageVector.allocateNew(3);
+ ageVector.set(0, 10);
+ ageVector.set(1, 20);
+ ageVector.set(2, 30);
+ nameVector.allocateNew(3);
+ nameVector.set(0, "Dave".getBytes(StandardCharsets.UTF_8));
+ nameVector.set(1, "Peter".getBytes(StandardCharsets.UTF_8));
+ nameVector.set(2, "Mary".getBytes(StandardCharsets.UTF_8));
+ root.setRowCount(3);
+
+ assertEquals(3, root.getRowCount());
+ ArrowTable t = new ArrowTable(root);
+ assertEquals(3, t.getRowCount());
+ VectorSchemaRoot root1 = t.toVectorSchemaRoot();
+ assertEquals(3, root1.getRowCount());
+ assertEquals("V1", root1.getSchema().getCustomMetadata().get("K1"));
+ ArrowTable t2 = new ArrowTable(root1);
+ assertEquals(3, t2.getRowCount());
+ assertEquals("V1", t2.getSchema().getCustomMetadata().get("K1"));
+ VectorSchemaRoot root2 = t2.toVectorSchemaRoot();
+
+ byte[] bytes = null;
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ArrowStreamWriter writer = new ArrowStreamWriter(root2, null, Channels.newChannel(out))) {
+ writer.start();
+ writer.writeBatch();
+ writer.end();
+ bytes = out.toByteArray();
+ } catch (IOException ignored) {}
+ assertEquals(3, root2.getRowCount());
+ root2.close();
+ BufferAllocator bufferAllocator = new RootAllocator();
+ try (ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ArrowStreamReader arrowStreamReader = new ArrowStreamReader(byteArrayInputStream, bufferAllocator)) {
+ arrowStreamReader.loadNextBatch();
+ VectorSchemaRoot schemaRoot = arrowStreamReader.getVectorSchemaRoot();
+ assertEquals(3, schemaRoot.getRowCount());
+ assertEquals(schemaRoot.getSchema().getCustomMetadata().get("K1"), "V1");
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ root.close();
+ root2.close();
+ t.close();
+ t2.close();
+ allocator.close();
+ }
+
+ @Test
+ void testArrow2() {
+ BufferAllocator allocator = new RootAllocator();
+ Map metadata = new HashMap<>();
+ metadata.put("K1", "V1");
+ metadata.put("K2", "V2");
+ Field a = new Field("age", FieldType.nullable(new ArrowType.Int(32, true)), /*children*/ null);
+ Field b = new Field("name", FieldType.nullable(new ArrowType.Utf8()), /*children*/ null);
+ Schema schema = new Schema(asList(a, b), metadata);
+ VectorSchemaRoot root = VectorSchemaRoot.create(schema, allocator);
+ IntVector ageVector = (IntVector) root.getVector("age");
+ VarCharVector nameVector = (VarCharVector) root.getVector("name");
+ ageVector.allocateNew(3);
+ ageVector.set(0, 10);
+ ageVector.set(1, 20);
+ ageVector.set(2, 30);
+ nameVector.allocateNew(3);
+ nameVector.set(0, "Dave".getBytes(StandardCharsets.UTF_8));
+ nameVector.set(1, "Peter".getBytes(StandardCharsets.UTF_8));
+ nameVector.set(2, "Mary".getBytes(StandardCharsets.UTF_8));
+ root.setRowCount(3);
+
+ assertEquals(3, root.getRowCount());
+ byte[] bytes = null;
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ArrowStreamWriter writer = new ArrowStreamWriter(root, null, Channels.newChannel(out))) {
+ writer.start();
+ writer.writeBatch();
+ writer.end();
+ bytes = out.toByteArray();
+ } catch (IOException ignored) {}
+ assertEquals(3, root.getRowCount());
+ root.close();
+ BufferAllocator bufferAllocator = new RootAllocator();
+ try (ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ ArrowStreamReader arrowStreamReader = new ArrowStreamReader(byteArrayInputStream, bufferAllocator)) {
+ arrowStreamReader.loadNextBatch();
+ VectorSchemaRoot schemaRoot = arrowStreamReader.getVectorSchemaRoot();
+ assertEquals(3, schemaRoot.getRowCount());
+ assertEquals(schemaRoot.getSchema().getCustomMetadata().get("K1"), "V1");
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ root.close();
+ allocator.close();
+ }
+}
diff --git a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/InMemoryCommonDataQueueTest.java b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/InMemoryCommonDataQueueTest.java
index b55f29465a6..5794cb704b8 100644
--- a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/InMemoryCommonDataQueueTest.java
+++ b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/InMemoryCommonDataQueueTest.java
@@ -63,16 +63,6 @@ void testMetricsData() throws InterruptedException {
assertNotNull(polledMetricsData);
assertEquals(metricsData, polledMetricsData);
-
- polledMetricsData = queue.pollMetricsDataToPersistentStorage();
-
- assertNotNull(polledMetricsData);
- assertEquals(metricsData, polledMetricsData);
-
- polledMetricsData = queue.pollMetricsDataToRealTimeStorage();
-
- assertNotNull(polledMetricsData);
- assertEquals(metricsData, polledMetricsData);
}
@Test
@@ -82,8 +72,7 @@ void testGetQueueSizeMetricsInfo() {
assertEquals(0, metricsInfo.get("alertDataQueue"));
assertEquals(0, metricsInfo.get("metricsDataToAlertQueue"));
- assertEquals(0, metricsInfo.get("metricsDataToPersistentStorageQueue"));
- assertEquals(0, metricsInfo.get("metricsDataToMemoryStorageQueue"));
+ assertEquals(0, metricsInfo.get("metricsDataToStorageQueue"));
queue.sendAlertsData(new Alert());
queue.sendMetricsData(CollectRep.MetricsData.newBuilder().build());
@@ -92,8 +81,7 @@ void testGetQueueSizeMetricsInfo() {
assertEquals(1, metricsInfo.get("alertDataQueue"));
assertEquals(1, metricsInfo.get("metricsDataToAlertQueue"));
- assertEquals(1, metricsInfo.get("metricsDataToPersistentStorageQueue"));
- assertEquals(1, metricsInfo.get("metricsDataToMemoryStorageQueue"));
+ assertEquals(0, metricsInfo.get("metricsDataToStorageQueue"));
}
@Test
@@ -108,8 +96,7 @@ void testDestroy() {
assertEquals(0, metricsInfo.get("alertDataQueue"));
assertEquals(0, metricsInfo.get("metricsDataToAlertQueue"));
- assertEquals(0, metricsInfo.get("metricsDataToPersistentStorageQueue"));
- assertEquals(0, metricsInfo.get("metricsDataToMemoryStorageQueue"));
+ assertEquals(0, metricsInfo.get("metricsDataToStorageQueue"));
}
}
diff --git a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/KafkaCommonDataQueueTest.java b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/KafkaCommonDataQueueTest.java
index 0372a999948..ff31e012353 100644
--- a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/KafkaCommonDataQueueTest.java
+++ b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/KafkaCommonDataQueueTest.java
@@ -18,159 +18,120 @@
package org.apache.hertzbeat.common.queue.impl;
import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyCollection;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.withSettings;
import java.lang.reflect.Field;
import java.time.Duration;
import java.util.Collections;
+import java.util.List;
+import java.util.Map;
import org.apache.hertzbeat.common.config.CommonProperties;
-import org.apache.hertzbeat.common.entity.alerter.Alert;
import org.apache.hertzbeat.common.entity.message.CollectRep;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.producer.KafkaProducer;
-import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.TopicPartition;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.mockito.ArgumentCaptor;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
/**
* Test case for {@link KafkaCommonDataQueue}
*/
+@ExtendWith(MockitoExtension.class)
class KafkaCommonDataQueueTest {
- private KafkaProducer metricsDataProducer;
- private KafkaProducer alertDataProducer;
- private KafkaConsumer alertDataConsumer;
+ @Mock(lenient = true)
private KafkaConsumer metricsDataToAlertConsumer;
- private KafkaConsumer metricsDataToPersistentStorageConsumer;
- private KafkaConsumer metricsDataToRealTimeStorageConsumer;
- private KafkaConsumer serviceDiscoveryDataConsumer;
- private CommonProperties.KafkaProperties kafkaProperties;
+
+ @Mock(lenient = true)
+ private KafkaProducer metricsDataProducer;
+
private KafkaCommonDataQueue kafkaCommonDataQueue;
+ private CommonProperties commonProperties;
+
@BeforeEach
void setUp() throws Exception {
- kafkaProperties = mock(CommonProperties.KafkaProperties.class);
+ commonProperties = mock(CommonProperties.class);
+ CommonProperties.DataQueueProperties dataQueueProperties = mock(CommonProperties.DataQueueProperties.class, withSettings().lenient());
+ CommonProperties.KafkaProperties kafkaProperties = mock(CommonProperties.KafkaProperties.class, withSettings().lenient());
+
+ when(commonProperties.getQueue()).thenReturn(dataQueueProperties);
+ when(dataQueueProperties.getKafka()).thenReturn(kafkaProperties);
+
+ // 设置所有必需的 topic
+ when(kafkaProperties.getMetricsDataTopic()).thenReturn("metricsDataTopic");
+ when(kafkaProperties.getAlertsDataTopic()).thenReturn("alertsDataTopic");
+ when(kafkaProperties.getMetricsDataToStorageTopic()).thenReturn("metricsDataToStorageTopic");
+ when(kafkaProperties.getServiceDiscoveryDataTopic()).thenReturn("serviceDiscoveryDataTopic");
when(kafkaProperties.getServers()).thenReturn("localhost:9092");
- when(kafkaProperties.getAlertsDataTopic()).thenReturn("alerts");
- when(kafkaProperties.getMetricsDataTopic()).thenReturn("metrics");
- when(kafkaProperties.getServiceDiscoveryDataTopic()).thenReturn("serviceDiscovery");
- CommonProperties properties = mock(CommonProperties.class);
- CommonProperties.DataQueueProperties queueProperties = mock(CommonProperties.DataQueueProperties.class);
- when(properties.getQueue()).thenReturn(queueProperties);
- when(queueProperties.getKafka()).thenReturn(kafkaProperties);
-
- metricsDataProducer = mock(KafkaProducer.class);
- alertDataProducer = mock(KafkaProducer.class);
- alertDataConsumer = mock(KafkaConsumer.class);
- metricsDataToAlertConsumer = mock(KafkaConsumer.class);
- metricsDataToPersistentStorageConsumer = mock(KafkaConsumer.class);
- metricsDataToRealTimeStorageConsumer = mock(KafkaConsumer.class);
- serviceDiscoveryDataConsumer = mock(KafkaConsumer.class);
-
- kafkaCommonDataQueue = new KafkaCommonDataQueue(properties);
+ // 模拟 consumer 的 subscribe 方法
+ doNothing().when(metricsDataToAlertConsumer).subscribe(anyCollection());
+ kafkaCommonDataQueue = new KafkaCommonDataQueue(commonProperties);
+
+ // 使用反射设置私有字段
setPrivateField(kafkaCommonDataQueue, "metricsDataProducer", metricsDataProducer);
- setPrivateField(kafkaCommonDataQueue, "alertDataProducer", alertDataProducer);
- setPrivateField(kafkaCommonDataQueue, "alertDataConsumer", alertDataConsumer);
setPrivateField(kafkaCommonDataQueue, "metricsDataToAlertConsumer", metricsDataToAlertConsumer);
- setPrivateField(kafkaCommonDataQueue, "metricsDataToPersistentStorageConsumer", metricsDataToPersistentStorageConsumer);
- setPrivateField(kafkaCommonDataQueue, "metricsDataToRealTimeStorageConsumer", metricsDataToRealTimeStorageConsumer);
- setPrivateField(kafkaCommonDataQueue, "serviceDiscoveryDataConsumer", serviceDiscoveryDataConsumer);
- }
-
- // Test use, set private field.
- private void setPrivateField(Object target, String fieldName, Object value) throws Exception {
-
- Field field = target.getClass().getDeclaredField(fieldName);
- field.setAccessible(true);
- field.set(target, value);
- }
-
- @Test
- void testSendAlertsData() {
-
- Alert alert = new Alert();
- kafkaCommonDataQueue.sendAlertsData(alert);
-
- ArgumentCaptor> captor = ArgumentCaptor.forClass(ProducerRecord.class);
- verify(alertDataProducer).send(captor.capture());
-
- ProducerRecord record = captor.getValue();
- assertEquals("alerts", record.topic());
- assertEquals(alert, record.value());
- }
-
- @Test
- void testPollAlertsData() throws InterruptedException {
-
- Alert alert = new Alert();
- ConsumerRecords records = new ConsumerRecords<>(Collections.emptyMap());
- when(alertDataConsumer.poll(Duration.ofSeconds(1))).thenReturn(records);
-
- assertNull(kafkaCommonDataQueue.pollAlertsData());
-
- records = new ConsumerRecords<>(Collections.singletonMap(
- new TopicPartition("alerts", 0),
- Collections.singletonList(
- new ConsumerRecord<>("alerts", 0, 0L, 1L, alert)
- )
- ));
- when(alertDataConsumer.poll(Duration.ofSeconds(1))).thenReturn(records);
-
- assertEquals(alert, kafkaCommonDataQueue.pollAlertsData());
}
@Test
void testSendMetricsData() {
+ CollectRep.MetricsData metricsData = CollectRep.MetricsData.newBuilder()
+ .setMetrics("test metrics")
+ .build();
- CollectRep.MetricsData metricsData = CollectRep.MetricsData.newBuilder().build();
kafkaCommonDataQueue.sendMetricsData(metricsData);
- ArgumentCaptor> captor = ArgumentCaptor.forClass(ProducerRecord.class);
- verify(metricsDataProducer).send(captor.capture());
-
- ProducerRecord record = captor.getValue();
- assertEquals("metrics", record.topic());
- assertEquals(metricsData, record.value());
+ verify(metricsDataProducer).send(any());
}
@Test
void testPollMetricsDataToAlerter() throws InterruptedException {
-
- CollectRep.MetricsData metricsData = CollectRep.MetricsData.newBuilder().build();
- ConsumerRecords records = new ConsumerRecords<>(Collections.emptyMap());
- when(metricsDataToAlertConsumer.poll(Duration.ofSeconds(1))).thenReturn(records);
-
- assertNull(kafkaCommonDataQueue.pollMetricsDataToAlerter());
-
- records = new ConsumerRecords<>(Collections.singletonMap(
- new TopicPartition("metrics", 0),
- Collections.singletonList(
- new ConsumerRecord<>("metrics", 0, 0L, 1L, metricsData)
- )
- ));
- when(metricsDataToAlertConsumer.poll(Duration.ofSeconds(1))).thenReturn(records);
-
- assertEquals(metricsData, kafkaCommonDataQueue.pollMetricsDataToAlerter());
+ // 创建一个测试数据
+ CollectRep.MetricsData expectedData = CollectRep.MetricsData.newBuilder()
+ .setMetrics("test metrics")
+ .build();
+
+ // 创建一个包含测试数据的 ConsumerRecord
+ ConsumerRecord record =
+ new ConsumerRecord<>("metricsDataTopic", 0, 0L, 1L, expectedData);
+
+ // 创建一个包含单个记录的 ConsumerRecords
+ Map>> recordsMap =
+ Collections.singletonMap(
+ new TopicPartition("metricsDataTopic", 0),
+ Collections.singletonList(record));
+ ConsumerRecords records = new ConsumerRecords<>(recordsMap);
+
+ when(metricsDataToAlertConsumer.poll(any(Duration.class))).thenReturn(records);
+
+ CollectRep.MetricsData result = kafkaCommonDataQueue.pollMetricsDataToAlerter();
+ assertEquals(expectedData, result);
+
+ verify(metricsDataToAlertConsumer).commitAsync();
}
@Test
void testDestroy() throws Exception {
-
kafkaCommonDataQueue.destroy();
-
- verify(metricsDataProducer).close();
- verify(alertDataProducer).close();
- verify(alertDataConsumer).close();
verify(metricsDataToAlertConsumer).close();
- verify(metricsDataToPersistentStorageConsumer).close();
- verify(metricsDataToRealTimeStorageConsumer).close();
+ verify(metricsDataProducer).close();
+ }
+
+ private void setPrivateField(Object object, String fieldName, Object value) throws Exception {
+ Field field = object.getClass().getDeclaredField(fieldName);
+ field.setAccessible(true);
+ field.set(object, value);
}
}
diff --git a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/RedisCommonDataQueueTest.java b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/RedisCommonDataQueueTest.java
index 8df98643aae..846b399515b 100644
--- a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/RedisCommonDataQueueTest.java
+++ b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/queue/impl/RedisCommonDataQueueTest.java
@@ -19,26 +19,22 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import com.fasterxml.jackson.databind.ObjectMapper;
import io.lettuce.core.RedisClient;
import io.lettuce.core.RedisURI;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands;
import org.apache.hertzbeat.common.config.CommonProperties;
-import org.apache.hertzbeat.common.entity.alerter.Alert;
import org.apache.hertzbeat.common.entity.message.CollectRep;
-import org.apache.hertzbeat.common.util.ProtoJsonUtil;
+import org.apache.hertzbeat.common.serialize.RedisMetricsDataCodec;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.MockedStatic;
-import org.mockito.MockitoAnnotations;
import org.mockito.junit.jupiter.MockitoExtension;
/**
@@ -49,27 +45,18 @@
class RedisCommonDataQueueTest {
@Mock
- private StatefulRedisConnection connection;
+ private StatefulRedisConnection connection;
@Mock
- private RedisCommands syncCommands;
-
- @Mock
- private ObjectMapper objectMapper;
-
+ private RedisCommands syncCommands;
+
private RedisClient redisClient;
-
private CommonProperties commonProperties;
-
private CommonProperties.RedisProperties redisProperties;
-
private RedisCommonDataQueue redisCommonDataQueue;
@BeforeEach
public void setUp() {
-
- MockitoAnnotations.openMocks(this);
-
redisClient = mock(RedisClient.class);
commonProperties = mock(CommonProperties.class);
redisProperties = mock(CommonProperties.RedisProperties.class);
@@ -77,45 +64,26 @@ public void setUp() {
when(commonProperties.getQueue()).thenReturn(dataQueueProperties);
when(dataQueueProperties.getRedis()).thenReturn(redisProperties);
-
+ when(redisProperties.getMetricsDataQueueNameToAlerter()).thenReturn("metricsDataQueueToAlerter");
when(redisProperties.getRedisHost()).thenReturn("localhost");
when(redisProperties.getRedisPort()).thenReturn(6379);
- when(redisProperties.getMetricsDataQueueNameToAlerter()).thenReturn("metricsDataQueueToAlerter");
- when(redisProperties.getMetricsDataQueueNameToPersistentStorage()).thenReturn("metricsDataQueueToPersistentStorage");
- when(redisProperties.getMetricsDataQueueNameToRealTimeStorage()).thenReturn("metricsDataQueueToRealTimeStorage");
- when(redisProperties.getAlertsDataQueueName()).thenReturn("alertsDataQueue");
try (MockedStatic mockedRedisClient = mockStatic(RedisClient.class)) {
-
- mockedRedisClient.when(() -> RedisClient.create(
- any(RedisURI.class))
- ).thenReturn(redisClient);
-
- when(redisClient.connect()).thenReturn(connection);
+ mockedRedisClient.when(() -> RedisClient.create(any(RedisURI.class))).thenReturn(redisClient);
+ when(redisClient.connect(any(RedisMetricsDataCodec.class))).thenReturn(connection);
when(connection.sync()).thenReturn(syncCommands);
redisCommonDataQueue = new RedisCommonDataQueue(commonProperties);
}
}
- @Test
- public void testPollAlertsData() throws Exception {
-
- String alertJson = "{\"id\":\"1\",\"content\":\"Test Alert\"}";
- Alert expectedAlert = Alert.builder().id(1L).content("Test Alert").build();
-
- when(syncCommands.rpop(anyString())).thenReturn(alertJson);
- Alert actualAlert = redisCommonDataQueue.pollAlertsData();
- assertEquals(expectedAlert, actualAlert);
- }
-
@Test
public void testPollMetricsDataToAlerter() throws Exception {
+ CollectRep.MetricsData metricsData = CollectRep.MetricsData.newBuilder()
+ .setMetrics("test metrics")
+ .build();
- CollectRep.MetricsData metricsData = CollectRep.MetricsData.newBuilder().setMetrics("test metrics").build();
- String metricsDataJson = "{\"metrics\":\"test metrics\"}";
-
- when(syncCommands.rpop("metricsDataQueueToAlerter")).thenReturn(metricsDataJson);
+ when(syncCommands.rpop("metricsDataQueueToAlerter")).thenReturn(metricsData);
CollectRep.MetricsData actualMetricsData = redisCommonDataQueue.pollMetricsDataToAlerter();
assertEquals(metricsData, actualMetricsData);
@@ -123,37 +91,19 @@ public void testPollMetricsDataToAlerter() throws Exception {
@Test
public void testSendMetricsData() throws Exception {
- CollectRep.MetricsData metricsData = CollectRep.MetricsData.newBuilder().setMetrics("test metrics").build();
- String metricsDataJson = ProtoJsonUtil.toJsonStr(metricsData);
+ CollectRep.MetricsData metricsData = CollectRep.MetricsData.newBuilder()
+ .setMetrics("test metrics")
+ .build();
redisCommonDataQueue.sendMetricsData(metricsData);
- verify(syncCommands).lpush("metricsDataQueueToAlerter", metricsDataJson);
- verify(syncCommands).lpush("metricsDataQueueToPersistentStorage", metricsDataJson);
- verify(syncCommands).lpush("metricsDataQueueToRealTimeStorage", metricsDataJson);
- }
-
- @SuppressWarnings("checkstyle:OperatorWrap")
- @Test
- public void testSendAlertsData() throws Exception {
-
- Alert alert = Alert.builder()
- .content("test")
- .build();
- String alertJson = "{\"id\":null,\"target\":null,\"alertDefineId\":null,\"priority\":0,\"content\":\"test\"," +
- "\"status\":0,\"times\":null,\"firstAlarmTime\":null,\"lastAlarmTime\":null,\"triggerTimes\":null," +
- "\"tags\":null,\"creator\":null,\"modifier\":null,\"gmtCreate\":null,\"gmtUpdate\":null}";
- redisCommonDataQueue.sendAlertsData(alert);
-
- verify(syncCommands).lpush("alertsDataQueue", alertJson);
+ verify(syncCommands).lpush("metricsDataQueueToAlerter", metricsData);
}
@Test
public void testDestroy() {
redisCommonDataQueue.destroy();
-
verify(connection).close();
verify(redisClient).shutdown();
}
-
}
diff --git a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataDeserializerTest.java b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataDeserializerTest.java
index 031c8120a34..06f013f8c80 100644
--- a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataDeserializerTest.java
+++ b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataDeserializerTest.java
@@ -19,7 +19,12 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.nio.channels.Channels;
import java.util.Map;
+import org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.arrow.vector.ipc.ArrowStreamWriter;
import org.apache.hertzbeat.common.entity.message.CollectRep;
import org.apache.kafka.common.header.Headers;
import org.junit.jupiter.api.BeforeEach;
@@ -62,11 +67,20 @@ void testDeserializeWithBytes() {
.setMetrics("someValue")
.setApp("linux")
.build();
- byte[] bytes = expectedMetricsData.toByteArray();
+ byte[] bytes = null;
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream();
+ VectorSchemaRoot root = expectedMetricsData.toVectorSchemaRootAndRelease();
+ ArrowStreamWriter writer = new ArrowStreamWriter(root,
+ null, Channels.newChannel(out))) {
+ writer.start();
+ writer.writeBatch();
+ writer.end();
+ bytes = out.toByteArray();
+ } catch (IOException ignored) {}
CollectRep.MetricsData actualMetricsData = deserializer.deserialize("", bytes);
- assertEquals(expectedMetricsData, actualMetricsData);
+ assertEquals(expectedMetricsData.rowCount(), actualMetricsData.rowCount());
}
@Test
@@ -84,11 +98,20 @@ void testDeserializeWithHeaders() {
.setMetrics("someValue")
.setApp("linux")
.build();
- byte[] bytes = expectedMetricsData.toByteArray();
+ byte[] bytes = null;
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream();
+ VectorSchemaRoot root = expectedMetricsData.toVectorSchemaRootAndRelease();
+ ArrowStreamWriter writer = new ArrowStreamWriter(root,
+ null, Channels.newChannel(out))) {
+ writer.start();
+ writer.writeBatch();
+ writer.end();
+ bytes = out.toByteArray();
+ } catch (IOException ignored) {}
CollectRep.MetricsData actualMetricsData = deserializer.deserialize("topic", headers, bytes);
- assertEquals(expectedMetricsData, actualMetricsData);
+ assertEquals(expectedMetricsData.rowCount(), actualMetricsData.rowCount());
}
@Test
diff --git a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataSerializerTest.java b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataSerializerTest.java
index f434774e8df..dbb7807201c 100644
--- a/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataSerializerTest.java
+++ b/hertzbeat-common/src/test/java/org/apache/hertzbeat/common/serialize/KafkaMetricsDataSerializerTest.java
@@ -20,7 +20,12 @@
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.nio.channels.Channels;
import java.util.Map;
+import org.apache.arrow.vector.VectorSchemaRoot;
+import org.apache.arrow.vector.ipc.ArrowStreamWriter;
import org.apache.hertzbeat.common.entity.message.CollectRep;
import org.apache.kafka.common.header.Headers;
import org.junit.jupiter.api.BeforeEach;
@@ -66,7 +71,6 @@ void testSerializeWithMetricsData() {
byte[] bytes = serializer.serialize("", metricsData);
assertNotNull(bytes);
- assertArrayEquals(metricsData.toByteArray(), bytes);
}
@Test
@@ -84,9 +88,17 @@ void testSerializeWithHeaders() {
.setMetrics("someValue")
.setApp("linux")
.build();
- byte[] expectedBytes = metricsData.toByteArray();
+ byte[] expectedBytes = null;
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream();
+ VectorSchemaRoot root = metricsData.toVectorSchemaRootAndRelease();
+ ArrowStreamWriter writer = new ArrowStreamWriter(root,
+ null, Channels.newChannel(out))) {
+ writer.start();
+ writer.writeBatch();
+ writer.end();
+ expectedBytes = out.toByteArray();
+ } catch (IOException ignored) {}
byte[] bytes = serializer.serialize("topic", headers, metricsData);
-
assertArrayEquals(expectedBytes, bytes);
}
diff --git a/hertzbeat-e2e/hertzbeat-collector-basic-e2e/src/test/java/org/apache/hertzbeat/collector/collect/basic/ssh/SshCollectE2eTest.java b/hertzbeat-e2e/hertzbeat-collector-basic-e2e/src/test/java/org/apache/hertzbeat/collector/collect/basic/ssh/SshCollectE2eTest.java
index 86099c02400..211dbb02dad 100644
--- a/hertzbeat-e2e/hertzbeat-collector-basic-e2e/src/test/java/org/apache/hertzbeat/collector/collect/basic/ssh/SshCollectE2eTest.java
+++ b/hertzbeat-e2e/hertzbeat-collector-basic-e2e/src/test/java/org/apache/hertzbeat/collector/collect/basic/ssh/SshCollectE2eTest.java
@@ -139,7 +139,7 @@ private CollectRep.MetricsData.Builder executeCollection(Metrics metricsDef) {
// Execute collection
CollectRep.MetricsData.Builder builder = CollectRep.MetricsData.newBuilder();
- sshCollect.collect(builder, 0, "ubuntu", metrics);
+ sshCollect.collect(builder, metrics);
return builder;
}
@@ -181,4 +181,4 @@ private String generateRandomPassword() {
}
return password.toString();
}
-}
\ No newline at end of file
+}
diff --git a/hertzbeat-e2e/hertzbeat-collector-kafka-e2e/src/test/java/org/apache/hertzbeat/collector/collect/kafka/KafkaCollectE2eTest.java b/hertzbeat-e2e/hertzbeat-collector-kafka-e2e/src/test/java/org/apache/hertzbeat/collector/collect/kafka/KafkaCollectE2eTest.java
index 6edf0615dfe..1439f9c426e 100644
--- a/hertzbeat-e2e/hertzbeat-collector-kafka-e2e/src/test/java/org/apache/hertzbeat/collector/collect/kafka/KafkaCollectE2eTest.java
+++ b/hertzbeat-e2e/hertzbeat-collector-kafka-e2e/src/test/java/org/apache/hertzbeat/collector/collect/kafka/KafkaCollectE2eTest.java
@@ -121,14 +121,14 @@ public void testKafkaCollect() throws ExecutionException, InterruptedException,
// Verify the information of topic list monitoring
builder = CollectRep.MetricsData.newBuilder();
- kafkaCollect.collect(builder, 0, "kafka", metrics);
+ kafkaCollect.collect(builder, metrics);
Assertions.assertTrue(builder.getValuesList().stream()
.anyMatch(valueRow -> valueRow.getColumns(0).equals(topicName)));
// Verify the information monitored by topic description
builder = CollectRep.MetricsData.newBuilder();
kafkaProtocol.setCommand("topic-describe");
- kafkaCollect.collect(builder, 0, "kafka", metrics);
+ kafkaCollect.collect(builder, metrics);
List topicDescribeList = builder.getValuesList();
CollectRep.ValueRow firstRow = topicDescribeList.get(0);
Assertions.assertAll(
diff --git a/hertzbeat-manager/pom.xml b/hertzbeat-manager/pom.xml
index 8b459bb8665..ea316d41d6a 100644
--- a/hertzbeat-manager/pom.xml
+++ b/hertzbeat-manager/pom.xml
@@ -221,6 +221,15 @@
+
+
+ org.apache.arrow
+ arrow-vector
+
+
+ org.apache.arrow
+ arrow-memory-netty
+
diff --git a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/component/sd/ServiceDiscoveryWorker.java b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/component/sd/ServiceDiscoveryWorker.java
index 4c8d2f6da44..d01f78c6ea2 100644
--- a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/component/sd/ServiceDiscoveryWorker.java
+++ b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/component/sd/ServiceDiscoveryWorker.java
@@ -22,13 +22,13 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.hertzbeat.common.constants.CommonConstants;
+import org.apache.hertzbeat.common.entity.arrow.RowWrapper;
import org.apache.hertzbeat.common.entity.manager.CollectorMonitorBind;
import org.apache.hertzbeat.common.entity.manager.Monitor;
import org.apache.hertzbeat.common.entity.manager.MonitorBind;
@@ -82,13 +82,10 @@ private class SdUpdateTask implements Runnable {
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
- try {
- final CollectRep.MetricsData serviceDiscoveryData = dataQueue.pollServiceDiscoveryData();
- if (Objects.isNull(serviceDiscoveryData)) {
- continue;
- }
+ try (final CollectRep.MetricsData metricsData = dataQueue.pollServiceDiscoveryData()) {
- final Monitor mainMonitor = monitorDao.findMonitorsByIdIn(Sets.newHashSet(serviceDiscoveryData.getId())).get(0);
+ Long monitorId = metricsData.getId();
+ final Monitor mainMonitor = monitorDao.findMonitorsByIdIn(Sets.newHashSet(monitorId)).get(0);
mainMonitor.setTags(mainMonitor.getTags().stream().filter(tag -> tag.getType() != CommonConstants.TAG_TYPE_AUTO_GENERATE).collect(Collectors.toList()));
// collector
final Optional collectorBind = collectorMonitorBindDao.findCollectorMonitorBindByMonitorId(mainMonitor.getId());
@@ -97,7 +94,7 @@ public void run() {
List mainMonitorParamList = paramDao.findParamsByMonitorId(mainMonitor.getId());
mainMonitorParamList = SdMonitorOperator.removeSdParam(mainMonitorParamList);
- final Set subMonitorIdSet = monitorBindDao.findMonitorBindByBizIdAndType(serviceDiscoveryData.getId(), CommonConstants.MONITOR_BIND_TYPE_SD_SUB_MONITOR)
+ final Set subMonitorIdSet = monitorBindDao.findMonitorBindByBizIdAndType(monitorId, CommonConstants.MONITOR_BIND_TYPE_SD_SUB_MONITOR)
.stream()
.map(MonitorBind::getMonitorId)
.collect(Collectors.toSet());
@@ -105,9 +102,14 @@ public void run() {
? Maps.newHashMap()
: monitorDao.findMonitorsByIdIn(subMonitorIdSet).stream().collect(Collectors.groupingBy(Monitor::getHost));
- for (CollectRep.ValueRow row : serviceDiscoveryData.getValuesList()) {
- final String host = row.getColumns(CommonConstants.SD_HOST_COLUMN);
- final String port = row.getColumns(CommonConstants.SD_PORT_COLUMN);
+ RowWrapper rowWrapper = metricsData.readRow();
+
+ while (rowWrapper.hasNextRow()) {
+ rowWrapper = rowWrapper.nextRow();
+
+
+ final String host = rowWrapper.nextCell().getValue();
+ final String port = rowWrapper.nextCell().getValue();
final List monitorList = hostMonitorMap.get(host);
if (CollectionUtils.isEmpty(monitorList)) {
monitorService.addAndSaveMonitorJob(mainMonitor.clone(), SdMonitorOperator.cloneParamList(mainMonitorParamList), collector,
@@ -116,7 +118,7 @@ public void run() {
.detectedPort(port)
.bizId(mainMonitor.getId())
.build(), null);
- continue;
+ return;
}
for (Monitor monitor : monitorList) {
@@ -155,4 +157,4 @@ public void run() {
}
}
}
-}
\ No newline at end of file
+}
diff --git a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/CollectorJobScheduler.java b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/CollectorJobScheduler.java
index c53bd411e22..30d02a28df0 100644
--- a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/CollectorJobScheduler.java
+++ b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/CollectorJobScheduler.java
@@ -17,6 +17,7 @@
package org.apache.hertzbeat.manager.scheduler;
+import com.google.protobuf.ByteString;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
@@ -211,7 +212,7 @@ public void reBalanceCollectorAssignJobs() {
ClusterMsg.Message message = ClusterMsg.Message.newBuilder()
.setDirection(ClusterMsg.Direction.REQUEST)
.setType(ClusterMsg.MessageType.ISSUE_CYCLIC_TASK)
- .setMsg(JsonUtil.toJson(job))
+ .setMsg(ByteString.copyFromUtf8(JsonUtil.toJson(job)))
.build();
this.manageServer.sendMsg(collectorName, message);
}
@@ -226,7 +227,7 @@ public void reBalanceCollectorAssignJobs() {
ClusterMsg.Message message = ClusterMsg.Message.newBuilder()
.setDirection(ClusterMsg.Direction.REQUEST)
.setType(ClusterMsg.MessageType.DELETE_CYCLIC_TASK)
- .setMsg(JsonUtil.toJson(assignJobs.getRemovingJobs()))
+ .setMsg(ByteString.copyFromUtf8(JsonUtil.toJson(assignJobs.getRemovingJobs())))
.build();
this.manageServer.sendMsg(collectorName, message);
}
@@ -299,7 +300,7 @@ public List collectSyncJobData(Job job) {
ClusterMsg.Message message = ClusterMsg.Message.newBuilder()
.setType(ClusterMsg.MessageType.ISSUE_ONE_TIME_TASK)
.setDirection(ClusterMsg.Direction.REQUEST)
- .setMsg(JsonUtil.toJson(job))
+ .setMsg(ByteString.copyFromUtf8(JsonUtil.toJson(job)))
.build();
boolean result = this.manageServer.sendMsg(node.getIdentity(), message);
@@ -342,7 +343,7 @@ public List collectSyncJobData(Job job, String collector
ClusterMsg.Message message = ClusterMsg.Message.newBuilder()
.setType(ClusterMsg.MessageType.ISSUE_ONE_TIME_TASK)
.setDirection(ClusterMsg.Direction.REQUEST)
- .setMsg(JsonUtil.toJson(job))
+ .setMsg(ByteString.copyFromUtf8(JsonUtil.toJson(job)))
.build();
boolean result = this.manageServer.sendMsg(node.getIdentity(), message);
if (result) {
@@ -394,7 +395,7 @@ public long addAsyncCollectJob(Job job, String collector) {
ClusterMsg.Message message = ClusterMsg.Message.newBuilder()
.setType(ClusterMsg.MessageType.ISSUE_CYCLIC_TASK)
.setDirection(ClusterMsg.Direction.REQUEST)
- .setMsg(JsonUtil.toJson(job))
+ .setMsg(ByteString.copyFromUtf8(JsonUtil.toJson(job)))
.build();
this.manageServer.sendMsg(node.getIdentity(), message);
}
@@ -437,7 +438,7 @@ public void cancelAsyncCollectJob(Long jobId) {
ClusterMsg.Message deleteMessage = ClusterMsg.Message.newBuilder()
.setType(ClusterMsg.MessageType.DELETE_CYCLIC_TASK)
.setDirection(ClusterMsg.Direction.REQUEST)
- .setMsg(JsonUtil.toJson(List.of(jobId)))
+ .setMsg(ByteString.copyFromUtf8(JsonUtil.toJson(List.of(jobId))))
.build();
this.manageServer.sendMsg(node.getIdentity(), deleteMessage);
}
diff --git a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectCyclicDataResponseProcessor.java b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectCyclicDataResponseProcessor.java
index b881d3350f7..74d415c27c6 100644
--- a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectCyclicDataResponseProcessor.java
+++ b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectCyclicDataResponseProcessor.java
@@ -18,12 +18,13 @@
package org.apache.hertzbeat.manager.scheduler.netty.process;
import io.netty.channel.ChannelHandlerContext;
+import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.apache.hertzbeat.common.entity.message.ClusterMsg;
import org.apache.hertzbeat.common.entity.message.CollectRep;
import org.apache.hertzbeat.common.queue.CommonDataQueue;
import org.apache.hertzbeat.common.support.SpringContextHolder;
-import org.apache.hertzbeat.common.util.ProtoJsonUtil;
+import org.apache.hertzbeat.common.util.ArrowUtil;
import org.apache.hertzbeat.remoting.netty.NettyRemotingProcessor;
/**
@@ -34,10 +35,11 @@ public class CollectCyclicDataResponseProcessor implements NettyRemotingProcesso
@Override
public ClusterMsg.Message handle(ChannelHandlerContext ctx, ClusterMsg.Message message) {
CommonDataQueue dataQueue = SpringContextHolder.getBean(CommonDataQueue.class);
- CollectRep.MetricsData metricsData = (CollectRep.MetricsData) ProtoJsonUtil.toProtobuf(message.getMsg(),
- CollectRep.MetricsData.newBuilder());
- if (metricsData != null) {
- dataQueue.sendMetricsData(metricsData);
+ List metricsDataList = ArrowUtil.deserializeMetricsData(message.getMsg().toByteArray());
+ for (CollectRep.MetricsData metricsData : metricsDataList) {
+ if (metricsData != null) {
+ dataQueue.sendMetricsData(metricsData);
+ }
}
return null;
}
diff --git a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectCyclicServiceDiscoveryDataResponseProcessor.java b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectCyclicServiceDiscoveryDataResponseProcessor.java
index 0f01aec0264..d8e8a8c2480 100644
--- a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectCyclicServiceDiscoveryDataResponseProcessor.java
+++ b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectCyclicServiceDiscoveryDataResponseProcessor.java
@@ -18,12 +18,13 @@
package org.apache.hertzbeat.manager.scheduler.netty.process;
import io.netty.channel.ChannelHandlerContext;
+import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.apache.hertzbeat.common.entity.message.ClusterMsg;
import org.apache.hertzbeat.common.entity.message.CollectRep;
import org.apache.hertzbeat.common.queue.CommonDataQueue;
import org.apache.hertzbeat.common.support.SpringContextHolder;
-import org.apache.hertzbeat.common.util.ProtoJsonUtil;
+import org.apache.hertzbeat.common.util.ArrowUtil;
import org.apache.hertzbeat.remoting.netty.NettyRemotingProcessor;
/**
@@ -34,11 +35,12 @@ public class CollectCyclicServiceDiscoveryDataResponseProcessor implements Netty
@Override
public ClusterMsg.Message handle(ChannelHandlerContext ctx, ClusterMsg.Message message) {
CommonDataQueue dataQueue = SpringContextHolder.getBean(CommonDataQueue.class);
- CollectRep.MetricsData metricsData = (CollectRep.MetricsData) ProtoJsonUtil.toProtobuf(message.getMsg(),
- CollectRep.MetricsData.newBuilder());
- if (metricsData != null) {
- dataQueue.sendServiceDiscoveryData(metricsData);
+ List metricsDataList = ArrowUtil.deserializeMetricsData(message.getMsg().toByteArray());
+ for (CollectRep.MetricsData metricsData : metricsDataList) {
+ if (metricsData != null) {
+ dataQueue.sendServiceDiscoveryData(metricsData);
+ }
}
return null;
}
-}
\ No newline at end of file
+}
diff --git a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectOneTimeDataResponseProcessor.java b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectOneTimeDataResponseProcessor.java
index eb00b7366ce..b9e064d7b45 100644
--- a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectOneTimeDataResponseProcessor.java
+++ b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectOneTimeDataResponseProcessor.java
@@ -17,15 +17,12 @@
package org.apache.hertzbeat.manager.scheduler.netty.process;
-import com.fasterxml.jackson.core.type.TypeReference;
import io.netty.channel.ChannelHandlerContext;
-import java.util.ArrayList;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.apache.hertzbeat.common.entity.message.ClusterMsg;
import org.apache.hertzbeat.common.entity.message.CollectRep;
-import org.apache.hertzbeat.common.util.JsonUtil;
-import org.apache.hertzbeat.common.util.ProtoJsonUtil;
+import org.apache.hertzbeat.common.util.ArrowUtil;
import org.apache.hertzbeat.manager.scheduler.netty.ManageServer;
import org.apache.hertzbeat.remoting.netty.NettyRemotingProcessor;
@@ -43,21 +40,8 @@ public CollectOneTimeDataResponseProcessor(ManageServer manageServer) {
@Override
public ClusterMsg.Message handle(ChannelHandlerContext ctx, ClusterMsg.Message message) {
- TypeReference> typeReference = new TypeReference<>() {
- };
- List jsonArr = JsonUtil.fromJson(message.getMsg(), typeReference);
- if (jsonArr == null) {
- log.error("netty receive response one time task data parse null error");
- return null;
- }
- List metricsDataList = new ArrayList<>(jsonArr.size());
- for (String str : jsonArr) {
- CollectRep.MetricsData metricsData = (CollectRep.MetricsData) ProtoJsonUtil.toProtobuf(str,
- CollectRep.MetricsData.newBuilder());
- if (metricsData != null) {
- metricsDataList.add(metricsData);
- }
- }
+
+ List metricsDataList = ArrowUtil.deserializeMetricsData(message.getMsg().toByteArray());
this.manageServer.getCollectorAndJobScheduler().collectSyncJobResponse(metricsDataList);
return null;
}
diff --git a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectorOnlineProcessor.java b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectorOnlineProcessor.java
index f48412232e8..0c54258632f 100644
--- a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectorOnlineProcessor.java
+++ b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/scheduler/netty/process/CollectorOnlineProcessor.java
@@ -42,7 +42,8 @@ public CollectorOnlineProcessor(final ManageServer manageServer) {
public ClusterMsg.Message handle(ChannelHandlerContext ctx, ClusterMsg.Message message) {
String collector = message.getIdentity();
log.info("the collector {} actively requests to go online.", collector);
- CollectorInfo collectorInfo = JsonUtil.fromJson(message.getMsg(), CollectorInfo.class);
+ String msg = message.getMsg().toStringUtf8();
+ CollectorInfo collectorInfo = JsonUtil.fromJson(msg, CollectorInfo.class);
if (collectorInfo != null && StringUtils.isBlank(collectorInfo.getIp())) {
// fetch remote ip address
InetSocketAddress socketAddress = (InetSocketAddress) ctx.channel().remoteAddress();
diff --git a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
index 6f879c5bb70..e58300228cf 100644
--- a/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
+++ b/hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java
@@ -146,7 +146,7 @@ public Job getAutoGenerateDynamicDefine(Long monitorId) {
Metrics tmpMetrics = job.getMetrics().get(0);
List metricsList = new LinkedList<>();
for (CollectRep.MetricsData metricsData : metricsDataList) {
- List fields = metricsData.getFieldsList().stream().map(item ->
+ List fields = metricsData.getFields().stream().map(item ->
Metrics.Field.builder()
.field(item.getName())
.type((byte) item.getType())
@@ -311,7 +311,7 @@ private void queryAppHierarchy(String lang, LinkedList