Получить историю данных мониторинга

Получить историю данных мониторинга

Получить историю данных мониторинга ​

Возвращает историю данных мониторинга для указанных сущностей (объектов и связей). Записи всегда сортируются по времени в порядке убывания.

Запрос ​

HTTP Запрос ​

text
POST /node/api/stat-history

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

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

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

ПараметрТипОписание
idsArray<String>
Массив ID сущности для которых должны быть возвращены данные. Этот запрос возвращает историю данных только для тех сущности, к которым у пользователя есть доступ.
fromInteger
От какой даты искать записи (включительно). Если не указан, равен времени последней записи.
toInteger
До какой даты искать записи (не включительно). Если не указан, равен текущему времени.
skipInteger
Сколько записей с начала списка нужно пропустить. Этот параметр используется после параметров from и to и используется для пагинации.
limitInteger
Максимальное количество исторических записей в ответе. Стандартное значение 10.
afterInteger
Верхние времена граница для и записей. Этот параметр используется после параметров from и to и используется для динамической подгрузки страницы. Параметр не должен быть использован параметром skip.
excludeObject
Набор параметров которые используется для фильтрации записей. Каждый параметр должен быть определен в следующем формате: "payload.param_name": "value". Записи которые подходят под заданный фильтр не будут включены в ответ.
includeObject
Набор параметров которые используется для фильтрации записей. Каждый параметр должен быть определен в следующем формате: "payload.param_name": "value". Записи которые подходят под заданный фильтр будут включены в ответ.

Тело запроса ​

json
{
    "ids": [
        "5db30e30aec6940219d5f5fa",
        "5db2c770aec6940219d5f179"
    ],
    "limit": 20,
    "after": 1587743543000,
    "include": {
        "payload.operation": 0
    },
    "exclude": {
        "payload.inherited": true
    }
}

Ответ ​

Возвращает массив данных для заданной сущности. Подробная информация о модели доступна в статье Данные мониторинга.

Пример ​

Запрос ​

  • Bash
  • JavaScript
  • NodeJS
  • Python
bash
login=<...>
password=<...>
saymon_hostname=<...>
url=https://$saymon_hostname/node/api/stat-history

curl -X POST $url -u $login:$password \
    -H "Content-Type: application/json" \
    -d @- <<EOF
{
    "ids": [
        "5db30e30aec6940219d5f5fa",
        "5db2c770aec6940219d5f179"
    ],
    "limit": 20,
    "after": 1587743543000,
    "include": {
        "payload.operation": 0
    },
    "exclude": {
        "payload.inherited": true
    }
}
EOF
javascript
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/stat-history";
let auth = "Basic " + btoa(login + ":" + password);

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

let data = JSON.stringify({
    "ids": [
        "5db30e30aec6940219d5f5fa",
        "5db2c770aec6940219d5f179"
    ],
    "limit": 20,
    "after": 1587743543000,
    "include": {
        "payload.operation": 0
    },
    "exclude": {
        "payload.inherited": true
    }
});

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));
javascript
const http = require("http");

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

let options = {
    "method": "POST",
    "hostname": saymonHostname,
    "path": path,
    "headers": {
        "Authorization": auth,
        "Content-Type": "application/json"
    }
};

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({
    "ids": [
        "5db30e30aec6940219d5f5fa",
        "5db2c770aec6940219d5f179"
    ],
    "limit": 20,
    "after": 1587743543000,
    "include": {
        "payload.operation": 0
    },
    "exclude": {
        "payload.inherited": true
    }
});

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

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

body = {
    "ids": [
        "5db30e30aec6940219d5f5fa",
        "5db2c770aec6940219d5f179"
    ],
    "limit": 20,
    "after": 1587743543000,
    "include": {
        "payload.operation": 0
    },
    "exclude": {
        "payload.inherited": True
    }
}

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

Ответ ​

json
[
    {
        "period": -1,
        "payload": {
            "operation": 0
        },
        "entityType": 1,
        "entityId": "5db2c770aec6940219d5f179",
        "timestamp": 1577274603993
    },
    {
        "period": -1,
        "payload": {
            "operation": 0
        },
        "entityType": 1,
        "entityId": "5db2c770aec6940219d5f179",
        "timestamp": 1574855228252
    },
    {
        "period": -1,
        "payload": {
            "operation": 0
        },
        "entityType": 1,
        "entityId": "5db2c770aec6940219d5f179",
        "timestamp": 1573825706658
    },
    ...
]

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