Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Related

General

All requests lists below are JSON requests.  HTML requests will work for these URL's but may return different data.  To guarantee a json request append .json to the end of the url (but not the query string).  All replies will be in the form of a JSON document.

CodeDescription
200Successful request. Body will Contain JSON object
401Authentication required

...


Authentication

Authentication is required to access all methods listed below.

...

Authenticate to opCharts. 

Request

ParameterDescription
usernameThe username to authenticate with
passwordThe password for the user

Successful Response

A cookie is created and sent with the response.  This must be saved and passed with all requests below.  

Nodes

Nodes are gathered from the NMIS installation on the existing server.  Each node has a list of resources.  Each resource can either be indexed or non-indexed.  If non-indexed each resource contains a list of datasets (which are individual data points over time, eg. avgbusy5).  If indexed, the resource contains an array, each element in that array contains datasets.

GET nodes (fetch list of nodes)

GET /omk/opCharts/nodes/

Retrieves the nodes available to opCharts.  No parameters are accepted.

Successful Response

Returns an array of strings containing the node names 

Code Block
themeConfluence
[
  "odin",
  "sparkle",
  "maverick",
]

 

GET node resources (fetch resources for a single node)

GET /omk/opCharts/nodes/[node]/resources/

Retrieves all resources for the specified node.  A resource is required when requesting specific datasets or indexed datasets.

Successful Response

Returns an array of resource objects. Each resource object has a value it can be identified by(which can be used in later requests) and a url that the resource value can be appended to in order to fetch information about this resource and it's name which can be displayed to users.

Code Block
[
  {
    value: "nodehealth",
    url: "/omk/opCharts/nodes/asgard/resources",
    name: "nodehealth"
  },
  {
    value: "mib2ip",
    url: "/omk/opCharts/nodes/asgard/resources",
    name: "mib2ip"
  },
  {
    value: "interface",
    url: "/omk/opCharts/nodes/asgard/resources",
    name: "interface"
  },
  ....
]

GET node resource datasets (fetch datasets for a single node & resource)

GET /omk/opCharts/nodes/[node]/resources/[resource]/

Retrieves all datasets for the specified node & resource.

Successful Response

An array of dataset objects. Each dataset object lists it's resource, the value it can be identified by, a url that the value can be appended to (if not ending in .json), tokens used for searching and it's name which can be used for displaying to users.

Non-indexed:

Code Block
[
  {
    indexed: "",
    resource_id: "mib2ip",
    value: "ipInAddrErrors",
    url: "/omk/opCharts/nodes/asgard/resources/mib2ip/datasets",
    tokens: [
      "ipInAddrErrors",
      "mib2ip"
    ],
    name: "ipInAddrErrors"
  },
  ...
]

If a dataset is indexed it must be accessed through one of the indexes provided by the resource.  This list can be found using the url listed in the dataset object.

Indexed: 

Code Block
[
  {
    indexed: "1",
    resource_id: "interface",
    value: "ifInOctets",
    url: "/omk/opCharts/nodes/asgard/resources/interface/indicies.json",
    tokens: [
      "ifInOctets",
      "interface"
    ],
    name: "ifInOctets"
  },
  ...
]

GET node resource indexes (fetch indexes for a node resource)

GET /omk/opCharts/nodes/[node]/resources/[resource]/indicies.json

Retrieve all indexes available from a resource.  This is only required if the dataset you wish to load is indexed.

Successful Response

Returns a hash, with the name of the resource.  A datum array of index objects, these hold the data you are likely looking for.  The value attribute holds the identifier for this object.  Name is the attribute which can be displayed to users.

The list of datasets available for the specified resource along with the list of indexes create an N x M matrix of possible datasets.

Code Block
{
  name: "interface",
  datum: [
    {
      resource_id: "interface",
      value: "2",
      url: "/omk/opCharts/nodes/asgard/resources/interface/datasets",
      tokens: [
        "WAN/DSL",
        "FastEthernet0/1",
        "2"
      ],
      name: "WAN/DSL -- FastEthernet0/1 -- 2"
    },
    {
      resource_id: "interface",
      value: "1",
      url: "/omk/opCharts/nodes/asgard/resources/interface/datasets",
      tokens: [
        "Opmantek LAN",
        "FastEthernet0/0",
        "1"
      ],
      name: "Opmantek LAN -- FastEthernet0/0 -- 1"
    }
  ],
  header: "interface"
}

Data

GET node resource dataset (fetch data for a single dataset from a node resource)

GET /omk/opCharts/data_model_view/new?requestData=[JSON object]

Request data from a dataset.  The request structure is not simple. The required inputs are resource, dataset, possibly index.  

Request  

Code Block
requestData  = JSON( {
  "model_view": "graph",
  "dataset": {
    "data_source": "local_nmis",
    "parameters": {
      "resource_index": "2",
      "graph_type": "interface",
      "lineType": "line",
      "index_graph_type": "ifInOctets",
      "axis": "0",
      "node": "thor",
      "translation": "",
      "field": ""
    },
    "options": {
      "datasetTitle": ""
    }
  },
  "parameters": {
    "time_period": "specific_time",
    "start_date": "23-May-2014 00:14:40",
    "end_date": "23-May-2014 08:14:40"

  },
  "options": {
    "titleText": "Interface Average Bits"
  }
}

Successful Response

A successful response will be a hash with 2 objects.  The requestObject that was submitted along with a responseObject : 

...

themeConfluence

...

opCore Integration API (Node config/info/status)

opCore API provides access to all nodes -- their configuration, info and status.  Data for all nodes can be requested at one time, a subset of nodes or a specific node.

For opCharts Version 3.x - opCore API V1

For opCharts Version 4.x - opCore API V2

opCharts TopN API (opCharts version 2.2.2+)

TopN data is created after every NMIS collect cycle and represents the top users of each resource type.  By default there are 6 topn documents created: cpuLoad, 

opCharts Node Resource API (Performance Data)

Access resources available for each node, like interface data, health data, CBQoS data (and more).  The data available will vary per node, this API allows you to determine what each node offers and also how to access the performance data associated with that resource.