Get Object’s Stat Metadata

Request

HTTP Request

GET /node/api/objects/:id/stat/meta

Permissions

objectPermissions

Path parameters

Parameter Type Description

id

String
required

The ID or discovery ID of the object whose agent’s stat metadata must be retrieved.

Request body

The request body is empty.

Response

Returns metadata that contains headers with the information about the object and the agent, and payload with metadata for each of the object’s stat.

The returned metadata depends on who updated the stat metadata last — the agent or the user with the Set Object’s Stat Metadata request. If you set object’s metadata with the Set Object’s Stat Metadata request, the metadata would lack agent-related fields in the header and the payload would contain only those stats whose metadata was set in that request. If the agents updates the stats later, the metadata would show all fields related to the agent and all stats again.

Headers

The metadata headers contain the following fields:

Parameter Type Description

entityId

String

The ID of an object whose metadata was retrieved.

entityType

Integer

The type of an entity whose metadata was retrieved. For an object, this value is 1.

taskType

String

The probe type. See the Monitoring and checks settings - probes section on the SAYMON wiki for more information. Agent only

period

Integer

The period between executing the monitoring processes (in milliseconds). Agent only

timestamp

Integer

Timestamp of when the agent started performing the selected monitoring process. Agent only

agentId

String

The ID of the agent. Agent only

agentVersion

String

The version of the agent. Agent only

agentBuild

String

The build number of the agent. Agent only

Payload

A metadata for a stat field may contain the following information:

  • type — stat’s data type. Possible values:

    • STRING

    • BOOLEAN

    • BYTE_QUANTITY

    • TIMESTAMP

    • PERCENTILE

    • ID

    • BINARY

    • LIST

  • changeRate — frequency of data change. Possible values:

    • ALWAYS — the data changes after every measurement.

    • SOMETIMES — the data changes from time to time, consecutive measurements will often show equal results.

    • NEVER — the data either never changes or change probability is negligible.

Example

Request

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
object_id=<...>
url=https://$saymon_hostname/node/api/objects/$object_id/stat/meta

curl -X GET $url -u $login:$password
let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let path = "/node/api/objects/" + objectId + "/stat/meta";
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Authorization", auth);

let requestOptions = {
    method: "GET",
    headers: headers
};

fetch(saymonHostname + path, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log("error", error));
const http = require("http");

let login = <...>
let password = <...>
let saymonHostname = <...>
let objectId = <...>
let path = "/node/api/objects/" + objectId + "/stat/meta";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");

let options = {
    "method": "GET",
    "hostname": saymonHostname,
    "headers": {
        "Authorization": auth
    },
    "path": path
};

let req = http.request(options, function (res) {
    let chunks = [];

    res.on("data", function (chunk) {
        chunks.push(chunk);
    });

    res.on("end", function (chunk) {
        let body = Buffer.concat(chunks);
        console.log(body.toString());
    });

    res.on("error", function (error) {
        console.error(error);
    });
});

req.end();
import requests

login = <...>
password = <...>
saymon_hostname = <...>
object_id = <...>
url = "https://" + saymon_hostname + "/node/api/objects/" + \
    object_id + "/stat/meta"

response = requests.request("GET", url, auth=(login, password))
print(response.text)

Response

{
    "entityId": "62d7e5e456d203149a080038",
    "entityType": 1,
    "taskType": "ping",
    "period": 10000,
    "timestamp": 1662975657519,
    "agentId": "817",
    "agentVersion": "4.4.72-SNAPSHOT",
    "agentBuild": "bb7f3",
    "payload": {
        "roundTripMaximum": {
            "changeRate": "ALWAYS"
        },
        "packetsReceived": {
            "changeRate": "SOMETIMES"
        },
        "packetLossPercentile": {
            "type": "PERCENTILE",
            "changeRate": "SOMETIMES"
        },
...
    }
}