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

Возвращает метаданные для связи.

Запрос

HTTP Запрос

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

Права

linkPermissions

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

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

id

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

ID связи.

Тело запроса

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

Ответ

Возвращает метаданные, которые содержат Заголовки с информацией об объекте и агенте и Данные с метаданными для каждого источника данных связи.

Возвращаемые метаданные зависят от того, кто последним обновлял метаданные — агент или пользователь запросом Установить метаданные для связи. Если вы установите метаданные с помощью этого запроса, в метаданных не будет полей, связанных с агентом, в заголовке, и в запросе будут те источники данных, метаданные которых были установлены в этом запросе. Если агенты обновят эти данные позже, то в метаданные добавятся все поля, связанные с агентом.

Headers

Метаданные содержат следующие поля:

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

entityId

String

ID связи.

entityType

Integer

Тип сущности, которой принадлежат эти метаданные. для связи это значение 2.

taskType

String

Тип сенсора. Больше информации можно найти в разделе пользовательской документации Настройка мониторинга и проверок - сенсоры. Только для агента

period

Integer

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

timestamp

Integer

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

agentId

String

ID агента. Только для агента

agentVersion

String

Версия агента. Только для агента

agentBuild

String

Номер сборки агента. Только для агента

Данные

Метаданные для источника данных могут содержать следующую информацию:

  • type — Тип данных источника. Возможные значения:

    • STRING

    • BOOLEAN

    • BYTE_QUANTITY

    • TIMESTAMP

    • PERCENTILE

    • ID

    • BINARY

    • LIST

  • changeRate — частота изменения данных. Возможные значения:

    • ALWAYS — дата изменяется после каждого измерения.

    • SOMETIMES — данные изменяются периодично и будут игнорировать одинаковые значения.

    • NEVER — данные никогда не обновляются или возможность изменения очень мала.

Пример

Запрос

  • Bash

  • JavaScript

  • NodeJS

  • Python

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

curl -X GET $url -u $login:$password
let login = <...>
let password = <...>
let saymonHostname = <...>
let linkId = <...>
let path = "/node/api/links/" + linkId + "/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 linkId = <...>
let path = "/node/api/links/" + linkId + "/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 = <...>
link_id = <...>
url = "https://" + saymon_hostname + "/node/api/links/" + \
    link_id + "/stat/meta";

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

Ответ

{
    "entityId": "62d7e5e456d203149a080038",
    "entityType": 2,
    "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"
        },
...
    }
}