Support top n record query.
authorWu Sheng <wu.sheng@foxmail.com>
Tue, 12 Feb 2019 03:13:20 +0000 (11:13 +0800)
committerWu Sheng <wu.sheng@foxmail.com>
Tue, 12 Feb 2019 03:13:20 +0000 (11:13 +0800)
top-n-records.graphqls [new file with mode: 0644]

diff --git a/top-n-records.graphqls b/top-n-records.graphqls
new file mode 100644 (file)
index 0000000..63371c3
--- /dev/null
@@ -0,0 +1,40 @@
+# 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.
+
+# Top N record query is different with aggregation Query.
+# Both of query results are top N, but aggregation topN query needs to do aggregation at query stage,
+# the top N record query is just do order and get the list.
+
+# Top N query is based on latency order by given service and metric name.
+input TopNRecordsCondition {
+    serviceId: ID!
+    metricName: String!
+    topN: Int!
+    # Top N order, ASC or DES.
+    order: Order!
+}
+
+type TopNRecords {
+    statement: String
+    latency: Long!
+    # Have value, Only if the record has the trace id.
+    # Slow record
+    traceId: String
+}
+
+extend type Query {
+    getTopNRecords(condition: TopNRecordsCondition!): [TopNRecords!]!
+}