Получить N последних метрик связи

Возвращает определённое количество недавних метрик связи.

Запрос

HTTP Запрос

GET /node/api/links/:id/last

Права

linkPermissions

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

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

id

String
обязательный

ID связи.

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

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

metrics

String
обязательный

Список метрик, перечисленных через запятую..

length

Integer

Количество метрик. Если не указано, то запрос вернёт самую недавнюю метрику.

Тело запроса

Тело запроса пустое.

Ответ

Возвращает массив запрошенных метрик. Каждая метрика содержит следующие поля:

Поле Тип Описание

metric

String

Имя метрики.

tags.entity

String

ID сущность с префиксом типа сущности. Формат поля objectxxx для объектов и linkxxx для связей.

dps

Array<DataPoint>

Массив точек данных. Каждая точка состоит из массива из двух значений. Первое значение это время получение метрики, второе – значение метрики в этот момент времени.

Если указать несуществующую метрику в параметре metrics или указать временной промежуток за пределами допустимых границ (от 1 часа до 1 года), то этот запрос вернёт пустую историю для этой метрики:

 {
     "metric": "ICMP",
     "tags": {
         "entity": ""
     },
     "aggregateTags": [],
     "dps": []
 }
Чтобы получить все доступные метрики для связи, используйте запрос Получить названия метрик связи.

Пример

Запрос

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
link_id=<...>
url=https://$saymon_hostname/node/api/links/$link_id/last

curl -X GET $url -u $login:$password -G \
    --data-urlencode "metrics=percentageUsage.combined" \
    --data-urlencode "length=5"
let login = <...>
let password = <...>
let saymonHostname = <...>
let linkId = <...>

let queryParams =
    "metrics=percentageUsage.combined" + "&" +
    "length=5"

let path = "/node/api/links/" + linkId + "/last" + "?" + queryParams;

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

let login = <...>
let password = <...>
let saymonHostname = <...>
let linkId = <...>

let queryParams = querystring.stringify({
    metrics : "percentageUsage.combined",
    length : "5"
});

let path = "/node/api/links/" + linkId + "/last" + "?" + queryParams;
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 = <...>
link_id = <...>
url = "https://" + saymon_hostname + "/node/api/links/" + \
    link_id + "/last"

params = {
"metrics": "percentageUsage.combined",
    "length": "5"
}

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

Ответ

[
    {
        "metric": "percentageUsage.combined",
        "tags": {
            "entity": "obj5e7dc67bc50bdc08abbf16ac"
        },
        "aggregateTags": [],
        "dps": [
                [
                    1680787492525,
                    4
                ],
                [
                    1680787512535,
                    4
                ],
                [
                    1680787522525,
                    4
                ],
                [
                    1680787542533,
                    4
                ],
                [
                    1680787552553,
                    4
                ]
            ]
    }
]