Version 9 (modified by 10 years ago) (diff) | ,
---|
-
-
JSON Schemas for Replies to REST API calls
-
Schema usage example
- Aggregate call and response
- Node call and response
- Link call and response
- Interface call and response
- Slice authority call and response
- Interface-VLAN call and response
- User call and response
- Slice call and response
- Sliver call and response
- External check datastore call and response
- Experiment call and response
- Measurements used for the use cases
- Bulk Data Queries
- Data about operational monitoring configuration
-
Schema usage example
-
JSON Schemas for Replies to REST API calls
JSON Schemas for Replies to REST API calls
All of these schemas inherit from the UNIS network resource schema with the exception of the opsconfig schema.
- opsconfig: operational configuration metadata, including locations of and information about other datastores opsconfig schema with comments
- aggregate: data about an aggregate (including lists of resources and slivers at that aggregate, and where to look for measurements about the aggregate) aggregate schema with comments
- node: data about a node node schema with comments
- interface: data about a network interface interface schema with comments
- interfacevlan: data about a tagged VLAN subinterface of a network interface interfacevlan schema with comments
- sliver: data about a sliver at an aggregate sliver schema with comments
- authority: data about a GENI authority authority schema with comments
- slice: data about a slice at an authority slice schema with comments
- user: data about a GENI user at an authority user schema with comments
- experiment: data about an operational monitoring experiment for monitoring the dataplane experiment schema with comments
- data: data about time-series measurements. Schema based in part on http://unis.incntre.iu.edu/schema/20120709/metadata data schema with comments
- For now, we would use the
ops_monitoring
namespace for operations monitoring, meaning:- When we add monitoring-relevant optional properties to objects, we'll put them in an
ops_monitoring
dictionary - When we setup operations monitoring measurements, we'll give them the eventType
ops_monitoring:<something>
- When we add monitoring-relevant optional properties to objects, we'll put them in an
Schema usage example
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.
https://datastore.geni.net/
: datastore containing configuration data for operational monitoringhttps://datastore.instageni.gpolab.bbn.com/
: datastore for gpo-ig aggregatehttps://datastore.ch.geni.net/
: datastore for ch.geni.net authorityhttps://datastore.externalchecks.geni.net/
: datastore for external checks in the monitoring framework (e.g. inter-aggregate pings, AM external availability)
Aggregate call and response
Aggregates are indexed by GENI-agreed short name.
Example REST call for aggregate gpo-ig:
https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig
Response conforms to the aggregate schema, 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 node schema, 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 link schema, 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
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 interface schema, 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 the authority schema. Examples:
Example REST call for authority of ch.geni.net:
https://datastore.ch.geni.net/info/authority/ch.geni.net
Response conforms to the authority schema, 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
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 interfacevlan schema, 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 the GENI user schema. Examples:
Example REST call for user tupty at ch.geni.net:
https://datastore.ch.geni.net/info/user/tupty
Response conforms to the user schema, 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 the GENI slice schema. Example REST call for tuptyexclusive slice:
https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive
Response conforms to the slice schema, 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 the GENI sliver schema. Examples: 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 sliver schema, 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 external check schema, 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 the operational monitoring experiment schema. Examples: 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 experiment schema, 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: 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 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 } ] } ]
Data about operational monitoring configuration
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 the opsconfig schema. Examples:
- geni-prod: a hypothetical config datastore listing production aggregates and authorities:
Example REST call:
https://datastore.geni.net/info/opsconfig/geni-prod
Response:
{ "$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" } ] } }