Changes between Version 72 and Version 73 of OperationalMonitoring/DataSchema
- Timestamp:
- 08/29/14 10:48:43 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
OperationalMonitoring/DataSchema
v72 v73 1 1 [[PageOutline]] 2 2 3 == REST Data Schema == 4 All of these inherit from the [http://unis.incntre.iu.edu/schema/20120709/networkresource network resource schema] with the exception of the opsconfig schema (which inherits from [http://unis.incntre.iu.edu/schema/20120709/domain domain schema]). 5 6 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/opsconfig]: operational configuration metadata, including locations of and information about other datastores 7 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/aggregate]: metadata about an aggregate (including lists of resources and slivers at that aggregate, and where to look for measurements about the aggregate) 8 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/node]: metadata about a resources (including resource properties termed "config" above, and a list of relevant ports (or of all ports, whichever is easier) on that resource) 9 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/port]: metadata about a network interface (including resource properties termed "config" above) 10 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/port-vlan]: metadata about a tagged VLAN subinterface of a network interface 11 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/sliver]: metadata about a sliver at an aggregate, including resources to which that sliver is mapped 12 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/authority]: metadata about a GENI authority (including lists of GENI users and slivers at that authority) 13 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/slice]: metadata about a slice at an authority, including GENI users with roles on that slice 14 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/user]: metadata about a GENI user at an authority, including contact information 15 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/experiment]: metadata about an operational monitoring experiment for monitoring the dataplane. 16 * [http://www.gpolab.bbn.com/monitoring/schema/20140501/data]: Schema based on a combination of [http://unis.incntre.iu.edu/schema/20120709/metadata] and [http://unis.incntre.iu.edu/schema/20120709/tsdatum], contains both metadata and data about measurements. 17 * For now, we would use the `ops_monitoring` namespace for operations monitoring, meaning: 18 * When we add monitoring-relevant optional properties to objects, we'll put them in an `ops_monitoring` dictionary 19 * When we setup operations monitoring measurements, we'll give them the eventType `ops_monitoring:<something>` 20 21 === Data schema usage example === 22 23 Some examples usages of the above schemas to encode metadata and data needed for use cases 3 and 6 follow. 24 25 These examples assume the following (fictitious) local datastore URLs. These are arbitrary, and any place they appear, they can be replaced by whatever name the deployers prefer. For simplicitly, i've shown one local datastore per aggregate here, but the architecture does ''not'' require that --- it would be perfectly fine to have one datastore for relational metadata and one for the data itself, or one for certain types of relational metadata and one for others. 3 == REST calls and JSON Replies for Monitoring Data == 4 5 Monitoring data collectors make REST calls to monitoring datastores. Datastores reply with JSON data that conforms to a JSON schema that is specific to the type of REST call being responded to. 6 All of these schemas inherit from the [http://unis.incntre.iu.edu/schema/20120709/networkresource UNIS network resource schema] with the exception of the opsconfig schema. 7 This page gives examples of these REST calls and responses. 8 These examples assume the following (fictitious) local datastore URLs. 9 For simplicitly, we show one local datastore per aggregate here, but the architecture does ''not'' require that. It is fine to have the data for an aggregate be split among multiple datastores. 26 10 * `https://datastore.geni.net/`: datastore containing configuration data for operational monitoring 27 11 * `https://datastore.instageni.gpolab.bbn.com/`: datastore for gpo-ig aggregate … … 29 13 * `https://datastore.externalchecks.geni.net/`: datastore for external checks in the monitoring framework (e.g. inter-aggregate pings, AM external availability) 30 14 31 ==== Data about operational monitoring configuration ==== 32 33 Operational monitoring configuration data tells collectors where to find local datastores, and includes relevant metadata (like URNs and metadata about datastore or aggregate types) that collectors can use to decide which datastores to query. It is described using [http://www.gpolab.bbn.com/monitoring/schema/20140501/opsconfig# the opsconfig schema]. Examples: 34 * geni-prod: a hypothetical config datastore listing production aggregates and authorities: 15 ==== Aggregate call and response ==== 16 17 Retrieves information about an aggregate, including lists of resources and slivers at that aggregate, version information, and where to look for measurements about the aggregate. 18 19 General form of the REST call: 20 {{{ 21 https://<datastore-host>/info/aggregate/<aggregate-id> 22 }}} 23 24 <aggregate-id> is usually the aggregate's GENI-assigned nickname (common name). 25 26 Example REST call for aggregate gpo-ig: 27 {{{ 28 https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig 29 }}} 30 31 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/aggregate# aggregate schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/aggregate.schema.jwc commented version of the aggregate schema]. 35 32 {{{ 36 33 { 37 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/opsconfig#", 38 "id": "geni-prod", 39 "selfRef": "https://datastore.geni.net/opsconfigs/geni-prod", 40 "ts": 1391192685740849, 41 "aggregates": [ 42 { 43 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm", 44 "amtype": "protogeni", 45 "href": "https://datastore.instageni.gpolab.bbn.com/aggregates/gpo-ig" 46 } 47 ], 48 "authorities": [ 49 { 50 "urn": "urn:publicid:IDN+ch.geni.net+authority+ch", 51 "href": "https://datastore.ch.geni.net/authorities/ch.geni.net" 52 } 53 ] 54 } 55 }}} 56 57 ==== Data about an aggregate ==== 58 59 Aggregates are indexed by GENI-agreed short name and described using [http://www.gpolab.bbn.com/monitoring/schema/20140501/aggregate# the aggregate schema]. Examples: 60 61 Hypothetical REST call for GPO-IG: 62 {{{ 63 https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig 64 }}} 65 Response: 66 {{{ 67 { 68 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/aggregate#", 34 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/aggregate#", 69 35 "id": "gpo-ig", 70 36 "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig", … … 72 38 "ts": 1391192685740849, 73 39 "measRef": "https://datastore.instageni.gpolab.bbn.com/data", 40 "monitoring_version": "v2.0", 41 "operational_status": "production", 74 42 "resources": [ 75 43 { 76 44 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1", 77 "href": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1" 45 "resource_type": "node", 46 "href": "https://datastore.instageni.gpolab.bbn.com/nodes/instageni.gpolab.bbn.com_node_pc1" 78 47 }, 79 48 { 80 49 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc2", 81 "href": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc2" 82 }, 83 { 84 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+link_001", 85 "href": "https://datastore.instageni.gpolab.bbn.com/info/link/instageni.gpolab.bbn.com_link_001" 50 "resource_type": "node", 51 "href": "https://datastore.instageni.gpolab.bbn.com/nodes/instageni.gpolab.bbn.com_node_pc2" 86 52 } 87 53 ], … … 89 55 { 90 56 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+26947", 91 "href": "https://datastore.instageni.gpolab.bbn.com/ info/sliver/instageni.gpolab.bbn.com_sliver_26947"57 "href": "https://datastore.instageni.gpolab.bbn.com/slivers/instageni.gpolab.bbn.com_sliver_36947" 92 58 } 93 59 ] … … 95 61 }}} 96 62 97 ==== Data about a node ==== 98 99 Nodes have an ID which is a URL-sanitized version of their URN and are described using [http://unis.incntre.iu.edu/schema/20140501/node# the node schema]. Examples: 100 Hypothetical REST call for GPO-IG PC1: 63 ==== Node call and response ==== 64 65 Retrieves information about a node. 66 67 General form of the REST call: 68 {{{ 69 https://<datastore-host>/info/node/<node object id> 70 }}} 71 72 Example REST call for gpo-ig node pc1: 101 73 {{{ 102 74 https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1 103 75 }}} 104 Response: 76 77 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/node node schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/node.schema.jwc commented version of the node schema]. 105 78 {{{ 106 79 { 107 "$schema": "http:// unis.incntre.iu.edu/schema/20140501/node#",80 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/node#", 108 81 "id": "instageni.gpolab.bbn.com_node_pc1", 109 82 "ts": 1391192705275101, 110 "selfRef": "https://datastore.instageni.gpolab.bbn.com/ info/node/instageni.gpolab.bbn.com_node_pc1",83 "selfRef": "https://datastore.instageni.gpolab.bbn.com/nodes/instageni.gpolab.bbn.com_node_pc1", 111 84 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1", 112 85 "ops_monitoring:mem_total_kb": 50331648, 113 "ops_monitoring:vm_server_type": "xen", 114 "ports": [ 86 "node_type": "server", 87 "virtualization_type": "xen", 88 "interfaces": [ 115 89 { 116 90 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth0", … … 133 107 }}} 134 108 135 ==== Data about a link ==== 136 137 Links have an ID which is a URL-sanitized version of their URN and are described using [http://www.gpolab.bbn.com/monitoring/schema/20140501/link# the link schema]. Examples: 138 Hypothetical REST call for GRNOC link salt_port_1750: 139 {{{ 140 https://datastore.grnoc.iu.edu/info/link/salt_port_1750 141 }}} 142 Response: 109 ==== Link call and response ==== 110 111 Retrieves information about a link. 112 113 General form of the REST call: 114 {{{ 115 https://<datastore-host>/info/link/<link object id> 116 }}} 117 118 Example REST call for arbitrary_id_001: 119 {{{ 120 https://datastore.grnoc.iu.edu/info/link/arbitrary_id_001 121 }}} 122 123 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/link# link schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/link.schema.jwc commented version of the link schema]. 143 124 {{{ 144 125 { 145 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/link#", 146 "id": "datastore.grnoc.iu.edu_link_001", 147 "ts": 1391192705275101, 148 "selfRef": "https://datastore.grnoc.iu.edu/info/link/salt_port_1750", 149 "urn": "urn:publicid:IDN+datastore.grnoc.iu.edu+salt_port_1750", 150 }, 126 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/link#", 127 "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/link/arbitrary_id_001", 128 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+link+arbitrary_id_001", 129 "ts": 1391194147100678, 130 "id": "arbitrary_id_001", 151 131 "endpoints": [ 152 { 153 "urn": "urn:publicid:IDN+al2s.net.internet2.edu+interface+sdn-sw.salt.net.internet2.edu_100GigabitEthernet3_2_1750", 154 "href": "https://datastore.grnoc.iu.edu/info/interfacevlan/sdn-sw.salt.net.internet2.edu_100GigabitEthernet3_2_1750" 155 }, 156 { 157 "urn": "urn:publicid:IDN+al2s.net.internet2.edu+interface+sdn-sw.port.net.internet2.edu_100GigabitEthernet3_2_1750", 158 "href": "https://datastore.grnoc.iu.edu/info/interfacevlan/sdn-sw.port.net.internet2.edu_100GigabitEthernet3_2_1750" 159 } 160 ], 161 "l2path": [ 162 { 163 "urn": "urn:publicid:IDN+al2s.net.internet2.edu+interface+sdn-sw.salt.net.internet2.edu_100GigabitEthernet3_2_1750", 164 "href": "https://datastore.grnoc.iu.edu/info/interfacevlan/sdn-sw.salt.net.internet2.edu_100GigabitEthernet3_2_1750" 165 }, 166 { 167 "urn": "urn:publicid:IDN+al2s.net.internet2.edu+interface+sdn-sw.salt.net.internet2.edu_100GigabitEthernet3_1_47", 168 "href": "https://datastore.grnoc.iu.edu/info/interfacevlan/sdn-sw.salt.net.internet2.edu_100GigabitEthernet3_1_47" 169 }, 170 { 171 "urn": "urn:publicid:IDN+al2s.net.internet2.edu+interface+sdn-sw.seat.net.internet2.edu_100GigabitEthernet3_2_47", 172 "href": "https://datastore.grnoc.iu.edu/info/interfacevlan/sdn-sw.seat.net.internet2.edu_100GigabitEthernet3_2_47" 173 }, 174 { 175 "urn": "urn:publicid:IDN+al2s.net.internet2.edu+interface+sdn-sw.seat.net.internet2.edu_100GigabitEthernet3_1_38", 176 "href": "https://datastore.grnoc.iu.edu/info/interfacevlan/sdn-sw.seat.net.internet2.edu_100GigabitEthernet3_1_38" 177 }, 178 { 179 "urn": "urn:publicid:IDN+al2s.net.internet2.edu+interface+sdn-sw.port.net.internet2.edu_100GigabitEthernet3_1_38", 180 "href": "https://datastore.grnoc.iu.edu/info/interfacevlan/sdn-sw.port.net.internet2.edu_100GigabitEthernet3_1_38" 181 }, 182 { 183 "urn": "urn:publicid:IDN+al2s.net.internet2.edu+interface+sdn-sw.port.net.internet2.edu_100GigabitEthernet3_2_1750", 184 "href": "https://datastore.grnoc.iu.edu/info/interfacevlan/sdn-sw.port.net.internet2.edu_100GigabitEthernet3_2_1750" 132 { 133 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc2:eth1:1750", 134 "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc2:eth1:1750" 135 }, 136 { 137 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1:1750", 138 "href": "https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750" 185 139 } 186 140 ] … … 188 142 }}} 189 143 190 191 ==== Data about an interface ==== 192 193 Interfaces have an ID which is a URL-sanitized version of their URN and are described using [http://unis.incntre.iu.edu/schema/20120709/port# the port schema]. Notes: 194 * I adopted the control/experimental terminology for interface roles from ProtoGENI listresources output. We could also use control/data; at any rate, we should be consistent among all monitoring uses. 195 * All bandwidths are fiction. 196 197 Examples: 198 199 Hypothetical REST call for pc1 eth0 (control)at gpo-ig:144 ==== Interface call and response ==== 145 146 Retrieves information about a network interface, a.k.a. port. 147 148 General form of the REST call: 149 {{{ 150 https://<datastore-host>/info/interface/<interface object id> 151 }}} 152 153 Example REST call for pc1 eth0 at gpo-ig: 200 154 {{{ 201 155 https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0 202 156 }}} 203 Response: 157 158 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/interface interface schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/interface.schema.jwc commented version of the interface schema]. 204 159 {{{ 205 160 { 206 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/port#",161 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/interface#", 207 162 "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0", 208 163 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth0", 209 164 "ts": 1391194147100678, 210 165 "id": "instageni.gpolab.bbn.com_interface_pc1:eth0", 211 "address": { 212 "type": "ipv4", 213 "address": "192.1.242.140" 214 }, 166 "addresses": [ 167 { 168 "addrtype": "IPv4", 169 "address": "192.1.242.140", 170 "scope": "private" 171 }, 172 { 173 "addrtype": "IPv6", 174 "address": "2001:cdba::3257:9652" 175 } 176 ], 215 177 "ops_monitoring:role": "control", 216 178 "ops_monitoring:max_bps": 10000000, … … 219 181 }}} 220 182 221 Hypothetical REST call for pc1 eth1 (dataplane) interface at gpo-ig: 222 223 {{{ 224 https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth1 225 }}} 226 Response: 183 ==== Interface-VLAN call and response ==== 184 185 Retrieves information about a tagged VLAN subinterface of a network interface. 186 187 General form of the REST call: 188 {{{ 189 https://<datastore-host>/info/interfacevlan/<interfacevlan object id> 190 }}} 191 192 Example REST call for VLAN 1750 on pc1 eth1: 193 {{{ 194 https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750 195 }}} 196 197 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/interfacevlan interfacevlan schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/interfacevlan.schema.jwc commented version of the interfacevlan schema]. 227 198 {{{ 228 199 { 229 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/port#",230 "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/interface /instageni.gpolab.bbn.com_interface_pc1:eth1",231 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1 ",200 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/interfacevlan#", 201 "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750", 202 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1:1750", 232 203 "ts": 1391194147100678, 233 "id": "instageni.gpolab.bbn.com_interface_pc1:eth1", 234 "address": { 235 "type": "mac", 236 "address": "aa:aa:aa:aa:aa:ab" 237 }, 238 "ops_monitoring:role": "experimental", 239 "ops_monitoring:max_bps": 10000000, 240 "ops_monitoring:max_pps": 1000000 204 "id": "instageni.gpolab.bbn.com_interface_pc1:eth1:1750", 205 "tag": 1750, 206 "interface": { 207 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1", 208 "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth1" 209 } 241 210 } 242 211 }}} 243 212 244 ==== Data about a slice authority ==== 245 246 GENI slice authorities are indexed by domain name and described using [http://www.gpolab.bbn.com/monitoring/schema/20140501/authority# the authority schema]. Examples: 247 248 249 Hypothetical REST call for authority of ch.geni.net: 213 ==== Slice authority call and response ==== 214 215 Retrieves information about a slice authority. 216 217 General form of the REST call: 218 {{{ 219 https://<datastore-host>/info/slice/<slice object id> 220 }}} 221 222 Example REST call for authority of ch.geni.net: 250 223 {{{ 251 224 https://datastore.ch.geni.net/info/authority/ch.geni.net 252 225 }}} 253 Response: 226 227 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/authority authority schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/authority.schema.jwc commented version of the authority schema]. 254 228 {{{ 255 229 { 256 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/authority#",230 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/authority#", 257 231 "id": "ch.geni.net", 258 232 "selfRef": "https://datastore.ch.geni.net/info/authority/ch.geni.net", … … 275 249 276 250 277 ==== Data about a VLAN ==== 278 279 Examples: 280 281 Hypothetical REST call for VLAN 101 from nox to core controlled by ION (probably an incorrect example): 282 {{{ 283 https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750 284 }}} 285 Response: 251 ==== User call and response ==== 252 253 Retrieves information about a GENI user. 254 255 General form of the REST call: 256 {{{ 257 https://<datastore-host>/info/user/<user object id> 258 }}} 259 260 Example REST call for user tupty at ch.geni.net: 261 {{{ 262 https://datastore.ch.geni.net/info/user/tupty 263 }}} 264 265 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/user user schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/user.schema.jwc commented version of the user schema]. 286 266 {{{ 287 267 { 288 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/port-vlan#", 289 "selfRef": "https://datastore.instageni.gpolab.bbn.com/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750", 290 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1:1750", 291 "ts": 1391194147100678, 292 "id": "instageni.gpolab.bbn.com_interface_pc1:eth1:1750", 293 "tag": 1750, 294 "port": { 295 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1", 296 "href": "https://datastore.instageni.gpolab.bbn.com/ports/instageni.gpolab.bbn.com_interface_pc1:eth1" 297 } 298 } 299 }}} 300 301 302 ==== Data about a GENI user ==== 303 304 GENI users have an ID based on the username and are described using [http://www.gpolab.bbn.com/monitoring/schema/20140501/user# the GENI user schema]. Examples: 305 306 Hypothetical REST call for user tupty at ch.geni.net: 307 {{{ 308 https://datastore.ch.geni.net/info/user/tupty 309 }}} 310 Response: 311 {{{ 312 { 313 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/user#", 268 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/user#", 314 269 "id": "tupty", 315 270 "selfRef": "https://datastore.ch.geni.net/info/user/tupty", … … 321 276 }, 322 277 "fullname": "Tim Exampleuser", 323 "email": "t im@example.com"278 "email": "tupty@example.com" 324 279 } 325 280 }}} 326 281 327 ==== Data about a GENI slice ==== 328 329 GENI slices have an ID based on the URN and are described using [http://www.gpolab.bbn.com/monitoring/schema/20140501/slice# the GENI slice schema]. Examples: 330 Hypothetical REST call for tuptyexclusive slice: 331 {{{ 332 https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive 333 }}} 334 282 ==== Slice call and response ==== 283 284 Retrieves information about a slice at an authority. 285 286 General form of the REST call: 287 {{{ 288 https://<datastore-host>/info/slice/<slice object id> 289 }}} 290 291 Example REST call for tuptyexclusive slice: 292 {{{ 293 https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive 294 }}} 295 296 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/slice slice schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/slice.schema.jwc commented version of the slice schema]. 335 297 {{{ 336 298 { 337 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/slice#",299 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/slice#", 338 300 "id": "ch.geni.net_gpo-infra_slice_tuptyexclusive", 339 301 "selfRef": "https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive", … … 357 319 }}} 358 320 359 ==== Data about a GENI sliver ==== 360 361 GENI sliver have an ID based on the URN and are described using [http://www.gpolab.bbn.com/monitoring/schema/20140501/sliver# the GENI sliver schema]. Examples: 362 Hypothetical REST call for tuptyexclusive instageni sliver: 321 ==== Sliver call and response ==== 322 323 Retrieves information about a sliver. 324 325 General form of the REST call: 326 {{{ 327 https://<datastore-host>/info/sliver/<sliver object id> 328 }}} 329 330 Example REST call for tuptyexclusive instageni sliver: 363 331 {{{ 364 332 https://datastore.instageni.gpolab.bbn.com/info/sliver/instageni.gpolab.bbn.com_sliver_26947 365 333 }}} 366 Response: 334 335 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/sliver sliver schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/sliver.schema.jwc commented version of the sliver schema]. 367 336 {{{ 368 337 { 369 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/sliver#",338 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/sliver#", 370 339 "id": "instageni.gpolab.bbn.com_sliver_26947", 371 340 "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/sliver/instageni.gpolab.bbn.com_sliver_26947", … … 375 344 "aggregate": { 376 345 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm", 377 "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate s/gpo-ig"346 "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig" 378 347 }, 379 348 "slice_urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive", … … 382 351 "created": 1391626683000000, 383 352 "expires": 1391708989000000, 384 "resources": [ 385 { 386 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1", 387 "href": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", 388 }, 389 { 390 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc2", 391 "href": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc2", 392 } 393 ] 353 "resource": { 354 "resource_type": "node", 355 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1", 356 "href": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1" 357 } 394 358 } 395 359 }}} 396 360 397 ==== Data about an external check datastore ==== 398 361 ==== External check datastore call and response ==== 362 363 Retrieves information about a sliver. 364 365 General form of the REST call: 366 {{{ 367 https://<datastore-host>/info/externalcheck/<extchk-id> 368 }}} 369 370 Example REST call for GPO externalcheck store: 399 371 {{{ 400 372 https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo 401 373 }}} 402 374 375 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/externalcheck external check schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/externalcheck.schema.jwc commented version of the external check schema]. 403 376 {{{ 404 377 { 405 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/externalcheck#",378 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/externalcheck#", 406 379 "id": "gpo", 407 380 "selfRef": "https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo", 408 "ts": 139 7762559284773,409 "measRef : "https://externalcheckstore.gpolab.bbn.com/data/",381 "ts": 1391192685740849, 382 "measRef": "https://externalcheckstore.gpolab.bbn.com/data", 410 383 "experiments": [ 411 384 { … … 425 398 } 426 399 }}} 427 ==== Data about a monitoring experiment ==== 428 429 Operational monitoring measures the dataplane with a set of simple tests between aggregates described using [http://www.gpolab.bbn.com/monitoring/schema/20140501/experiment# the operational monitoring experiment schema]. Examples: 430 Hypothetical REST call for missouri-ig to gpo-ig experiment: 431 {{{ 432 https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig 433 }}} 434 Response: 400 401 ==== Experiment call and response ==== 402 403 Retrieves information data about an operational monitoring experiment for monitoring the dataplane between aggregates. 404 405 General form of the REST call: 406 {{{ 407 https://<datastore-host>/info/experiment/<experiment id> 408 }}} 409 410 Example REST call for missouri-ig to gpo-ig experiment: 411 {{{ 412 https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig_rtt 413 }}} 414 415 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/experiment experiment schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/experiment.schema.jwc commented version of the experiment schema]. 435 416 {{{ 436 417 { 437 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/experiment#",438 "id": "missouri-ig_to_gpo-ig ",439 "selfRef": "https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig ",418 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/experiment#", 419 "id": "missouri-ig_to_gpo-ig_rtt", 420 "selfRef": "https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig_rtt", 440 421 "slice_urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive", 441 422 "slice_uuid": "8c6b97fa-493b-400f-95ee-19accfaf4ae8", … … 453 434 454 435 455 ==== Measurements used for the use cases ==== 456 457 Measurements have an opaque ID which is generated by the local datastore which serves them, and must be persistent, so that the caller has the option of asking for the measurement by ID. They are described using the data schema outlined above. Examples: 458 Hypothetical REST call for CPU utilization metric on pc1: 436 ==== Time-series measurements call and response ==== 437 438 Retrieve time series measurements, a.k.a. simply "data" or "events." 439 440 General form of the REST call: 441 {{{ 442 https://<datastore-host>/data/?q= 443 {"filters": 444 {"eventType":[<list of measurementNames>], 445 "ts":{"gte":<lower bound timestamp>, "lte":<upper bound timestamp}, 446 "obj":{"type":"<object type name>", "id":[<list of object ids>]}}} 447 }}} 448 (The above is split into multiple lines for readability; actual calls are all on one line.) 449 If <list of object ids> is "*", it means "all objects known to the datastore of type <object type name>." 450 451 The response is a list "[...]" in which each element conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/data data schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/data.schema.jwc commented version of the data schema]. 452 Each element of the list applies to one (eventType, object id) pair. 453 454 Example REST call for CPU utilization metric on pc1: 459 455 {{{ 460 456 https://datastore.instageni.gpolab.bbn.com/data/?q={"filters":{"eventType": ["ops_monitoring:cpu_util"],"ts":{"gte":0, "lte": 1391199016651285},"obj":{"type":"node","id":["instageni.gpolab.bbn.com_node_pc1"]}}} 461 457 }}} 462 Response 463 {{{ 464 { 465 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/data#", 466 "id": "cpu_util:instageni.gpolab.bbn.com_node_pc1", 467 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", 468 "eventType": "ops_monitoring:cpu_util", 469 "description": "CPU utilization percentage", 470 "units": "percent", 471 "tsdata": [ 472 { "ts": 1391198716651283, "v": 45 }, 473 { "ts": 1391198776651284, "v": 44 }, 474 { "ts": 1391198836651284, "v": 44 }, 475 { "ts": 1391198896651284, "v": 47 }, 476 { "ts": 1391198956651284, "v": 46 }, 477 { "ts": 1391199016651285, "v": 47 } 478 ] 479 } 480 }}} 481 Hypothetical REST call for percentage of swap available on pc1: 458 459 Response: 460 {{{ 461 [ 462 { 463 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 464 "id": "cpu_util:instageni.gpolab.bbn.com_node_pc1", 465 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", 466 "eventType": "ops_monitoring:cpu_util", 467 "description": "CPU utilization percentage", 468 "units": "percent", 469 "tsdata": [ 470 { "ts": 1391198716651283, "v": 45 }, 471 { "ts": 1391198776651284, "v": 44 }, 472 { "ts": 1391198836651284, "v": 44 }, 473 { "ts": 1391198896651284, "v": 47 }, 474 { "ts": 1391198956651284, "v": 46 }, 475 { "ts": 1391199016651285, "v": 47 } 476 ] 477 } 478 ] 479 }}} 480 481 Example REST call for percentage of swap available on pc1: 482 482 {{{ 483 483 https://datastore.instageni.gpolab.bbn.com/data/?q={"filters":{"eventType": ["ops_monitoring:swap_free"],"ts":{"gt":0,"lt":1391199016651285},"obj":{"type":"node","id":["instageni.gpolab.bbn.com_node_pc1"]}}} 484 484 485 485 }}} 486 486 487 Response: 487 488 {{{ 488 { 489 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/data#", 490 "id": "swap_free:instageni.gpolab.bbn.com_node_pc1", 491 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", 492 "eventType": "ops_monitoring:swap_free", 493 "description": "Percentage of swap available", 494 "units": "percent", 495 "tsdata": [ 496 { "ts": 1391198716651283, "v": 95 }, 497 { "ts": 1391198776651284, "v": 95 }, 498 { "ts": 1391198836651284, "v": 95 }, 499 { "ts": 1391198896651284, "v": 95 }, 500 { "ts": 1391198956651284, "v": 95 }, 501 { "ts": 1391199016651285, "v": 95 } 502 ] 503 } 504 }}} 505 Hypothetical REST call for memory in active use on pc1: 489 [ 490 { 491 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 492 "id": "swap_free:instageni.gpolab.bbn.com_node_pc1", 493 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", 494 "eventType": "ops_monitoring:swap_free", 495 "description": "Percentage of swap available", 496 "units": "percent", 497 "tsdata": [ 498 { "ts": 1391198716651283, "v": 95 }, 499 { "ts": 1391198776651284, "v": 95 }, 500 { "ts": 1391198836651284, "v": 95 }, 501 { "ts": 1391198896651284, "v": 95 }, 502 { "ts": 1391198956651284, "v": 95 }, 503 { "ts": 1391199016651285, "v": 95 } 504 ] 505 } 506 ] 507 }}} 508 509 Example REST call for memory in active use on pc1: 506 510 {{{ 507 511 https://datastore.instageni.gpolab.bbn.com/data/?q={"filters":{"eventType": ["ops_monitoring:mem_active_kb"],"ts":{"gte":0, "lt": 1391299016651285},"obj":{"type":"node","id":["instageni.gpolab.bbn.com_node_pc1"]}}} 508 512 }}} 513 509 514 Response: 510 515 {{{ 511 { 512 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/data#", 513 "id": "mem_active_kb:instageni.gpolab.bbn.com_node_pc1", 514 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", 515 "eventType": "ops_monitoring:mem_active_kb", 516 "description": "Memory in active use", 517 "units": "integer", 518 "tsdata": [ 519 { "ts": 1391198716651283, "v": 20030048 }, 520 { "ts": 1391198776651284, "v": 20031148 }, 521 { "ts": 1391198836651284, "v": 20031148 }, 522 { "ts": 1391198896651284, "v": 22222222 }, 523 { "ts": 1391198956651284, "v": 22222222 }, 524 { "ts": 1391199016651285, "v": 22222222 } 525 ] 526 } 527 }}} 528 Hypothetical call for bytes per second received by `pc1:eth0`: 516 [ 517 { 518 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 519 "id": "mem_active_kb:instageni.gpolab.bbn.com_node_pc1", 520 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", 521 "eventType": "ops_monitoring:mem_active_kb", 522 "description": "Memory in active use", 523 "units": "integer", 524 "tsdata": [ 525 { "ts": 1391198716651283, "v": 20030048 }, 526 { "ts": 1391198776651284, "v": 20031148 }, 527 { "ts": 1391198836651284, "v": 20031148 }, 528 { "ts": 1391198896651284, "v": 22222222 }, 529 { "ts": 1391198956651284, "v": 22222222 }, 530 { "ts": 1391199016651285, "v": 22222222 } 531 ] 532 } 533 ] 534 }}} 535 536 Example REST call for bytes per second received by `pc1:eth0`: 529 537 {{{ 530 538 https://datastore.instageni.gpolab.bbn.com/data/?q={"filters":{"eventType": ["ops_monitoring:rx_bytes"],"ts":{"gte":0, "lte":1391299016651285},"obj":{"type":"interface","id":["instageni.gpolab.bbn.com_node_pc1:eth0"]}}} 531 539 }}} 540 532 541 Response: 533 542 {{{ 534 { 535 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/data#", 536 "id": "rx_bps:instageni.gpolab.bbn.com_interface_pc1:eth0", 537 "subject": "https://datastore.instageni.gpolab.bbn.com/info/ports/instageni.gpolab.bbn.com_interface_pc1:eth0", 538 "eventType": "ops_monitoring:rx_bps", 539 "description": "bytes per second received on this interface", 540 "units": "float", 541 "tsdata": [ 542 { "ts": 1391198716651283, "v": 2453.64 }, 543 { "ts": 1391198776651284, "v": 800.2 }, 544 { "ts": 1391198836651284, "v": 2400.3 }, 545 { "ts": 1391198896651284, "v": 1984.3 }, 546 { "ts": 1391198956651284, "v": 0 }, 547 { "ts": 1391199016651285, "v": 0 } 548 ] 549 } 550 }}} 551 Hypothetical REST call for boolean metric indicating whether pc1 is available for use according to the aggregate responsible for it: 543 [ 544 { 545 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 546 "id": "rx_bps:instageni.gpolab.bbn.com_interface_pc1:eth0", 547 "subject": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0", 548 "eventType": "ops_monitoring:rx_bps", 549 "description": "bytes per second received on this interface", 550 "units": "float", 551 "tsdata": [ 552 { "ts": 1391198716651283, "v": 2453.64 }, 553 { "ts": 1391198776651284, "v": 800.2 }, 554 { "ts": 1391198836651284, "v": 2400.3 }, 555 { "ts": 1391198896651284, "v": 1984.3 }, 556 { "ts": 1391198956651284, "v": 0 }, 557 { "ts": 1391199016651285, "v": 0 } 558 ] 559 } 560 ] 561 }}} 562 563 Example REST call for boolean metric indicating whether pc1 is available for use according to the aggregate responsible for it: 552 564 {{{ 553 565 https://datastore.instageni.gpolab.bbn.com/data/?q={"filters":{"eventType": ["ops_monitoring:is_available"],"ts":{"gte":0, "lte":1391299016651285},"obj":{"type":"node","id":["instageni.gpolab.bbn.com_node_pc1"]}}} 554 566 }}} 567 555 568 Response: 556 569 {{{ 557 { 558 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140501/data#", 559 "id": "is_available:instageni.gpolab.bbn.com_node_pc1", 560 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", 561 "eventType": "ops_monitoring:is_available", 562 "description": "is the subject node available, according to the aggregate", 563 "units": "boolean", 564 "tsdata": [ 565 { "ts": 1391198716651283, "v": 1 }, 566 { "ts": 1391198776651284, "v": 1 }, 567 { "ts": 1391198836651284, "v": 1 }, 568 { "ts": 1391198896651284, "v": 1 }, 569 { "ts": 1391198956651284, "v": 0 }, 570 { "ts": 1391199016651285, "v": 0 } 571 ] 572 } 573 }}} 574 575 ==== Bulk Data Queries ==== 576 Queries on multiple eventTypes and object ID's will be presented in a list format. Here is an example query for event types cpu utilization and active memory utilization for nodes pc1 and pc2 of instageni-bbn. 577 Also it is advised to provide timestamp filters with data queries. Here is the format for [wiki:OperationalMonitoring/DatastorePolling#DataQueries timestamp filters] . 578 579 Example call: 570 [ 571 { 572 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 573 "id": "is_available:instageni.gpolab.bbn.com_node_pc1", 574 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", 575 "eventType": "ops_monitoring:is_available", 576 "description": "is the subject node available, according to the aggregate", 577 "units": "boolean", 578 "tsdata": [ 579 { "ts": 1391198716651283, "v": 1 }, 580 { "ts": 1391198776651284, "v": 1 }, 581 { "ts": 1391198836651284, "v": 1 }, 582 { "ts": 1391198896651284, "v": 1 }, 583 { "ts": 1391198956651284, "v": 0 }, 584 { "ts": 1391199016651285, "v": 0 } 585 ] 586 } 587 ] 588 }}} 589 590 Example REST call requesting multiple eventTypes and object ids: 580 591 {{{ 581 592 https://datastore.instageni.gpolab.bbn.com/data/?q={"filters":{"eventType": ["ops_monitoring:mem_used","ops_monitoring:cpu_util"],"ts":{"gte":1391192225475202,"lt":1391192225480000},"obj":{"type":"node","id":["instageni.gpolab.bbn.com_node_pc1","instageni.gpolab.bbn.com_node_pc2"]}}}} 582 593 }}} 583 594 595 Response: 584 596 {{{ 585 597 [ 586 598 { 587 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/data#",599 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 588 600 "id": "cpu_util:instageni.gpolab.bbn.com_node_pc1", 589 601 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", … … 602 614 , 603 615 { 604 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/data#",616 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 605 617 "id": "cpu_util:instageni.gpolab.bbn.com_node_pc2", 606 618 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc2", … … 619 631 , 620 632 { 621 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/data#",633 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 622 634 "id": "mem_active_kb:instageni.gpolab.bbn.com_node_pc1", 623 635 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", … … 636 648 , 637 649 { 638 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140 501/data#",650 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 639 651 "id": "mem_active_kb:instageni.gpolab.bbn.com_node_pc2", 640 652 "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc2", … … 653 665 ] 654 666 }}} 667 668 ==== Operational monitoring configuration (opsconfig) call and response ==== 669 670 Retrieves a variety of configuration information, including: 671 * locations (URLs) of and information about other datastores 672 * GENI authorities 673 * Database schemas used to store monitoring information 674 * A list of possible event types for time-series measurements 675 676 Example REST call for geni-prod, a hypothetical config datastore listing production aggregates and authorities: 677 {{{ 678 https://datastore.geni.net/info/opsconfig/geni-prod 679 }}} 680 681 The response conforms to the [http://www.gpolab.bbn.com/monitoring/schema/20140828/opsconfig opsconfig schema], [http://www.gpolab.bbn.com/monitoring/schema/20140828/opsconfig.schema.jwc commented version of the opsconfig schema]. 682 {{{ 683 { 684 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/opsconfig#", 685 "id": "geni-prod", 686 "selfRef": "https://datastore.geni.net/opsconfigs/geni-prod", 687 "ts": 1391192685740849, 688 "aggregatestores": [ 689 { 690 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm", 691 "amtype": "protogeni", 692 "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig" 693 } 694 ], 695 "externalcheckstores": [ 696 { 697 "href": "https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo" 698 } 699 ], 700 "authorities": [ 701 { 702 "urn": "urn:publicid:IDN+ch.geni.net+authority+ch", 703 "href": "https://datastore.ch.geni.net/authorities/ch.geni.net" 704 } 705 ], 706 "info": [ 707 { "name": "aggregate", 708 "db_schema": [ 709 ["$schema", "varchar"], 710 ["id", "varchar"], 711 ["selfRef","varchar"], 712 ["urn","varchar"], 713 ["ts","int8"], 714 ["measRef","varchar"] 715 ] 716 }, 717 { "name":"node", 718 "db_schema": [ 719 ["$schema", "varchar"], 720 ["id", "varchar"], 721 ["selfRef","varchar"], 722 ["urn","varchar"], 723 ["ts","int8"], 724 ["properties$mem_total_kb","int8"] 725 ] 726 }, 727 { "name": "link", 728 "db_schema": [ 729 ["$schema", "varchar"], 730 ["id", "varchar"], 731 ["selfRef","varchar"], 732 ["urn","varchar"], 733 ["ts","int8"] 734 ] 735 }, 736 { "name": "sliver", 737 "db_schema": [ 738 ["$schema", "varchar"], 739 ["id", "varchar"], 740 ["selfRef","varchar"], 741 ["urn","varchar"], 742 ["uuid","varchar"], 743 ["ts","int8"], 744 ["aggregate_urn","varchar"], 745 ["aggregate_href","varchar"], 746 ["slice_urn","varchar"], 747 ["slice_uuid","varchar"], 748 ["creator","varchar"], 749 ["created","int8"], 750 ["expires","int8"] 751 ] 752 }, 753 { "name":"interface", 754 "db_schema": [ 755 ["$schema", "varchar"], 756 ["id", "varchar"], 757 ["selfRef","varchar"], 758 ["urn","varchar"], 759 ["ts","int8"], 760 ["address_type","varchar"], 761 ["address_address","varchar"], 762 ["properties$role","varchar"], 763 ["properties$max_bps","int8"], 764 ["properties$max_pps","int8"] 765 ] 766 }, 767 { "name": "interfacevlan", 768 "db_schema": [ 769 ["$schema", "varchar"], 770 ["id", "varchar"], 771 ["selfRef","varchar"], 772 ["urn","varchar"], 773 ["ts","int8"], 774 ["tag","int8"], 775 ["interface_urn","varchar"], 776 ["interface_href","varchar"] 777 ] 778 }, 779 { "name": "slice", 780 "db_schema": [ 781 ["$schema", "varchar"], 782 ["id", "varchar"], 783 ["selfRef","varchar"], 784 ["urn","varchar"], 785 ["uuid","varchar"], 786 ["ts","int8"], 787 ["authority_urn","varchar"], 788 ["authority_href","varchar"], 789 ["created","int8"], 790 ["expires","int8"] 791 ] 792 }, 793 { "name":"user", 794 "db_schema": [ 795 ["$schema", "varchar"], 796 ["id", "varchar"], 797 ["selfRef","varchar"], 798 ["urn","varchar"], 799 ["ts","int8"], 800 ["authority_urn","varchar"], 801 ["authority_href","varchar"], 802 ["fullname","varchar"], 803 ["email","varchar"] 804 ] 805 }, 806 { "name":"authority", 807 "db_schema": [ 808 ["$schema", "varchar"], 809 ["id", "varchar"], 810 ["selfRef","varchar"], 811 ["urn","varchar"], 812 ["ts","int8"] 813 ] 814 }, 815 { "name":"externalcheck", 816 "db_schema": [ 817 ["$schema", "varchar"], 818 ["id", "varchar"], 819 ["selfRef","varchar"], 820 ["ts","int8"], 821 ["measRef","varchar"] 822 ] 823 }, 824 { "name":"experiment", 825 "db_schema": [ 826 ["$schema", "varchar"], 827 ["id", "varchar"], 828 ["selfRef","varchar"], 829 ["ts","int8"], 830 ["slice_urn","varchar"], 831 ["slice_uuid","varchar"], 832 ["source_aggregate_urn","varchar"], 833 ["source_aggregate_href","varchar"], 834 ["destination_aggregate_urn","varchar"], 835 ["destination_aggregate_href","varchar"] 836 ] 837 }, 838 { "name":"opsconfig", 839 "db_schema": [ 840 ["$schema", "varchar"], 841 ["id","varchar"], 842 ["selfRef","varchar"], 843 ["ts","int8"] 844 ] 845 }, 846 { "name":"aggregate_resource", 847 "db_schema" : [ 848 ["id","varchar"], 849 ["aggregate_id","varchar"], 850 ["urn","varchar"], 851 ["selfRef","varchar"] 852 ] 853 }, 854 { "name":"aggregate_sliver", 855 "db_schema" : [ 856 ["id","varchar"], 857 ["aggregate_id","varchar"], 858 ["urn","varchar"], 859 ["selfRef","varchar"] 860 ] 861 }, 862 { "name":"link_interfacevlan", 863 "db_schema" : [ 864 ["id","varchar"], 865 ["link_id","varchar"], 866 ["urn","varchar"], 867 ["selfRef","varchar"] 868 ] 869 }, 870 { "name":"sliver_resource", 871 "db_schema" : [ 872 ["id","varchar"], 873 ["sliver_id","varchar"], 874 ["urn","varchar"], 875 ["selfRef","varchar"] 876 ] 877 }, 878 { "name":"node_interface", 879 "db_schema": [ 880 ["id","varchar"], 881 ["node_id","varchar"], 882 ["urn","varchar"], 883 ["selfRef","varchar"] 884 ] 885 }, 886 { "name":"slice_user", 887 "db_schema": [ 888 ["id","varchar"], 889 ["slice_id","varchar"], 890 ["urn","varchar"], 891 ["role","varchar"], 892 ["selfRef","varchar"] 893 ] 894 }, 895 { "name":"authority_user", 896 "db_schema": [ 897 ["id","varchar"], 898 ["authority_id","varchar"], 899 ["urn","varchar"], 900 ["selfRef","varchar"] 901 ] 902 }, 903 { "name":"authority_slice", 904 "db_schema": [ 905 ["id","varchar"], 906 ["authority_id","varchar"], 907 ["urn","varchar"], 908 ["selfRef","varchar"] 909 ] 910 }, 911 { "name":"opsconfig_aggregate", 912 "db_schema": [ 913 ["id","varchar"], 914 ["opsconfig_id","varchar"], 915 ["amtype","varchar"], 916 ["urn","varchar"], 917 ["selfRef","varchar"] 918 ] 919 }, 920 { "name":"opsconfig_authority", 921 "db_schema": [ 922 ["id","varchar"], 923 ["opsconfig_id","varchar"], 924 ["urn","varchar"], 925 ["selfRef","varchar"] 926 ] 927 }, 928 { "name":"opsconfig_event", 929 "db_schema": [ 930 ["object_type","varchar"], 931 ["name","varchar"], 932 ["id","varchar"], 933 ["ts","varchar"], 934 ["v","varchar"], 935 ["units","varchar"] 936 ] 937 }, 938 { "name":"externalcheck_experiment", 939 "db_schema": [ 940 ["id","varchar"], 941 ["externalcheck_id","varchar"], 942 ["selfRef","varchar"] 943 ] 944 } 945 ], 946 "events": 947 { 948 "node": [ 949 { "name": "cpu_util", 950 "id": "varchar", 951 "ts": "int8", 952 "v": "float4", 953 "units": "percent" 954 }, 955 { "name": "mem_used_kb", 956 "id": "varchar", 957 "ts": "int8", 958 "v": "int8", 959 "units": "kilobytes" 960 }, 961 { "name": "swap_free", 962 "id": "varchar", 963 "ts": "int8", 964 "v": "float4", 965 "units": "percent" 966 }, 967 { "name": "is_available", 968 "id": "varchar", 969 "ts": "int8", 970 "v": "int2", 971 "units": "boolean" 972 }, 973 { "name": "disk_part_max_used", 974 "id": "varchar", 975 "ts": "int8", 976 "v": "float4", 977 "units":"percent" 978 } 979 ], 980 "aggregate": [ 981 { "name": "num_vms_allocated", 982 "id": "varchar", 983 "ts": "int8", 984 "v": "int4", 985 "units": "count" 986 }, 987 { "name": "is_available", 988 "id": "varchar", 989 "ts": "int8", 990 "v": "int2", 991 "units": "boolean" 992 } 993 ], 994 "interface": [ 995 { "name": "rx_bps", 996 "id": "varchar", 997 "ts": "int8", 998 "v":"float4", 999 "units":"bps" 1000 }, 1001 { "name": "tx_bps", 1002 "id": "varchar", 1003 "ts": "int8", 1004 "v":"float4", 1005 "units":"bps" 1006 }, 1007 { "name":"rx_pps", 1008 "id": "varchar", 1009 "ts": "int8", 1010 "v":"float4", 1011 "units":"pps" 1012 }, 1013 { "name":"tx_pps", 1014 "id": "varchar", 1015 "ts": "int8", 1016 "v":"float4", 1017 "units":"pps" 1018 }, 1019 { "name":"rx_eps", 1020 "id": "varchar", 1021 "ts": "int8", 1022 "v":"float4", 1023 "units":"pps" 1024 }, 1025 { "name":"tx_eps", 1026 "id": "varchar", 1027 "ts": "int8", 1028 "v":"float4", 1029 "units":"pps" 1030 }, 1031 { "name":"rx_dps", 1032 "id": "varchar", 1033 "ts": "int8", 1034 "v":"float4", 1035 "units":"pps" 1036 }, 1037 { "name":"tx_dps", 1038 "id": "varchar", 1039 "ts": "int8", 1040 "v":"float4", 1041 "units":"pps" 1042 } 1043 ], 1044 "interfacevlan": [ 1045 { "name": "rx_bps", 1046 "id": "varchar", 1047 "ts": "int8", 1048 "v":"float4", 1049 "units":"bps" 1050 }, 1051 { "name": "tx_bps", 1052 "id": "varchar", 1053 "ts": "int8", 1054 "v":"float4", 1055 "units":"bps" 1056 }, 1057 { "name":"rx_pps", 1058 "id": "varchar", 1059 "ts": "int8", 1060 "v":"float4", 1061 "units":"pps" 1062 }, 1063 { "name":"tx_pps", 1064 "id": "varchar", 1065 "ts": "int8", 1066 "v":"float4", 1067 "units":"pps" 1068 }, 1069 { "name":"rx_eps", 1070 "id": "varchar", 1071 "ts": "int8", 1072 "v":"float4", 1073 "units":"pps" 1074 }, 1075 { "name":"tx_eps", 1076 "id": "varchar", 1077 "ts": "int8", 1078 "v":"float4", 1079 "units":"pps" 1080 }, 1081 { "name":"rx_dps", 1082 "id": "varchar", 1083 "ts": "int8", 1084 "v":"float4", 1085 "units":"pps" 1086 }, 1087 { "name":"tx_dps", 1088 "id": "varchar", 1089 "ts": "int8", 1090 "v":"float4", 1091 "units":"pps" 1092 } 1093 ], 1094 "experiment": [ 1095 { "name": "ping_rtt_ms", 1096 "id": "varchar", 1097 "ts": "int8", 1098 "v":"float4", 1099 "units":"milliseconds" 1100 } 1101 ] 1102 } 1103 } 1104 }}}