Получить данные для нескольких сущностей

Возвращают массив данных для сущности указанного типа.

Если у пользователя нет доступа к определённой сущности то её данной не будут включены в ответ.

Запрос

HTTP Запрос

POST /node/api/stat/search

Параметры пути

Параметры не требуются.

Параметры тела запроса

Чем запрос включает в себя записи для которых нужно вернуть данные. Этот запрос позволяет вам искать данные и в связи и в объектах одновременно.

Каждая запись имеет следующие параметры:

Параметр Тип Описание

type

String

Тип сущности. Возможные сущности – objects и links.

id

String

ID сущности для которой нужно вернуть данные.

Тело запроса

[
    {
        "type": "objects",
        "id": "5e21b85b308c3c66d64e07d2"
    },
    {
        "type": "objects",
        "id": "5ae321a8fa62b9189509f51c"
    },
    {
        "type": "links",
        "id": "5ae321a8fa62b9189509a32e"
    }
]

Ответ

Возвращает массив данных для объектов, указанных в теле запроса.

Сущность не будет включена в одном из следующих случаев:

  • в указанной сущности не данных.

  • указанной сущности не существует.

  • тип сущности не совпадает с параметром type.

Параметр Тип Описание

entityId

String

ID связи.

entityType

Integer

Тип сущности, данные которых нужно вернуть. 1 – объект, 2 – связь.

taskType

String

Тип сенсора. Подробную информацию можно найти в статье Настройка мониторинга и проверок - сенсоры.

period

Integer

Период между выполнением процессом мониторинга (в миллисекундах).

timestamp

Integer

Время когда агент начал выполнять выбранный мониторинговый процесс.

agentId

String

ID агента.

agentVersion

String

Версия агента.

agentBuild

String

Номер сборки агента.

Пример

Запрос

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
url=https://$saymon_hostname/node/api/stat/search

curl -X POST $url -u $login:$password \
    -H "Content-Type: application/json" \
    --data '[ \
        {"type": "objects", "id": "5e21b85b308c3c66d64e07d2"}, \
        {"type": "objects", "id": "5ae321a8fa62b9189509f51c"} \
    ]'
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/stat/search";
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Content-Type", "application/json");
headers.append("Authorization", auth);

let data = JSON.stringify([
    {
        "type": "objects",
        "id": "5e21b85b308c3c66d64e07d2"
    },
    {
        "type": "objects",
        "id": "5ae321a8fa62b9189509f51c"
    }
]);

let requestOptions = {
    method: "POST",
    headers: headers,
    body: data
};

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 path = "/node/api/stat/search";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");

let options = {
    "method": "POST",
    "hostname": saymonHostname,
    "headers": {
        "Authorization": auth,
        "Content-Type": "application/json"
    },
    "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);
    });
});

let data = JSON.stringify([
    {
        "type": "objects",
        "id": "5e21b85b308c3c66d64e07d2"
    },
    {
        "type": "objects",
        "id": "5ae321a8fa62b9189509f51c"
    }
]);

req.write(data);
req.end();
import requests

login = <...>
password = <...>
saymon_hostname = <...>
url = "https://" + saymon_hostname + "/node/api/stat/search"

body = [
    {"type": "objects", "id": "5e21b85b308c3c66d64e07d2"},
    {"type": "objects", "id": "5ae321a8fa62b9189509f51c"}
]

response = requests.request("POST", url, json=body, auth=(login, password))
print(response.text)

Ответ

[
    {
        "entityId": "5e21b85b308c3c66d64e07d2",
        "entityType": 1,
        "taskType": "cpu",
        "period": 1000,
        "timestamp": 1584361056441,
        "agentId": "5e21b85b308c3c66d64e07c8",
        "agentVersion": "4.2.69-SNAPSHOT",
        "agentBuild": "866cc",
        "payload": {
            "averageCpuLoad": {
                "oneMinuteAverageLoad": 2.36,
                "fiveMinutesAverageLoad": 1.5,
                "fifteenMinutesAverageLoad": 0.97
            },
            "cpuInformation": {
                "vendor": "Intel",
                "model": "Core(TM) i5-7400 CPU @ 3.00GHz",
                "mhz": 3500,
                "cacheSize": 6144,
                "totalCores": 4,
                "totalSockets": 4,
                "coresPerSocket": 16
            },
            "percentageUsage": {
                "user": 6.297229219143577,
                "system": 2.0151133501259446,
                "nice": 0,
                "idle": 91.43576826196474,
                "wait": 0,
                "irq": 0,
                "softIrq": 0.2518891687657431,
                "stolen": 0,
                "combined": 8.312342569269521
            }
        }
    },
    {
        "entityId": "5ae321a8fa62b9189509f51c",
        "entityType": 1,
        "taskType": "ram",
        "period": 60000,
        "timestamp": 1587728030413,
        "agentId": "5ae1f5df226d1548084c4b7c",
        "agentVersion": "4.2.68",
        "agentBuild": "84a9a",
        "payload": {
            "MEM": {
              "memoryType": "MEM",
              "bytesTotal": 7977361408,
              "bytesUsed": 6253006848,
              "bytesAvailable": 1724354560,
              "percentUsed": 78.38439965537036
            },
            "SWAP": {
              "memoryType": "SWAP",
              "bytesTotal": 23009746944,
              "bytesUsed": 13869596672,
              "bytesAvailable": 9140150272,
              "percentUsed": 60.277050007351875
            },
            "TOTAL": {
                "memoryType": "TOTAL",
                "bytesTotal": 30987108352,
                "bytesUsed": 20122603520,
                "bytesAvailable": 10864504832,
                "percentUsed": 64.9386296114372
            }
        }
    }
]

Смотрите также