Changes between Version 7 and Version 8 of OperationalMonitoring/DataSchema20
- Timestamp:
- 08/27/14 18:19:42 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
OperationalMonitoring/DataSchema20
v7 v8 19 19 * When we setup operations monitoring measurements, we'll give them the eventType `ops_monitoring:<something>` 20 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. 21 === Schema usage example === 22 23 Some example usages of the above schemas follow. 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, we show 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. 26 24 * `https://datastore.geni.net/`: datastore containing configuration data for operational monitoring 27 25 * `https://datastore.instageni.gpolab.bbn.com/`: datastore for gpo-ig aggregate … … 33 31 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/20140828/opsconfig# the opsconfig schema]. Examples: 34 32 * geni-prod: a hypothetical config datastore listing production aggregates and authorities: 33 Example REST call: 34 {{{ 35 https://datastore.geni.net/info/opsconfig/geni-prod 36 }}} 37 Response: 35 38 {{{ 36 39 { … … 39 42 "selfRef": "https://datastore.geni.net/opsconfigs/geni-prod", 40 43 "ts": 1391192685740849, 41 "aggregates ": [44 "aggregatestores": [ 42 45 { 43 46 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm", 44 47 "amtype": "protogeni", 45 "href": "https://datastore.instageni.gpolab.bbn.com/aggregates/gpo-ig" 48 "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig" 49 } 50 ], 51 "externalcheckstores": [ 52 { 53 "href": "https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo" 46 54 } 47 55 ], … … 51 59 "href": "https://datastore.ch.geni.net/authorities/ch.geni.net" 52 60 } 53 ] 61 ], 62 "info": [ 63 { "name": "aggregate", 64 "db_schema": [ 65 ["$schema", "varchar"], 66 ["id", "varchar"], 67 ["selfRef","varchar"], 68 ["urn","varchar"], 69 ["ts","int8"], 70 ["measRef","varchar"] 71 ] 72 }, 73 { "name":"node", 74 "db_schema": [ 75 ["$schema", "varchar"], 76 ["id", "varchar"], 77 ["selfRef","varchar"], 78 ["urn","varchar"], 79 ["ts","int8"], 80 ["properties$mem_total_kb","int8"] 81 ] 82 }, 83 { "name": "link", 84 "db_schema": [ 85 ["$schema", "varchar"], 86 ["id", "varchar"], 87 ["selfRef","varchar"], 88 ["urn","varchar"], 89 ["ts","int8"] 90 ] 91 }, 92 { "name": "sliver", 93 "db_schema": [ 94 ["$schema", "varchar"], 95 ["id", "varchar"], 96 ["selfRef","varchar"], 97 ["urn","varchar"], 98 ["uuid","varchar"], 99 ["ts","int8"], 100 ["aggregate_urn","varchar"], 101 ["aggregate_href","varchar"], 102 ["slice_urn","varchar"], 103 ["slice_uuid","varchar"], 104 ["creator","varchar"], 105 ["created","int8"], 106 ["expires","int8"] 107 ] 108 }, 109 { "name":"interface", 110 "db_schema": [ 111 ["$schema", "varchar"], 112 ["id", "varchar"], 113 ["selfRef","varchar"], 114 ["urn","varchar"], 115 ["ts","int8"], 116 ["address_type","varchar"], 117 ["address_address","varchar"], 118 ["properties$role","varchar"], 119 ["properties$max_bps","int8"], 120 ["properties$max_pps","int8"] 121 ] 122 }, 123 { "name": "interfacevlan", 124 "db_schema": [ 125 ["$schema", "varchar"], 126 ["id", "varchar"], 127 ["selfRef","varchar"], 128 ["urn","varchar"], 129 ["ts","int8"], 130 ["tag","int8"], 131 ["interface_urn","varchar"], 132 ["interface_href","varchar"] 133 ] 134 }, 135 { "name": "slice", 136 "db_schema": [ 137 ["$schema", "varchar"], 138 ["id", "varchar"], 139 ["selfRef","varchar"], 140 ["urn","varchar"], 141 ["uuid","varchar"], 142 ["ts","int8"], 143 ["authority_urn","varchar"], 144 ["authority_href","varchar"], 145 ["created","int8"], 146 ["expires","int8"] 147 ] 148 }, 149 { "name":"user", 150 "db_schema": [ 151 ["$schema", "varchar"], 152 ["id", "varchar"], 153 ["selfRef","varchar"], 154 ["urn","varchar"], 155 ["ts","int8"], 156 ["authority_urn","varchar"], 157 ["authority_href","varchar"], 158 ["fullname","varchar"], 159 ["email","varchar"] 160 ] 161 }, 162 { "name":"authority", 163 "db_schema": [ 164 ["$schema", "varchar"], 165 ["id", "varchar"], 166 ["selfRef","varchar"], 167 ["urn","varchar"], 168 ["ts","int8"] 169 ] 170 }, 171 { "name":"externalcheck", 172 "db_schema": [ 173 ["$schema", "varchar"], 174 ["id", "varchar"], 175 ["selfRef","varchar"], 176 ["ts","int8"], 177 ["measRef","varchar"] 178 ] 179 }, 180 { "name":"experiment", 181 "db_schema": [ 182 ["$schema", "varchar"], 183 ["id", "varchar"], 184 ["selfRef","varchar"], 185 ["ts","int8"], 186 ["slice_urn","varchar"], 187 ["slice_uuid","varchar"], 188 ["source_aggregate_urn","varchar"], 189 ["source_aggregate_href","varchar"], 190 ["destination_aggregate_urn","varchar"], 191 ["destination_aggregate_href","varchar"] 192 ] 193 }, 194 { "name":"opsconfig", 195 "db_schema": [ 196 ["$schema", "varchar"], 197 ["id","varchar"], 198 ["selfRef","varchar"], 199 ["ts","int8"] 200 ] 201 }, 202 { "name":"aggregate_resource", 203 "db_schema" : [ 204 ["id","varchar"], 205 ["aggregate_id","varchar"], 206 ["urn","varchar"], 207 ["selfRef","varchar"] 208 ] 209 }, 210 { "name":"aggregate_sliver", 211 "db_schema" : [ 212 ["id","varchar"], 213 ["aggregate_id","varchar"], 214 ["urn","varchar"], 215 ["selfRef","varchar"] 216 ] 217 }, 218 { "name":"link_interfacevlan", 219 "db_schema" : [ 220 ["id","varchar"], 221 ["link_id","varchar"], 222 ["urn","varchar"], 223 ["selfRef","varchar"] 224 ] 225 }, 226 { "name":"sliver_resource", 227 "db_schema" : [ 228 ["id","varchar"], 229 ["sliver_id","varchar"], 230 ["urn","varchar"], 231 ["selfRef","varchar"] 232 ] 233 }, 234 { "name":"node_interface", 235 "db_schema": [ 236 ["id","varchar"], 237 ["node_id","varchar"], 238 ["urn","varchar"], 239 ["selfRef","varchar"] 240 ] 241 }, 242 { "name":"slice_user", 243 "db_schema": [ 244 ["id","varchar"], 245 ["slice_id","varchar"], 246 ["urn","varchar"], 247 ["role","varchar"], 248 ["selfRef","varchar"] 249 ] 250 }, 251 { "name":"authority_user", 252 "db_schema": [ 253 ["id","varchar"], 254 ["authority_id","varchar"], 255 ["urn","varchar"], 256 ["selfRef","varchar"] 257 ] 258 }, 259 { "name":"authority_slice", 260 "db_schema": [ 261 ["id","varchar"], 262 ["authority_id","varchar"], 263 ["urn","varchar"], 264 ["selfRef","varchar"] 265 ] 266 }, 267 { "name":"opsconfig_aggregate", 268 "db_schema": [ 269 ["id","varchar"], 270 ["opsconfig_id","varchar"], 271 ["amtype","varchar"], 272 ["urn","varchar"], 273 ["selfRef","varchar"] 274 ] 275 }, 276 { "name":"opsconfig_authority", 277 "db_schema": [ 278 ["id","varchar"], 279 ["opsconfig_id","varchar"], 280 ["urn","varchar"], 281 ["selfRef","varchar"] 282 ] 283 }, 284 { "name":"opsconfig_event", 285 "db_schema": [ 286 ["object_type","varchar"], 287 ["name","varchar"], 288 ["id","varchar"], 289 ["ts","varchar"], 290 ["v","varchar"], 291 ["units","varchar"] 292 ] 293 }, 294 { "name":"externalcheck_experiment", 295 "db_schema": [ 296 ["id","varchar"], 297 ["externalcheck_id","varchar"], 298 ["selfRef","varchar"] 299 ] 300 } 301 ], 302 "events": 303 { 304 "node": [ 305 { "name": "cpu_util", 306 "id": "varchar", 307 "ts": "int8", 308 "v": "float4", 309 "units": "percent" 310 }, 311 { "name": "mem_used_kb", 312 "id": "varchar", 313 "ts": "int8", 314 "v": "int8", 315 "units": "kilobytes" 316 }, 317 { "name": "swap_free", 318 "id": "varchar", 319 "ts": "int8", 320 "v": "float4", 321 "units": "percent" 322 }, 323 { "name": "is_available", 324 "id": "varchar", 325 "ts": "int8", 326 "v": "int2", 327 "units": "boolean" 328 }, 329 { "name": "disk_part_max_used", 330 "id": "varchar", 331 "ts": "int8", 332 "v": "float4", 333 "units":"percent" 334 } 335 ], 336 "aggregate": [ 337 { "name": "num_vms_allocated", 338 "id": "varchar", 339 "ts": "int8", 340 "v": "int4", 341 "units": "count" 342 }, 343 { "name": "is_available", 344 "id": "varchar", 345 "ts": "int8", 346 "v": "int2", 347 "units": "boolean" 348 } 349 ], 350 "interface": [ 351 { "name": "rx_bps", 352 "id": "varchar", 353 "ts": "int8", 354 "v":"float4", 355 "units":"bps" 356 }, 357 { "name": "tx_bps", 358 "id": "varchar", 359 "ts": "int8", 360 "v":"float4", 361 "units":"bps" 362 }, 363 { "name":"rx_pps", 364 "id": "varchar", 365 "ts": "int8", 366 "v":"float4", 367 "units":"pps" 368 }, 369 { "name":"tx_pps", 370 "id": "varchar", 371 "ts": "int8", 372 "v":"float4", 373 "units":"pps" 374 }, 375 { "name":"rx_eps", 376 "id": "varchar", 377 "ts": "int8", 378 "v":"float4", 379 "units":"pps" 380 }, 381 { "name":"tx_eps", 382 "id": "varchar", 383 "ts": "int8", 384 "v":"float4", 385 "units":"pps" 386 }, 387 { "name":"rx_dps", 388 "id": "varchar", 389 "ts": "int8", 390 "v":"float4", 391 "units":"pps" 392 }, 393 { "name":"tx_dps", 394 "id": "varchar", 395 "ts": "int8", 396 "v":"float4", 397 "units":"pps" 398 } 399 ], 400 "interfacevlan": [ 401 { "name": "rx_bps", 402 "id": "varchar", 403 "ts": "int8", 404 "v":"float4", 405 "units":"bps" 406 }, 407 { "name": "tx_bps", 408 "id": "varchar", 409 "ts": "int8", 410 "v":"float4", 411 "units":"bps" 412 }, 413 { "name":"rx_pps", 414 "id": "varchar", 415 "ts": "int8", 416 "v":"float4", 417 "units":"pps" 418 }, 419 { "name":"tx_pps", 420 "id": "varchar", 421 "ts": "int8", 422 "v":"float4", 423 "units":"pps" 424 }, 425 { "name":"rx_eps", 426 "id": "varchar", 427 "ts": "int8", 428 "v":"float4", 429 "units":"pps" 430 }, 431 { "name":"tx_eps", 432 "id": "varchar", 433 "ts": "int8", 434 "v":"float4", 435 "units":"pps" 436 }, 437 { "name":"rx_dps", 438 "id": "varchar", 439 "ts": "int8", 440 "v":"float4", 441 "units":"pps" 442 }, 443 { "name":"tx_dps", 444 "id": "varchar", 445 "ts": "int8", 446 "v":"float4", 447 "units":"pps" 448 } 449 ], 450 "experiment": [ 451 { "name": "ping_rtt_ms", 452 "id": "varchar", 453 "ts": "int8", 454 "v":"float4", 455 "units":"milliseconds" 456 } 457 ] 458 } 54 459 } 55 460 }}} … … 59 464 Aggregates are indexed by GENI-agreed short name and described using [http://www.gpolab.bbn.com/monitoring/schema/20140828/aggregate# the aggregate schema]. Examples: 60 465 61 Hypothetical REST call for GPO-IG:466 Example REST call for aggregate gpo-ig: 62 467 {{{ 63 468 https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig 64 469 }}} 65 470 Response: 66 471 {{{ 67 472 { … … 72 477 "ts": 1391192685740849, 73 478 "measRef": "https://datastore.instageni.gpolab.bbn.com/data", 479 "monitoring_version": "v2.0", 480 "operational_status": "production", 74 481 "resources": [ 75 482 { 76 483 "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" 484 "resource_type": "node", 485 "href": "https://datastore.instageni.gpolab.bbn.com/nodes/instageni.gpolab.bbn.com_node_pc1" 78 486 }, 79 487 { 80 488 "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" 489 "resource_type": "node", 490 "href": "https://datastore.instageni.gpolab.bbn.com/nodes/instageni.gpolab.bbn.com_node_pc2" 86 491 } 87 492 ], … … 89 494 { 90 495 "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"496 "href": "https://datastore.instageni.gpolab.bbn.com/slivers/instageni.gpolab.bbn.com_sliver_36947" 92 497 } 93 498 ] … … 98 503 99 504 Nodes have an ID which is a URL-sanitized version of their URN and are described using [http://unis.incntre.iu.edu/schema/20140828/node# the node schema]. Examples: 100 Hypothetical REST call for GPO-IG PC1:505 Example REST call for GPO-IG node pc1: 101 506 {{{ 102 507 https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1 103 508 }}} 104 105 {{{ 106 { 107 "$schema": "http:// unis.incntre.iu.edu/schema/20140828/node#",509 Response: 510 {{{ 511 { 512 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/node#", 108 513 "id": "instageni.gpolab.bbn.com_node_pc1", 109 514 "ts": 1391192705275101, 110 "selfRef": "https://datastore.instageni.gpolab.bbn.com/ info/node/instageni.gpolab.bbn.com_node_pc1",515 "selfRef": "https://datastore.instageni.gpolab.bbn.com/nodes/instageni.gpolab.bbn.com_node_pc1", 111 516 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1", 112 517 "ops_monitoring:mem_total_kb": 50331648, 113 "ops_monitoring:vm_server_type": "xen", 114 "ports": [ 518 "node_type": "server", 519 "virtualization_type": "xen", 520 "interfaces": [ 115 521 { 116 522 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth0", … … 136 542 137 543 Links have an ID which is a URL-sanitized version of their URN and are described using [http://www.gpolab.bbn.com/monitoring/schema/20140828/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 544 Example REST call for GRNOC link salt_port_1750: 545 {{{ 546 https://datastore.grnoc.iu.edu/info/link/arbitrary_id_001 547 }}} 548 Response: 549 {{{ 550 { 551 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/link#", 552 "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/link/arbitrary_id_001", 553 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+link+arbitrary_id_001", 554 "ts": 1391194147100678, 555 "id": "arbitrary_id_001", 556 "endpoints": [ 557 { 558 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc2:eth1:1750", 559 "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc2:eth1:1750" 560 }, 561 { 562 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1:1750", 563 "href": "https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750" 564 } 565 ] 566 } 567 }}} 568 569 ==== Data about an interface ==== 570 571 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: 572 573 Example REST call for pc1 eth0 (control) at gpo-ig: 574 {{{ 575 https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0 141 576 }}} 142 577 Response: 143 578 {{{ 144 579 { 145 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/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 }, 151 "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" 185 } 186 ] 187 } 188 }}} 189 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: 200 {{{ 201 https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0 202 }}} 203 Response: 204 {{{ 205 { 206 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/port#", 580 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/interface#", 207 581 "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0", 208 582 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth0", 209 583 "ts": 1391194147100678, 210 584 "id": "instageni.gpolab.bbn.com_interface_pc1:eth0", 211 "address": { 212 "type": "ipv4", 213 "address": "192.1.242.140" 214 }, 585 "addresses": [ 586 { 587 "addrtype": "IPv4", 588 "address": "192.1.242.140", 589 "scope": "private" 590 }, 591 { 592 "addrtype": "IPv6", 593 "address": "2001:cdba::3257:9652" 594 } 595 ], 215 596 "ops_monitoring:role": "control", 216 597 "ops_monitoring:max_bps": 10000000, … … 219 600 }}} 220 601 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:eth1225 }}}226 Response:227 {{{228 {229 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/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",232 "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": 1000000241 }242 }}}243 244 602 ==== Data about a slice authority ==== 245 603 … … 247 605 248 606 249 HypotheticalREST call for authority of ch.geni.net:607 Example REST call for authority of ch.geni.net: 250 608 {{{ 251 609 https://datastore.ch.geni.net/info/authority/ch.geni.net … … 275 633 276 634 277 ==== Data about a 635 ==== Data about an Interface-VLAN ==== 278 636 279 637 Examples: 280 638 281 Hypothetical REST call for VLAN 101 from nox to core controlled by ION (probably an incorrect example):639 Example REST call for VLAN 1750 on pc1 eth1: 282 640 {{{ 283 641 https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750 284 642 }}} 285 286 {{{ 287 { 288 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/ port-vlan#",289 "selfRef": "https://datastore.instageni.gpolab.bbn.com/in terfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750",643 Response: 644 {{{ 645 { 646 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/interfacevlan#", 647 "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750", 290 648 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1:1750", 291 649 "ts": 1391194147100678, 292 650 "id": "instageni.gpolab.bbn.com_interface_pc1:eth1:1750", 293 651 "tag": 1750, 294 " port": {652 "interface": { 295 653 "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"654 "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth1" 297 655 } 298 656 } … … 304 662 GENI users have an ID based on the username and are described using [http://www.gpolab.bbn.com/monitoring/schema/20140828/user# the GENI user schema]. Examples: 305 663 306 HypotheticalREST call for user tupty at ch.geni.net:664 Example REST call for user tupty at ch.geni.net: 307 665 {{{ 308 666 https://datastore.ch.geni.net/info/user/tupty … … 321 679 }, 322 680 "fullname": "Tim Exampleuser", 323 "email": "t im@example.com"681 "email": "tupty@example.com" 324 682 } 325 683 }}} … … 328 686 329 687 GENI slices have an ID based on the URN and are described using [http://www.gpolab.bbn.com/monitoring/schema/20140828/slice# the GENI slice schema]. Examples: 330 HypotheticalREST call for tuptyexclusive slice:688 Example REST call for tuptyexclusive slice: 331 689 {{{ 332 690 https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive … … 360 718 361 719 GENI sliver have an ID based on the URN and are described using [http://www.gpolab.bbn.com/monitoring/schema/20140828/sliver# the GENI sliver schema]. Examples: 362 HypotheticalREST call for tuptyexclusive instageni sliver:720 Example REST call for tuptyexclusive instageni sliver: 363 721 {{{ 364 722 https://datastore.instageni.gpolab.bbn.com/info/sliver/instageni.gpolab.bbn.com_sliver_26947 … … 375 733 "aggregate": { 376 734 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm", 377 "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate s/gpo-ig"735 "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig" 378 736 }, 379 737 "slice_urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive", … … 382 740 "created": 1391626683000000, 383 741 "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 ] 742 "resource": { 743 "resource_type": "node", 744 "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1", 745 "href": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1" 746 } 394 747 } 395 748 }}} … … 406 759 "id": "gpo", 407 760 "selfRef": "https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo", 408 "ts": 139 7762559284773,409 "measRef : "https://externalcheckstore.gpolab.bbn.com/data/",761 "ts": 1391192685740849, 762 "measRef": "https://externalcheckstore.gpolab.bbn.com/data", 410 763 "experiments": [ 411 764 { … … 428 781 429 782 Operational monitoring measures the dataplane with a set of simple tests between aggregates described using [http://www.gpolab.bbn.com/monitoring/schema/20140828/experiment# the operational monitoring experiment schema]. Examples: 430 HypotheticalREST call for missouri-ig to gpo-ig experiment:431 {{{ 432 https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig 783 Example REST call for missouri-ig to gpo-ig experiment: 784 {{{ 785 https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig_rtt 433 786 }}} 434 787 Response: … … 436 789 { 437 790 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/experiment#", 438 "id": "missouri-ig_to_gpo-ig ",439 "selfRef": "https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig ",791 "id": "missouri-ig_to_gpo-ig_rtt", 792 "selfRef": "https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig_rtt", 440 793 "slice_urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive", 441 794 "slice_uuid": "8c6b97fa-493b-400f-95ee-19accfaf4ae8", … … 456 809 457 810 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 HypotheticalREST call for CPU utilization metric on pc1:811 Example REST call for CPU utilization metric on pc1: 459 812 {{{ 460 813 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"]}}} … … 479 832 } 480 833 }}} 481 HypotheticalREST call for percentage of swap available on pc1:834 Example REST call for percentage of swap available on pc1: 482 835 {{{ 483 836 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"]}}} … … 503 856 } 504 857 }}} 505 HypotheticalREST call for memory in active use on pc1:858 Example REST call for memory in active use on pc1: 506 859 {{{ 507 860 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"]}}} … … 526 879 } 527 880 }}} 528 Hypotheticalcall for bytes per second received by `pc1:eth0`:881 Example call for bytes per second received by `pc1:eth0`: 529 882 {{{ 530 883 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"]}}} … … 535 888 "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", 536 889 "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",890 "subject": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0", 538 891 "eventType": "ops_monitoring:rx_bps", 539 892 "description": "bytes per second received on this interface", … … 549 902 } 550 903 }}} 551 HypotheticalREST call for boolean metric indicating whether pc1 is available for use according to the aggregate responsible for it:904 Example REST call for boolean metric indicating whether pc1 is available for use according to the aggregate responsible for it: 552 905 {{{ 553 906 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"]}}}