You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Inventory API 

This opCharts API provides access to opCharts inventory data  in a JSON format.

The Inventory API is available in opCharts from version 4.7.0

Authentication is required to access all methods below. See opCharts REST API Reference.

Public API for opCharts Inventory "http[s]://server/omk/opCharts/v2/inventory"

We can view opCharts Inventory below using these endpoints - http[s]://server/omk/opCharts/v2/inventory

API Routes

Each resource has a consistent set of operations

Request Method

Operation

URL Example

id required

Notes

GETread list /server/omk/opCharts/v2/inventorynReturns a list of all the inventory subconcepts.
GETread list/server/omk/opCharts/v2/inventory/subconcepty

Returns a list of all the inventory ids for the given subconcept.

Paginated.

GETread one /server/omk/opCharts/v2/inventory/idyReturns the details of the requested inventory record.

Request Modifiers (query parameters)

The properties request modifier tells opCharts which properties you would like listed, query limits the requested resources to only those that match all criteria given. This collection can paginated, it is also limited to 25 results by default (this could be subject to change in future opCharts versions) use the limit query parameter to request more nodes

Not all requests will use all request modifiers.

Query Parameter

Possible Values

properties

Array of property names. If provided only the properties specified will be returned (instead of the whole document).

eg: properties=["configuration.customer", "configuration.group"]

By default the nodes UUID is returned by default if no properties are given

page(int) Which page of the requested document to returned
limit(int) How many results are returned, defaults to 25
filter

Array of key=value pairs, but coded in an array. Applied to the list of results in the order they are given. If an application key is provided that will be applied first.

eg: filter={"configuration.group":"NMIS8","catchall.data.nodestatus": "reachable"} (which is "configuration.group"="NMIS8" AND "catchall.data.nodestatus"="reachable" )

sort

0 | 1 : sort the response with node.names ascending or descending 

redact

0 | 1 : redact the information in nodes.configuration .
** works only if you have MongoDB 4.2 and above and set db_use_v42_features => 1 in opCommon.json

Examples of how to use the request modifiers can be found in the response blocks below.  In general, the queries will look something like this: 



GET of opcharts/v2/inventory for List

GET /omk/opCharts/v2/inventory

You will get a list of all the Inventory subconcepts in your database.

Successful Response

HTTP Status

Body

Description

200Possibly empty JSON array of stringsEach array element is a JSON string object with the subconcept name

Unsuccessful Response

HTTP Status

Body

Description

401 UnauthorizedJSON object with an error propertyYou are not authenticated.
403 ForbiddenJSON object with an error propertyYou are not authorized.

Example

GET HTTP://server/omk/opCharts/v2/inventory.json

Output:- List of all the distinct subconcepts present in inventory
[ 
"health",
"Host_Health",
"laload",
"mib2ip",
"systemStats",
"tcp",
"WindowsProcessor",
"hrwin",
"nodehealth",
"NetFlowStats",
"RouteNumber",
"Buffers"
]


GET of opcharts/v2/inventory/subconcept for List

GET /omk/opCharts/v2/inventory/subconcept

You will get a list of the first 25 inventory objects for the given subconcept in your database.

You can use Request Modifiers (see above) for filtering, pagination, and selecting properties.

Successful Response

HTTP Status

Body

Description

200Possibly empty JSON array of stringsEach array element is a JSON string object with the subconcept name

Unsuccessful Response

HTTP Status

Body

Description

400 Bad RequestJSON object with an error property
401 UnauthorizedJSON object with an error propertyYou are not authenticated.
403 ForbiddenJSON object with an error propertyYou are not authorized.
404 Not FoundJSON object with an error propertyYou are authenticated but not authorised to view this object.
404 Not FoundJSON object with an error property

The error property contains an explanation of what went wrong
with your request, e.g. if you request a non-existent object.


Example

GET HTTP://server/omk/opCharts/v2/inventory/interface.json

