Versions Compared

Key

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

...

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

API Routes

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

...

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

...

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","data.index": "196609"} (which is "configuration.group"="NMIS8" AND "data.index"="196609" )

for a string, if it starts with regex: or iregex: then a case-sensitive or case-insensitive regular expression match is used.

eg: filter={"node_name":"iregex:Switch"} to find all the nodes with switch or SWITCH in their name.

...

1 | -1 : sort the response with id ascending or descending.

...

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






GETread list /server/omk/opCharts/v2/nodes/node_uuid/inventoryn

Returns a list of all the inventory subconcepts for the given node_uuid.

Paginated.

GETread list /server/omk/opCharts/v2/nodes/node_uuid/inventory/subconcepty

Returns the list of inventory data for the given node_uuid and subconcept.

Paginated.

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, from 1 .. n
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","data.index": "196609"} (which is "configuration.group"="NMIS8" AND "data.index"="196609" )

for a string, if it starts with regex: or iregex: then a case-sensitive or case-insensitive regular expression match is used.

eg: filter={"node_name":"iregex:Switch"} to find all the nodes with switch or SWITCH in their name.

sort

1 | -1 : sort the response with id ascending or descending.

redact

0 | 1 : redact the information in 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

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

200 OKPossibly empty JSON array of stringsobjectsEach array element is a JSON string object with the subconcept nameproperties selected by the Request Modifiers (see above).

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.

...

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

First 50 elements sorted by node_name

("id" and "node_uuid")

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

Next 50 elements sorted by node_name

("id" and "node_uuid")

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

First 50 elements sorted by node_name

("id" , "node_uuid", "node_name")

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

Next 50 elements sorted by node_name

("id" , "node_uuid", "data")

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

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

("id" , "node_uuid", "node_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 node_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

...

HTTP Status

Body

Description

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

Properties

Property

Description

Example

id

A globally unique ID

65a5b8b843c6b8c138bc9cab

concept

The concept for this

inventory"device"

cluster_id

The id of the NMIS poller server for the associated node

"660f29ae-f150-4119-bf04-cd9296852449"

configuration

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

description

"GenuineIntel: Intel(R) Xeon(R) CPU @ 2.20GHz"

enabled

0 or 1

expire_at

historic

0 or 1

lastupdate

The unix timestamp that this inventory record was last updated. 

705359544.17113

node_name

The uuid of the associated node

"vrouter_host"

node_uuid

The uuid of the associated node

"a8ac3d79-aa7c-496f-ae19-f6df04c58a21"

path

array 

response

server_name

The name of the NMIS poller server for the associated node

lab_poller1

subconcepts

An array of the subconcepts for this inventory record

[ "hrsmpcpu" ]

storage

Example

Panel

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

inventory

"device"

cluster_id

The id of the NMIS poller server for the associated node

"660f29ae-f150-4119-bf04-cd9296852449"

configuration



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



description


"GenuineIntel: Intel(R) Xeon(R) CPU @ 2.20GHz"

enabled


0 or 1

expire_at



historic


0 or 1

lastupdate

The unix timestamp that this inventory record was last updated. 

705359544.17113

node_name

The uuid of the associated node

"vrouter_host"

node_uuid

The uuid of the associated node

"a8ac3d79-aa7c-496f-ae19-f6df04c58a21"

path

array 

response

server_name

The name of the NMIS poller server for the associated node

lab_poller1

subconcepts

An array of the subconcepts for this inventory record

[ "hrsmpcpu" ]

storage



Example

Panel

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 id
GET HTTP://server/omk/opCharts/v2/inventory/63195a0341073d2dd339ce82.json?properties=["data"]

Raw inventory element with given id

("id", "node_uuid" and all the properties in "data")


GET of opCharts/v2/nodes/node_uuid/inventory for List

GET /omk/opCharts/v2/nodes/node_uuid/inventory

You will get a list of all the Inventory subconcepts for the node with node_uuid.

Successful Response

HTTP Status

Body

Description

200 OKPossibly empty JSON array of objectsEach array element is a JSON object with the properties selected by the Request Modifiers (see above).

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.


Code Block
GET HTTP://server/omk/opCharts/v2/nodes/08098577-5d8c-11e9-9614-8a6323fe4840/inventory.json

Output:- List of all the distinct subconcepts present in inventory
[
"Cisco_CBQoS",
"Memory-cpm",
"addressTable",
"bgpPeer",
"cempMemPool",
"ciscoMemoryPool",
"ciscoNormalizedCPUMem",
"cpu_cpm",
"entityMib",
"env-temp",
"interface",
"pkts",
"pkts_hc",
"ospfNbr",
"powerSupply"
]

GET of opCharts/v2/nodes/node_uuid/inventory/subconcept for List

GET /omk/opCharts/v2/nodes/node_uuid/inventory/subconcept

You will get a list of all the Inventory records with the node with node_uuid and the subconcept subconcept.

Successful Response

HTTP Status

Body

Description

200 OKPossibly empty JSON array of objectsEach array element is a JSON object with the properties selected by the Request Modifiers (see above).

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.


Code Block
GET HTTP://server/omk/opCharts/v2/nodes/08098577-5d8c-11e9-9614-8a6323fe4840/inventory/interface.json

Output:- List of first 25 node inventory objects ("id" and "node_uuid") sorted by id inside given subconcept.  
[
	{
		"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"
	},
	{
		"id": "63195a0341073d2dd339ced0",
		"node_uuid": "08098577-5d8c-11e9-9614-8a6323fe4840"
	}
]

Similar requests and descriptions with node and subconcept

RequestResponse
GET HTTP://server/omk/opCharts/v2/nodes/08098577-5d8c-11e9-9614-8a6323fe4840/inventory/interface.json?limit=50

Top 50 elements of given node

("id" and "node_uuid")

GET HTTP://server/omk/opCharts/v2/nodes/08098577-5d8c-11e9-9614-8a6323fe4840/inventory/interface.json?limit=50&page=2

Top NEXT 50 elements of given node 

("id" and "node_uuid")

GET HTTP://server/omk/opCharts/v2/nodes/08098577-5d8c-11e9-9614-8a6323fe4840/inventory/interface.json?properties=["node_name"]

Top 50 elements of given node

("id" , "node_uuid", "node_name")

RequestResponse

GET HTTP://server/omk/opCharts/v2/nodes/08098577-5d8c-11e9-9614-8a6323fe4840/inventory/
63195a0341073d2dd339ce82
interface.json
Raw inventory element with given id
?limit=50&page=2&properties=["data"]

Top NEXT 50 elements of given node

("id" , "node_uuid", "data")

GET HTTP://server/omk/opCharts/v2/nodes/08098577-5d8c-11e9-9614-8a6323fe4840/inventory/
63195a0341073d2dd339ce82
interface.json?properties=["data"]
Raw inventory element with given id
&filter={"data.ifIndex":2}

Top 50 elements of given node filtered by ifIndex=>2

("id" , "

inventory.data" and "node_uuid

nodes_uuid", "data.ifIndex")