You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2019/04/16 13:18:29 UTC

[incubator-skywalking-data-collect-protocol] 01/01: Create metric.proto

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch metric-proto
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking-data-collect-protocol.git

commit 88286b2d54b5b279f65ddb014fafa9dfa5976dcb
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Tue Apr 16 21:18:24 2019 +0800

    Create metric.proto
---
 metric/metric.proto | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)

diff --git a/metric/metric.proto b/metric/metric.proto
new file mode 100644
index 0000000..defe8c4
--- /dev/null
+++ b/metric/metric.proto
@@ -0,0 +1,87 @@
+/*
+ * 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";
+
+option java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.metric";
+option csharp_namespace = "SkyWalking.NetworkProtocol";
+
+import "register/Register.proto";
+import "common/common.proto";
+
+
+service MetricService {
+    rpc reportEntityMetric (stream EntityMetric) returns (MetricResponse) {
+    }
+
+    rpc reportRelationMetric (stream RelationMetric) returns (MetricResponse) {
+    }
+}
+
+message EntityMetric {
+    oneof metric_entity {
+        Service service = 1;
+        ServiceInstance service_instance = 2;
+        Endpoint endpoint = 3;
+    }
+
+    repeated Metric metrics = 4;
+}
+
+message RelationMetric {
+    oneof source_entity {
+        Service source_service = 1;
+        ServiceInstance source_service_instance = 2;
+        Endpoint source_endpoint = 3;
+    }
+
+    oneof dest_entity {
+        Service dest_service = 4;
+        ServiceInstance dest_service_instance = 5;
+        Endpoint dest_endpoint = 6;
+    }
+
+    repeated Metric metrics = 7;
+}
+
+message Metric {
+    Type type = 4;
+
+    Gauge gaugeValues = 5;
+    Histogram histogramValues = 6;
+
+    enum Type {
+        GAUGE = 0;
+        HISTOGRAM = 1;
+    }
+
+    message Gauge {
+        string name = 1;
+        int64 value = 2;
+    }
+
+    message Histogram {
+        string name = 1;
+        repeated IntKeyIntValuePair values = 2;
+    }
+}
+
+message MetricResponse {
+
+}