Output :- List of first 25 interface inventory objects ("_id" and "nodes.uuid") sorted by nodes.name in ascending order. 
[
	{
		"id": "63195a0341073d2dd339ce47",
		"node_uuid": "08098577-5d8c-11e9-9614-8a6323fe4840"
	},
	{
		"id": "63195a0341073d2dd339ce5d",
		"node_uuid": "08098577-5d8c-11e9-9614-8a6323fe4840"
	},
	{
		"id": "63195a0341073d2dd339ce74",
		"node_uuid": "08098577-5d8c-11e9-9614-8a6323fe4840"
	},
	{
		"id": "63195a0341073d2dd339ce82",
		"node_uuid": "08098577-5d8c-11e9-9614-8a6323fe4840"
	},
	{
		"id": "63195a0341073d2dd339ce90",
		"node_uuid": "08098577-5d8c-11e9-9614-8a6323fe4840"
	},
	{
		"id": "63195a0341073d2dd339ceba",
		"node_uuid": "08098577-5d8c-11e9-9614-8a6323fe4840"
	},   

Similar requests and descriptions with subconcepts

RequestResponse
GET http://server/omk/opCharts/v2/inventory/interface.json?limit=50

First 50 elements sorted by nodes.name

("id" and "nodes.uuid")

GET http://server/omk/opCharts/v2/inventory/interface.json?limit=50&page=2

Next 50 elements sorted by nodes.name

("id" and "nodes.uuid")

GET http://server/omk/opCharts/v2/inventory/interface.json?limit=50&properties=["nodes.name"]

First 50 elements sorted by nodes.name

("id" , "nodes.uuid", "nodes.name")

GET http://server/omk/opCharts/v2/inventory/interface.json?limit=50&page=2&properties=["inventory.data"]

Next 50 elements sorted by nodes.name

("id" , "nodes.uuid", "inventory.data")

GET http://server/omk/opCharts/v2/inventory/interface.json?limit=50&properties=["nodes.name"]&filter={"inventory.data.ifIndex":3}

First 50 elements sorted by nodes.name, filtered by inventory.data.ifIndex => 3

("id" , "nodes.uuid", "nodes.name")

GET http://server/en/omk/opCharts/v2/inventory/interface.json?properties=["data.ifIndex","data.ifDescr","node_name","description"]&filter={"data.ifIndex":1}

First 25 interfaces sorted by nodes.name displaying 6 properties

[
  {
    "data": {
      "ifDescr": "lo",
      "ifIndex": 1
    },
    "description": "lo",
    "id": "64250e8ef82d4b6e59e888d9",
    "node_name": "lab-primary1",
    "node_uuid": "f2163325-a2b6-4d9a-8705-0dc0397ee7e3"
  },
  {
    "data": {
      "ifDescr": "LOOPBACK",
      "ifIndex": 1
    },
    "description": "LOOPBACK",
    "id": "64cc4b8a5e13cceca7d030f7",
    "node_name": "SASINTEL_MARINA_PARK_P5_UPS01",
    "node_uuid": "9ac2e0ec-db2c-455a-9917-0471acaae231"
  },

...
]



GET of opcharts/v2/inventory/id 

GET /omk/opCharts/v2/inventory/id

You will get a list of the first 25 inventory objects for the given subconcept in your database.

You can use Request Modifiers (see above) for filtering, pagination, and selecting properties.

Successful Response

HTTP Status

Body

Description

200Possibly empty JSON array of stringsEach array element is a JSON string object with the subconcept name

Unsuccessful Response

HTTP Status

Body

Description

401 UnauthorizedJSON object with an error propertyYou are not authenticated.
403 ForbiddenJSON object with an error propertyYou are not authorized.

Example

http://server/omk/opCharts/v2/inventory/65a5b8b843c6b8c138bc9cab.json
{
  "cluster_id": "660f29ae-f150-4119-bf04-cd9296852449",
  "concept": "device",
  "configuration": {
    "group": "Lab_Servers"
  },
  "data": {
    "hrCpuLoad": 100,
    "hrDeviceDescr": "GenuineIntel: Intel(R) Xeon(R) CPU @ 2.20GHz",
    "hrDeviceType": "1.3.6.1.2.1.25.3.1.3",
    "index": "196609"
  },
  "data_info": [
    {
      "display_keys": [],
      "enabled": 0,
      "subconcept": "hrsmpcpu"
    }
  ],
  "dataset_info": [
    {
      "datasets": [
        "hrCpuLoad"
      ],
      "subconcept": "hrsmpcpu"
    }
  ],
  "description": "GenuineIntel: Intel(R) Xeon(R) CPU @ 2.20GHz",
  "enabled": 1,
  "expire_at": "2024-03-27T02:25:01.445Z",
  "historic": 0,
  "id": "65a5b8b843c6b8c138bc9cab",
  "lastupdate": 1705359544.17113,
  "node_name": "vrouter_host",
  "node_uuid": "a8ac3d79-aa7c-496f-ae19-f6df04c58a21",
  "path": [
    "660f29ae-f150-4119-bf04-cd9296852449",
    "a8ac3d79-aa7c-496f-ae19-f6df04c58a21",
    "device",
    196609
  ],
  "path_keys": [
    "index"
  ],
  "server_name": "localhost",
  "storage": {
    "hrsmpcpu": {
      "rrd": "/nodes/vrouter_host/health/hrsmpcpu196609.rrd"
    }
  },
  "subconcepts": [
    "hrsmpcpu"
  ]
}




Similar requests and descriptions with inventory id

RequestResponse
GET HTTP://server/omk/opCharts/v2/inventory/63195a0341073d2dd339ce82.jsonRaw inventory element with given object id
GET HTTP://server/omk/opCharts/v2/inventory/63195a0341073d2dd339ce82.json?properties=["inventory.data"]

Raw inventory element with given object id

("_id", "inventory.data" and "nodes.uuid")

  • No labels