forked from apache/skywalking-query-protocol
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtopology.graphqls
More file actions
118 lines (106 loc) · 4.23 KB
/
topology.graphqls
File metadata and controls
118 lines (106 loc) · 4.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# 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.
# Topology v1.1 is introduced from SkyWalking v9 core.
# Change logs
# - Deprecated `isReal`, due to in v9, service is about real or not real, it has native layer attribute to determine its type and scope.
# - Deprecated `type` in instance topology and endpoint dependency, because by their latest definitions, they are subsets of services, no point has specific type.
# - All deprecated fields are kept for keeping back-forward compatibility. `isReal=true` and `type=(empty string)` are default values only.
# The overview topology of the whole application cluster or services,
type Topology {
nodes: [Node!]!
calls: [Call!]!
}
# The instance topology based on the given serviceIds
type ServiceInstanceTopology {
nodes: [ServiceInstanceNode!]!
calls: [Call!]!
}
# The endpoint topology
type EndpointTopology {
nodes: [EndpointNode!]!
calls: [Call!]!
}
# Node in Topology
type Node {
# The service ID of the node.
id: ID!
# The literal name of the #id.
name: String!
# The type name may be
# 1. The service provider/middleware tech, such as: Tomcat, SpringMVC
# 2. Conjectural Service, e.g. MySQL, Redis, Kafka
type: String
# Deprecated since 9.0.0. Don't need to use this anymore
isReal: Boolean!
}
# Node in ServiceInstanceTopology
type ServiceInstanceNode {
# The instance id of each node,
id: ID!
# The literal name of the #id. Instance Name.
name: String!
# Service id
serviceId: ID!
# The literal name of the #serviceId.
serviceName: String!
# Deprecated since 9.0.0. Instance is an executable unit of service, it doesn't have its own type.
type: String
# Deprecated since 9.0.0. Don't need to use this anymore
isReal: Boolean
}
# Node in EndpointTopology
type EndpointNode {
# The instance id of each node,
id: ID!
# The literal name of the #id. Endpoint Name
name: String!
# Service id
serviceId: ID!
# The literal name of the #serviceId.
serviceName: String!
# Deprecated since 9.0.0. The endpoint is the minimal functional unit., it doesn't have its own type.
type: String
# Deprecated since 9.0.0. Don't need to use this anymore
isReal: Boolean
}
# The Call represents a directed distributed call,
# from the `source` to the `target`.
type Call {
source: ID!
# The protocol and tech stack used at source side in this distributed call
sourceComponents: [ID!]!
target: ID!
# The protocol and tech stack used at target side in this distributed call
targetComponents: [ID!]!
id: ID!
# The detect Points of this distributed call.
detectPoints: [DetectPoint!]!
}
extend type Query {
# Query the global topology
getGlobalTopology(duration: Duration!): Topology
# Query the topology, based on the given service
getServiceTopology(serviceId: ID!, duration: Duration!): Topology
# Query the topology, based on the given services.
# `#getServiceTopology` could be replaced by this.
getServicesTopology(serviceIds: [ID!]!, duration: Duration!): Topology
# Query the instance topology, based on the given clientServiceId and serverServiceId
getServiceInstanceTopology(clientServiceId: ID!, serverServiceId: ID!, duration: Duration!): ServiceInstanceTopology
# Query the topology, based on the given endpoint
getEndpointTopology(endpointId: ID!, duration: Duration!): Topology
# v2 of getEndpointTopology
getEndpointDependencies(endpointId: ID!, duration: Duration!): EndpointTopology
}