Changes between Version 7 and Version 8 of OperationalMonitoring/DataSchema20


Ignore:
Timestamp:
08/27/14 18:19:42 (10 years ago)
Author:
dwiggins@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OperationalMonitoring/DataSchema20

    v7 v8  
    1919   * When we setup operations monitoring measurements, we'll give them the eventType `ops_monitoring:<something>`
    2020
    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
     23Some 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.
    2624 * `https://datastore.geni.net/`: datastore containing configuration data for operational monitoring
    2725 * `https://datastore.instageni.gpolab.bbn.com/`: datastore for gpo-ig aggregate
     
    3331Operational 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:
    3432 * geni-prod: a hypothetical config datastore listing production aggregates and authorities:
     33Example REST call:
     34{{{
     35https://datastore.geni.net/info/opsconfig/geni-prod
     36}}}
     37Response:
    3538{{{
    3639{
     
    3942  "selfRef": "https://datastore.geni.net/opsconfigs/geni-prod",
    4043  "ts": 1391192685740849,
    41   "aggregates": [
     44  "aggregatestores": [
    4245    {
    4346      "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm",
    4447      "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"
    4654    }
    4755  ],
     
    5159      "href": "https://datastore.ch.geni.net/authorities/ch.geni.net"
    5260    }
    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    }
    54459}
    55460}}}
     
    59464Aggregates are indexed by GENI-agreed short name and described using [http://www.gpolab.bbn.com/monitoring/schema/20140828/aggregate# the aggregate schema].  Examples:
    60465
    61 Hypothetical REST call for GPO-IG:
     466Example REST call for aggregate gpo-ig:
    62467{{{
    63468https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig
    64469}}}
    65  Response:
     470Response:
    66471{{{
    67472{
     
    72477  "ts": 1391192685740849,
    73478  "measRef": "https://datastore.instageni.gpolab.bbn.com/data",
     479  "monitoring_version": "v2.0",
     480  "operational_status": "production",
    74481  "resources": [
    75482    {
    76483      "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"
    78486    },
    79487    {
    80488      "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"
    86491    }
    87492  ],
     
    89494    {
    90495      "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"
    92497    }
    93498  ]
     
    98503
    99504Nodes 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:
    101506{{{
    102507https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1
    103508}}}
    104  Response:
    105 {{{
    106 {
    107   "$schema": "http://unis.incntre.iu.edu/schema/20140828/node#",
     509Response:
     510{{{
     511{
     512  "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/node#",
    108513  "id": "instageni.gpolab.bbn.com_node_pc1",
    109514  "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",
    111516  "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1",
    112517  "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": [
    115521    {
    116522      "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth0",
     
    136542
    137543Links 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{{{
     546https://datastore.grnoc.iu.edu/info/link/arbitrary_id_001
     547}}}
     548Response:
     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
     571Interfaces 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
     573Example REST call for pc1 eth0 (control) at gpo-ig:
     574{{{
     575https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0
    141576}}}
    142577 Response:
    143578{{{
    144579{
    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#",
    207581  "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0",
    208582  "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth0",
    209583  "ts": 1391194147100678,
    210584  "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  ],
    215596  "ops_monitoring:role": "control",
    216597  "ops_monitoring:max_bps": 10000000,
     
    219600}}}
    220601
    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:
    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": 1000000
    241 }
    242 }}}
    243 
    244602==== Data about a slice authority ====
    245603
     
    247605
    248606
    249  Hypothetical REST call for authority of ch.geni.net:
     607 Example REST call for authority of ch.geni.net:
    250608{{{
    251609https://datastore.ch.geni.net/info/authority/ch.geni.net
     
    275633
    276634
    277 ==== Data about a VLAN ====
     635==== Data about an Interface-VLAN ====
    278636
    279637Examples:
    280638
    281  Hypothetical REST call for VLAN 101 from nox to core controlled by ION (probably an incorrect example):
     639Example REST call for VLAN 1750 on pc1 eth1:
    282640{{{
    283641https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750
    284642}}}
    285  Response:
    286 {{{
    287 {
    288   "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/port-vlan#",
    289   "selfRef": "https://datastore.instageni.gpolab.bbn.com/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750",
     643Response:
     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",
    290648  "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1:1750",
    291649  "ts": 1391194147100678,
    292650  "id": "instageni.gpolab.bbn.com_interface_pc1:eth1:1750",
    293651  "tag": 1750,
    294   "port": {
     652  "interface": {
    295653    "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"
    297655  }
    298656}
     
    304662GENI 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:
    305663
    306  Hypothetical REST call for user tupty at ch.geni.net:
     664 Example REST call for user tupty at ch.geni.net:
    307665{{{
    308666 https://datastore.ch.geni.net/info/user/tupty
     
    321679  },
    322680  "fullname": "Tim Exampleuser",
    323   "email": "tim@example.com"
     681  "email": "tupty@example.com"
    324682}
    325683}}}
     
    328686
    329687GENI 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 Hypothetical REST call for tuptyexclusive slice:
     688Example REST call for tuptyexclusive slice:
    331689{{{
    332690 https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive
     
    360718
    361719GENI 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  Hypothetical REST call for tuptyexclusive instageni sliver:
     720 Example REST call for tuptyexclusive instageni sliver:
    363721{{{
    364722https://datastore.instageni.gpolab.bbn.com/info/sliver/instageni.gpolab.bbn.com_sliver_26947
     
    375733  "aggregate": {
    376734    "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm",
    377     "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregates/gpo-ig"
     735    "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig"
    378736  },
    379737  "slice_urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive",
     
    382740  "created": 1391626683000000,
    383741  "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  }
    394747}
    395748}}}
     
    406759   "id": "gpo",
    407760   "selfRef": "https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo",
    408    "ts": 1397762559284773,
    409    "measRef: "https://externalcheckstore.gpolab.bbn.com/data/",
     761   "ts": 1391192685740849,
     762   "measRef": "https://externalcheckstore.gpolab.bbn.com/data",
    410763   "experiments": [
    411764      {
     
    428781
    429782Operational 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  Hypothetical REST 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{{{
     785https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig_rtt
    433786}}}
    434787 Response:
     
    436789{
    437790  "$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",
    440793  "slice_urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive",
    441794  "slice_uuid": "8c6b97fa-493b-400f-95ee-19accfaf4ae8",
     
    456809
    457810Measurements 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:
     811Example REST call for CPU utilization metric on pc1:
    459812{{{
    460813https://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"]}}}
     
    479832}
    480833}}}
    481 Hypothetical REST call for percentage of swap available on pc1:
     834Example REST call for percentage of swap available on pc1:
    482835{{{
    483836https://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"]}}}
     
    503856}
    504857}}}
    505 Hypothetical REST call for memory in active use on pc1:
     858Example REST call for memory in active use on pc1:
    506859{{{
    507860https://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"]}}}
     
    526879}
    527880}}}
    528  Hypothetical call for bytes per second received by `pc1:eth0`:
     881 Example call for bytes per second received by `pc1:eth0`:
    529882{{{
    530883https://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"]}}}
     
    535888  "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#",
    536889  "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",
    538891  "eventType": "ops_monitoring:rx_bps",
    539892  "description": "bytes per second received on this interface",
     
    549902}
    550903}}}
    551 Hypothetical REST call for boolean metric indicating whether pc1 is available for use according to the aggregate responsible for it:
     904Example REST call for boolean metric indicating whether pc1 is available for use according to the aggregate responsible for it:
    552905{{{
    553906https://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"]}}}