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

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

Запрос

HTTP Запрос

GET /node/api/metric-token/:id/history

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

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

id

String

Токен метрики

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

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

duration

Integer

Период истории данных начиная от текущего момента (в миллисекундах).

Тело запроса

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

Ответ

Возвращает набор точек данных, содержащих исторические данные объекта.

Каждая точка данных содержит следуюзие поля:

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

metric

String

Имя метрики.

tags.entity

String

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

dps

Array<DataPoint>

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

Пример

Запрос

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
token_id=<...>
duration=<...>
url=https://$saymon_hostname/node/api/metric-token/$token_id/history?duration=$duration

curl -X GET $url -u $login:$password
let login = <...>
let password = <...>
let saymonHostname = <...>
let tokenId = <...>
let queryParams = "duration=1000000";
let path = "/node/api/metric-token/" + tokenId + "/history" + "?" + 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");

let login = <...>
let password = <...>
let saymonHostname = <...>
let tokenId = <...>
let queryParams = "duration=1000000";
let path = "/node/api/metric-token/" + tokenId + "/history" + "?" + 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 = <...>
token_id = <...>
url = "https://" + saymon_hostname + "/node/api/metric-token/" + \
    token_id + "/history"

params = {
    "duration": 1577836800000
}

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

Ответ

[
  {
    "metric": "responseTimeMs",
    "tags": {
        "entity": "obj59141f6253d529144c977f1f"
    },
    "aggregateTags": [],
    "dps": [
      [
          1499333280000,
          275
      ],
      [
          1499333400000,
          275
      ]
    ]
  },
  ...
]

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