wiki:OperationalMonitoring/DataSchema20

Version 14 (modified by dwiggins@bbn.com, 5 years ago) (diff)

address Luisa's comments

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 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://<datastore-host>/info/aggregate/<aggregate-id>

<aggregate-id> is usually the aggregate's GENI-assigned nickname (common name).

Example REST call for aggregate gpo-ig:

https://datastore.instageni.gpolab.bbn.com/info/aggregate/gpo-ig

The 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

Retrieves information about a node.

General form of the REST call:

https://<datastore-host>/info/node/<node object id>

Example REST call for gpo-ig node pc1:

https://datastore.instageni.gpolab.bbn.com/info/node/instageni.gpolab.bbn.com_node_pc1

The 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

Retrieves information about a link.

General form of the REST call:

https://<datastore-host>/info/link/<link object id>

Example REST call for arbitrary_id_001:

https://datastore.grnoc.iu.edu/info/link/arbitrary_id_001

The 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

Retrieves information about a network interface, a.k.a. port.

General form of the REST call:

https://<datastore-host>/info/interface/<interface object id>

Example REST call for pc1 eth0 at gpo-ig:

https://datastore.instageni.gpolab.bbn.com/info/interface/instageni.gpolab.bbn.com_interface_pc1:eth0

The 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
}

Interface-VLAN call and response

Retrieves information about a tagged VLAN subinterface of a network interface.

General form of the REST call:

https://<datastore-host>/info/interfacevlan/<interfacevlan object id>

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

The 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"
  }
}

Slice authority call and response

Retrieves information about a slice authority.

General form of the REST call:

https://<datastore-host>/info/slice/<slice object id>

Example REST call for authority of ch.geni.net:

https://datastore.ch.geni.net/info/authority/ch.geni.net

The 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"
    }
  ]
}

User call and response

Retrieves information about a GENI user.

General form of the REST call:

https://<datastore-host>/info/user/<user object id>

Example REST call for user tupty at ch.geni.net:

https://datastore.ch.geni.net/info/user/tupty

The 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

Retrieves information about a slice at an authority.

General form of the REST call:

https://<datastore-host>/info/slice/<slice object id>

Example REST call for tuptyexclusive slice:

https://datastore.ch.geni.net/info/slice/ch.geni.net_gpo-infra_slice_tuptyexclusive

The 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

Retrieves information about a sliver.

General form of the REST call:

https://<datastore-host>/info/sliver/<sliver object id>

Example REST call for tuptyexclusive instageni sliver:

https://datastore.instageni.gpolab.bbn.com/info/sliver/instageni.gpolab.bbn.com_sliver_26947

The 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

Retrieves information about a sliver.

General form of the REST call:

https://<datastore-host>/info/externalcheck/<extchk-id>

Example REST call for GPO externalcheck store:

https://externalcheckstore.gpolab.bbn.com/info/externalcheck/gpo

The 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

Retrieves information data about an operational monitoring experiment for monitoring the dataplane between aggregates.

General form of the REST call:

https://<datastore-host>/info/experiment/<experiment id>

Example REST call for missouri-ig to gpo-ig experiment:

https://datastore.externalchecks.geni.net/info/experiment/missouri-ig_to_gpo-ig_rtt

The 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"
  }
}

Time-series measurements call and response

Retrieve time series measurements, a.k.a. simply "data" or "events."

General form of the REST call:

https://<datastore-host>/data/?q=
        {"filters":
            {"eventType":[<list of measurementNames>],
             "ts":{"gte":<lower bound timestamp>, "lte":<upper bound timestamp},
             "obj":{"type":"<object type name>", "id":[<list of object ids>]}}}

(The above is split into multiple lines for readability; actual calls are all on one line.)

If <list of object ids> is "*", it means "all objects known to the datastore of type <object type name>."

The response is a list "[...]" in which each element conforms to the data schema, commented version of the data schema. Each element of the list applies to one (eventType, object id) pair.

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 REST 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 }
    ]
  }
]

Example REST call requesting multiple eventTypes and object ids:

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"]}}}}

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 }
    ]
 }
,
 { 
   "$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

Retrieves a variety of configuration information, including:

  • locations (URLs) of and information about other datastores
  • GENI authorities
  • Database schemas used to store monitoring information
  • A list of possible event types for time-series measurements

Example REST call for geni-prod, a hypothetical config datastore listing production aggregates and authorities:

https://datastore.geni.net/info/opsconfig/geni-prod

The response conforms to the opsconfig schema, 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"
          }
       ]
    }
}