[[PageOutline]] == REST calls and JSON Replies for Monitoring Data == 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. 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. This page gives examples of these REST calls and responses. These examples assume the following (fictitious) local datastore URLs. 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. * `https://datastore.geni.net/`: datastore containing configuration data for operational monitoring * `https://datastore.instageni.gpolab.bbn.com/`: datastore for gpo-ig aggregate * `https://datastore.ch.geni.net/`: datastore for ch.geni.net authority * `https://datastore.externalchecks.geni.net/`: datastore for external checks in the monitoring framework (e.g. inter-aggregate pings, AM external availability) ==== Aggregate call and response ==== 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. General form of the REST call: {{{ https:///info/aggregate/ }}} is usually the aggregate's GENI-assigned nickname (short name). Example REST call for aggregate gpo-ig: {{{ https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig }}} 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]. {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/aggregate#", "id": "gpo-ig", "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig", "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm", "ts": 1391192685740849, "measRef": "https://datastore.instageni.gpolab.bbn.com/data", "monitoring_version": "v2.0", "operational_status": "production", "resources": [ { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1", "resource_type": "node", "href": "https://datastore.instageni.gpolab.bbn.com/nodes/instageni.gpolab.bbn.com_node_pc1" }, { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc2", "resource_type": "node", "href": "https://datastore.instageni.gpolab.bbn.com/nodes/instageni.gpolab.bbn.com_node_pc2" } ], "slivers": [ { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+26947", "href": "https://datastore.instageni.gpolab.bbn.com/slivers/instageni.gpolab.bbn.com_sliver_36947" } ] } }}} ==== Node call and response ==== Example REST call for gpo-ig node pc1: {{{ https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1 }}} 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]. {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/node#", "id": "instageni.gpolab.bbn.com_node_pc1", "ts": 1391192705275101, "selfRef": "https://datastore.instageni.gpolab.bbn.com/nodes/instageni.gpolab.bbn.com_node_pc1", "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1", "ops_monitoring:mem_total_kb": 50331648, "node_type": "server", "virtualization_type": "xen", "interfaces": [ { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth0", "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1%3Aeth0" }, { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1", "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1%3Aeth1" }, { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth2", "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1%3Aeth2" }, { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth3", "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1%3Aeth3" } ] } }}} ==== Link call and response ==== Example REST call: {{{ https://datastore.grnoc.iu.edu/info/link/arbitrary_id_001 }}} 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]. {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/link#", "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/link/arbitrary_id_001", "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+link+arbitrary_id_001", "ts": 1391194147100678, "id": "arbitrary_id_001", "endpoints": [ { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc2:eth1:1750", "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc2:eth1:1750" }, { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1:1750", "href": "https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750" } ] } }}} ==== Interface call and response ==== Retrieves information about a network interface, a.k.a. port. Example REST call for pc1 eth0 (control) at gpo-ig: {{{ https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0 }}} 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]. {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/interface#", "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0", "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth0", "ts": 1391194147100678, "id": "instageni.gpolab.bbn.com_interface_pc1:eth0", "addresses": [ { "addrtype": "IPv4", "address": "192.1.242.140", "scope": "private" }, { "addrtype": "IPv6", "address": "2001:cdba::3257:9652" } ], "ops_monitoring:role": "control", "ops_monitoring:max_bps": 10000000, "ops_monitoring:max_pps": 1000000 } }}} ==== Slice authority call and response ==== GENI slice authorities are indexed by domain name and described using [http://www.gpolab.bbn.com/monitoring/schema/20140828/authority# the authority schema]. Examples: data about a GENI authority Example REST call for authority of ch.geni.net: {{{ https://datastore.ch.geni.net/info/authority/ch.geni.net }}} 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] {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/authority#", "id": "ch.geni.net", "selfRef": "https://datastore.ch.geni.net/info/authority/ch.geni.net", "urn": "urn:publicid:IDN+ch.geni.net+authority+ch", "ts": 1391192685740849, "users": [ { "urn": "urn:publicid:IDN+ch.geni.net+user+tupty", "href": "https://datastore.ch.geni.net/info/user/tupty" } ], "slices": [ { "urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive", "href": "https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive" } ] } }}} ==== Interface-VLAN call and response ==== data about a tagged VLAN subinterface of a network interface Example REST call for VLAN 1750 on pc1 eth1: {{{ https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750 }}} 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]. {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/interfacevlan#", "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/interfacevlan/instageni.gpolab.bbn.com_interface_pc1:eth1:1750", "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1:1750", "ts": 1391194147100678, "id": "instageni.gpolab.bbn.com_interface_pc1:eth1:1750", "tag": 1750, "interface": { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc1:eth1", "href": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth1" } } }}} ==== User call and response ==== 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: data about a GENI user at an authority Example REST call for user tupty at ch.geni.net: {{{ https://datastore.ch.geni.net/info/user/tupty }}} 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] {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/user#", "id": "tupty", "selfRef": "https://datastore.ch.geni.net/info/user/tupty", "urn": "https://datastore.ch.geni.net/info/user/tupty", "ts": 1391192685740849, "authority": { "urn": "urn:publicid:IDN+ch.geni.net+authority+ch", "href": "https://datastore.ch.geni.net/info/authority/ch.geni.net" }, "fullname": "Tim Exampleuser", "email": "tupty@example.com" } }}} ==== Slice call and response ==== 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]. data about a slice at an authority Example REST call for tuptyexclusive slice: {{{ https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive }}} 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] {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/slice#", "id": "ch.geni.net_gpo-infra_slice_tuptyexclusive", "selfRef": "https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive", "urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive", "uuid": "8c6b97fa-493b-400f-95ee-19accfaf4ae8", "ts": 1391192685740849, "authority": { "urn": "urn:publicid:IDN+ch.geni.net+authority+ch", "href": "https://datastore.ch.geni.net/info/authority/ch.geni.net" }, "created": 1391626683000000, "expires": 1391708989000000, "members": [ { "urn": "urn:publicid:IDN+ch.geni.net+user+tupty", "href": "https://datastore.ch.geni.net/info/users/tupty", "role": "lead" } ] } }}} ==== Sliver call and response ==== 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: data about a sliver at an aggregate [http://www.gpolab.bbn.com/monitoring/schema/20140828/sliver.schema.jwc sliver schema with comments] Example REST call for tuptyexclusive instageni sliver: {{{ https://datastore.instageni.gpolab.bbn.com/info/sliver/instageni.gpolab.bbn.com_sliver_26947 }}} 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]. {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/sliver#", "id": "instageni.gpolab.bbn.com_sliver_26947", "selfRef": "https://datastore.instageni.gpolab.bbn.com/info/sliver/instageni.gpolab.bbn.com_sliver_26947", "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+26947", "uuid": "30752b06-8ea8-11e3-8d30-000000000000", "ts": 1391192685740849, "aggregate": { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm", "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig" }, "slice_urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive", "slice_uuid": "8c6b97fa-493b-400f-95ee-19accfaf4ae8", "creator": "urn:publicid:IDN+ch.geni.net+user+tupty", "created": 1391626683000000, "expires": 1391708989000000, "resource": { "resource_type": "node", "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1", "href": "urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc1" } } }}} ==== External check datastore call and response ==== Example REST call: {{{ https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo }}} 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], . {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/externalcheck#", "id": "gpo", "selfRef": "https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo", "ts": 1391192685740849, "measRef": "https://externalcheckstore.gpolab.bbn.com/data", "experiments": [ { "href": "https://externalcheckstore.gpolab.bbn.com/info/experiment/missouri_ig_to_gpo_ig" } ], "monitored_aggregates": [ { "id": "gpo-ig", "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig" }, { "id": "rci-eg", "href": "https://rci-hn.exogeni.net/ops-monitoring/info/aggregate/rci-eg" } ] } }}} ==== Experiment call and response ==== 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: data about an operational monitoring experiment for monitoring the dataplane Example REST call for missouri-ig to gpo-ig experiment: {{{ https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig_rtt }}} 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] {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/experiment#", "id": "missouri-ig_to_gpo-ig_rtt", "selfRef": "https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig_rtt", "slice_urn": "urn:publicid:IDN+ch.geni.net:gpo-infra+slice+tuptyexclusive", "slice_uuid": "8c6b97fa-493b-400f-95ee-19accfaf4ae8", "ts": 1391192685740849, "source_aggregate": { "urn": "urn:publicid:IDN+instageni.missouri.edu+authority+cm", "href": "https://datastore.instageni.missouri.edu/info/aggregates/missouri-ig" }, "destination_aggregate": { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm", "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregates/gpo-ig" } } }}} ==== Measurements used for the use cases ==== 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: [http://www.gpolab.bbn.com/monitoring/schema/20140828/data data]: data about time-series measurements. Schema based in part on [http://unis.incntre.iu.edu/schema/20120709/metadata] [http://www.gpolab.bbn.com/monitoring/schema/20140828/data.schema.jwc data schema with comments] Example REST call for CPU utilization metric on pc1: {{{ 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"]}}} }}} Response {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", "id": "cpu_util:instageni.gpolab.bbn.com_node_pc1", "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", "eventType": "ops_monitoring:cpu_util", "description": "CPU utilization percentage", "units": "percent", "tsdata": [ { "ts": 1391198716651283, "v": 45 }, { "ts": 1391198776651284, "v": 44 }, { "ts": 1391198836651284, "v": 44 }, { "ts": 1391198896651284, "v": 47 }, { "ts": 1391198956651284, "v": 46 }, { "ts": 1391199016651285, "v": 47 } ] } }}} Example REST call for percentage of swap available on pc1: {{{ 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"]}}} }}} Response: {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", "id": "swap_free:instageni.gpolab.bbn.com_node_pc1", "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", "eventType": "ops_monitoring:swap_free", "description": "Percentage of swap available", "units": "percent", "tsdata": [ { "ts": 1391198716651283, "v": 95 }, { "ts": 1391198776651284, "v": 95 }, { "ts": 1391198836651284, "v": 95 }, { "ts": 1391198896651284, "v": 95 }, { "ts": 1391198956651284, "v": 95 }, { "ts": 1391199016651285, "v": 95 } ] } }}} Example REST call for memory in active use on pc1: {{{ 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"]}}} }}} Response: {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", "id": "mem_active_kb:instageni.gpolab.bbn.com_node_pc1", "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", "eventType": "ops_monitoring:mem_active_kb", "description": "Memory in active use", "units": "integer", "tsdata": [ { "ts": 1391198716651283, "v": 20030048 }, { "ts": 1391198776651284, "v": 20031148 }, { "ts": 1391198836651284, "v": 20031148 }, { "ts": 1391198896651284, "v": 22222222 }, { "ts": 1391198956651284, "v": 22222222 }, { "ts": 1391199016651285, "v": 22222222 } ] } }}} Example call for bytes per second received by `pc1:eth0`: {{{ 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"]}}} }}} Response: {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", "id": "rx_bps:instageni.gpolab.bbn.com_interface_pc1:eth0", "subject": "https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0", "eventType": "ops_monitoring:rx_bps", "description": "bytes per second received on this interface", "units": "float", "tsdata": [ { "ts": 1391198716651283, "v": 2453.64 }, { "ts": 1391198776651284, "v": 800.2 }, { "ts": 1391198836651284, "v": 2400.3 }, { "ts": 1391198896651284, "v": 1984.3 }, { "ts": 1391198956651284, "v": 0 }, { "ts": 1391199016651285, "v": 0 } ] } }}} Example REST call for boolean metric indicating whether pc1 is available for use according to the aggregate responsible for it: {{{ 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"]}}} }}} Response: {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", "id": "is_available:instageni.gpolab.bbn.com_node_pc1", "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", "eventType": "ops_monitoring:is_available", "description": "is the subject node available, according to the aggregate", "units": "boolean", "tsdata": [ { "ts": 1391198716651283, "v": 1 }, { "ts": 1391198776651284, "v": 1 }, { "ts": 1391198836651284, "v": 1 }, { "ts": 1391198896651284, "v": 1 }, { "ts": 1391198956651284, "v": 0 }, { "ts": 1391199016651285, "v": 0 } ] } }}} ==== Bulk Data Queries ==== 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. Also it is advised to provide timestamp filters with data queries. Here is the format for [wiki:OperationalMonitoring/DatastorePolling#DataQueries timestamp filters] . Example call: {{{ 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"]}}}} }}} {{{ [ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", "id": "cpu_util:instageni.gpolab.bbn.com_node_pc1", "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", "eventType": "ops_monitoring:cpu_util", "description": "CPU utilization percentage", "units": "percent", "tsdata": [ { "ts": 1391198716651283, "v": 45 }, { "ts": 1391198776651284, "v": 44 }, { "ts": 1391198836651284, "v": 44 }, { "ts": 1391198896651284, "v": 47 }, { "ts": 1391198956651284, "v": 46 }, { "ts": 1391199016651285, "v": 47 } ] } , { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", "id": "cpu_util:instageni.gpolab.bbn.com_node_pc2", "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc2", "eventType": "ops_monitoring:cpu_util", "description": "CPU utilization percentage", "units": "percent", "tsdata": [ { "ts": 1391198716651283, "v": 45 }, { "ts": 1391198776651284, "v": 48 }, { "ts": 1391198836651284, "v": 45 }, { "ts": 1391198896651284, "v": 49 }, { "ts": 1391198956651284, "v": 50 }, { "ts": 1391199016651285, "v": 51 } ] } , { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", "id": "mem_active_kb:instageni.gpolab.bbn.com_node_pc1", "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1", "eventType": "ops_monitoring:mem_active_kb", "description": "Memory in active use", "units": "integer", "tsdata": [ { "ts": 1391198716651283, "v": 30030048 }, { "ts": 1391198776651284, "v": 30031148 }, { "ts": 1391198836651284, "v": 30031148 }, { "ts": 1391198896651284, "v": 32222222 }, { "ts": 1391198956651284, "v": 32222222 }, { "ts": 1391199016651285, "v": 32222222 } ] } , { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/data#", "id": "mem_active_kb:instageni.gpolab.bbn.com_node_pc2", "subject": "https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc2", "eventType": "ops_monitoring:mem_active_kb", "description": "Memory in active use", "units": "integer", "tsdata": [ { "ts": 1391198716651283, "v": 20030048 }, { "ts": 1391198776651284, "v": 20031148 }, { "ts": 1391198836651284, "v": 20031148 }, { "ts": 1391198896651284, "v": 22222222 }, { "ts": 1391198956651284, "v": 22222222 }, { "ts": 1391199016651285, "v": 22222222 } ] } ] }}} ==== Operational monitoring configuration (opsconfig) call and response ==== 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]. * geni-prod: a hypothetical config datastore listing production aggregates and authorities: operational configuration metadata, including locations of and information about other datastores [http://www.gpolab.bbn.com/monitoring/schema/20140828/opsconfig.schema.jwc opsconfig schema with comments] Example REST call: {{{ https://datastore.geni.net/info/opsconfig/geni-prod }}} 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]. {{{ { "$schema": "http://www.gpolab.bbn.com/monitoring/schema/20140828/opsconfig#", "id": "geni-prod", "selfRef": "https://datastore.geni.net/opsconfigs/geni-prod", "ts": 1391192685740849, "aggregatestores": [ { "urn": "urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm", "amtype": "protogeni", "href": "https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig" } ], "externalcheckstores": [ { "href": "https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo" } ], "authorities": [ { "urn": "urn:publicid:IDN+ch.geni.net+authority+ch", "href": "https://datastore.ch.geni.net/authorities/ch.geni.net" } ], "info": [ { "name": "aggregate", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["urn","varchar"], ["ts","int8"], ["measRef","varchar"] ] }, { "name":"node", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["urn","varchar"], ["ts","int8"], ["properties$mem_total_kb","int8"] ] }, { "name": "link", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["urn","varchar"], ["ts","int8"] ] }, { "name": "sliver", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["urn","varchar"], ["uuid","varchar"], ["ts","int8"], ["aggregate_urn","varchar"], ["aggregate_href","varchar"], ["slice_urn","varchar"], ["slice_uuid","varchar"], ["creator","varchar"], ["created","int8"], ["expires","int8"] ] }, { "name":"interface", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["urn","varchar"], ["ts","int8"], ["address_type","varchar"], ["address_address","varchar"], ["properties$role","varchar"], ["properties$max_bps","int8"], ["properties$max_pps","int8"] ] }, { "name": "interfacevlan", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["urn","varchar"], ["ts","int8"], ["tag","int8"], ["interface_urn","varchar"], ["interface_href","varchar"] ] }, { "name": "slice", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["urn","varchar"], ["uuid","varchar"], ["ts","int8"], ["authority_urn","varchar"], ["authority_href","varchar"], ["created","int8"], ["expires","int8"] ] }, { "name":"user", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["urn","varchar"], ["ts","int8"], ["authority_urn","varchar"], ["authority_href","varchar"], ["fullname","varchar"], ["email","varchar"] ] }, { "name":"authority", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["urn","varchar"], ["ts","int8"] ] }, { "name":"externalcheck", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["ts","int8"], ["measRef","varchar"] ] }, { "name":"experiment", "db_schema": [ ["$schema", "varchar"], ["id", "varchar"], ["selfRef","varchar"], ["ts","int8"], ["slice_urn","varchar"], ["slice_uuid","varchar"], ["source_aggregate_urn","varchar"], ["source_aggregate_href","varchar"], ["destination_aggregate_urn","varchar"], ["destination_aggregate_href","varchar"] ] }, { "name":"opsconfig", "db_schema": [ ["$schema", "varchar"], ["id","varchar"], ["selfRef","varchar"], ["ts","int8"] ] }, { "name":"aggregate_resource", "db_schema" : [ ["id","varchar"], ["aggregate_id","varchar"], ["urn","varchar"], ["selfRef","varchar"] ] }, { "name":"aggregate_sliver", "db_schema" : [ ["id","varchar"], ["aggregate_id","varchar"], ["urn","varchar"], ["selfRef","varchar"] ] }, { "name":"link_interfacevlan", "db_schema" : [ ["id","varchar"], ["link_id","varchar"], ["urn","varchar"], ["selfRef","varchar"] ] }, { "name":"sliver_resource", "db_schema" : [ ["id","varchar"], ["sliver_id","varchar"], ["urn","varchar"], ["selfRef","varchar"] ] }, { "name":"node_interface", "db_schema": [ ["id","varchar"], ["node_id","varchar"], ["urn","varchar"], ["selfRef","varchar"] ] }, { "name":"slice_user", "db_schema": [ ["id","varchar"], ["slice_id","varchar"], ["urn","varchar"], ["role","varchar"], ["selfRef","varchar"] ] }, { "name":"authority_user", "db_schema": [ ["id","varchar"], ["authority_id","varchar"], ["urn","varchar"], ["selfRef","varchar"] ] }, { "name":"authority_slice", "db_schema": [ ["id","varchar"], ["authority_id","varchar"], ["urn","varchar"], ["selfRef","varchar"] ] }, { "name":"opsconfig_aggregate", "db_schema": [ ["id","varchar"], ["opsconfig_id","varchar"], ["amtype","varchar"], ["urn","varchar"], ["selfRef","varchar"] ] }, { "name":"opsconfig_authority", "db_schema": [ ["id","varchar"], ["opsconfig_id","varchar"], ["urn","varchar"], ["selfRef","varchar"] ] }, { "name":"opsconfig_event", "db_schema": [ ["object_type","varchar"], ["name","varchar"], ["id","varchar"], ["ts","varchar"], ["v","varchar"], ["units","varchar"] ] }, { "name":"externalcheck_experiment", "db_schema": [ ["id","varchar"], ["externalcheck_id","varchar"], ["selfRef","varchar"] ] } ], "events": { "node": [ { "name": "cpu_util", "id": "varchar", "ts": "int8", "v": "float4", "units": "percent" }, { "name": "mem_used_kb", "id": "varchar", "ts": "int8", "v": "int8", "units": "kilobytes" }, { "name": "swap_free", "id": "varchar", "ts": "int8", "v": "float4", "units": "percent" }, { "name": "is_available", "id": "varchar", "ts": "int8", "v": "int2", "units": "boolean" }, { "name": "disk_part_max_used", "id": "varchar", "ts": "int8", "v": "float4", "units":"percent" } ], "aggregate": [ { "name": "num_vms_allocated", "id": "varchar", "ts": "int8", "v": "int4", "units": "count" }, { "name": "is_available", "id": "varchar", "ts": "int8", "v": "int2", "units": "boolean" } ], "interface": [ { "name": "rx_bps", "id": "varchar", "ts": "int8", "v":"float4", "units":"bps" }, { "name": "tx_bps", "id": "varchar", "ts": "int8", "v":"float4", "units":"bps" }, { "name":"rx_pps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"tx_pps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"rx_eps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"tx_eps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"rx_dps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"tx_dps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" } ], "interfacevlan": [ { "name": "rx_bps", "id": "varchar", "ts": "int8", "v":"float4", "units":"bps" }, { "name": "tx_bps", "id": "varchar", "ts": "int8", "v":"float4", "units":"bps" }, { "name":"rx_pps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"tx_pps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"rx_eps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"tx_eps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"rx_dps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" }, { "name":"tx_dps", "id": "varchar", "ts": "int8", "v":"float4", "units":"pps" } ], "experiment": [ { "name": "ping_rtt_ms", "id": "varchar", "ts": "int8", "v":"float4", "units":"milliseconds" } ] } } }}}