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

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

Запрос

HTTP Запрос

POST /node/api/stat-history

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

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

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

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

ids

Array<String>

Массив ID сущности для которых должны быть возвращены данные. Этот запрос возвращает историю данных только для тех сущности, к которым у пользователя есть доступ.

from

Integer

От какой даты искать записи (включительно). Если не указан, равен времени последней записи.

to

Integer

До какой даты искать записи (не включительно). Если не указан, равен текущему времени.

skip

Integer

Сколько записей с начала списка нужно пропустить. Этот параметр используется после параметров from и to и используется для пагинации.

limit

Integer

Максимальное количество исторических записей в ответе. Стандартное значение 10.

after

Integer

Верхние времена граница для и записей. Этот параметр используется после параметров from и to и используется для динамической подгрузки страницы. Параметр не должен быть использован параметром skip.

exclude

Object

Набор параметров которые используется для фильтрации записей. Каждый параметр должен быть определен в следующем формате: "payload.param_name": "value". Записи которые подходят под заданный фильтр не будут включены в ответ.

include

Object

Набор параметров которые используется для фильтрации записей. Каждый параметр должен быть определен в следующем формате: "payload.param_name": "value". Записи которые подходят под заданный фильтр будут включены в ответ.

Тело запроса

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

Ответ

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

Пример

Запрос

  • Bash

  • JavaScript

  • NodeJS

  • Python

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
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));
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();
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)

Ответ

[
    {
        "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
    },
    ...
]

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