API истории запросов

Note

Starting in Grafana 13, /api endpoints are being deprecated in favor of the /apis route. This change doesn’t disrupt or break your current setup. Legacy APIs are not being disabled and remain fully accessible and operative, but /api routes will no longer be updated.

This API will not be migrated. Refer to API deprecation notes for more details and alternatives.

Этот API можно использовать для добавления запросов в историю запросов. Он требует, чтобы пользователь был авторизован и чтобы функция истории запросов была включена в файле конфигурации.

Добавление запроса в историю запросов

POST /api/query-history

Добавляет запрос в историю запросов.

Пример запроса:

http
POST /api/query-history HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
  "datasourceUid": "PE1C5CBDA0504A6A3",
  "queries": [
    {
        "refId": "A",
        "key": "Q-87fed8e3-62ba-4eb2-8d2a-4129979bb4de-0",
        "scenarioId": "csv_content",
        "datasource": {
            "type": "testdata",
            "uid": "PD8C576611E62080A"
        }
    }
]
}

Схема тела JSON:

  • datasourceUid – uid источника данных.
  • queries – JSON запроса или запросов.

Пример ответа:

http
HTTP/1.1 200
Content-Type: application/json
{
  "result": {
    "uid": "Ahg678z",
    "datasourceUid": "PE1C5CBDA0504A6A3",
    "createdBy": 1,
    "createdAt": 1643630762,
    "starred": false,
    "comment": "",
    "queries": [
      {
        "refId": "A",
        "key": "Q-87fed8e3-62ba-4eb2-8d2a-4129979bb4de-0",
        "scenarioId": "csv_content",
        "datasource": {
            "type": "testdata",
            "uid": "PD8C576611E62080A"
        }
      }
    ]
  }
}

Коды состояния:

  • 200 – OK
  • 400 — Ошибки (некорректный JSON, отсутствующие или недопустимые поля)
  • 401 – Не авторизован
  • 500 – Внутренняя ошибка

GET /api/query-history

Возвращает список запросов в истории запросов, соответствующих критериям поиска. Поиск по истории запросов поддерживает постраничную выдачу. Используйте параметр limit, чтобы управлять максимальным количеством возвращаемых запросов; предел по умолчанию — 100. Также можно использовать параметр запроса page, чтобы получить запросы с любой страницы, кроме первой.

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

  • datasourceUid — фильтрует историю запросов по выбранному источнику данных. Чтобы выполнить фильтрацию по принципу «И» с несколькими источниками данных, укажите параметр источника данных в следующем формате: datasourceUid=uid1&datasourceUid=uid2.
  • searchString – фильтрует историю запросов по содержимому.
  • sort — задаёт порядок сортировки. Сортировка может быть time-asc или time-desc. По умолчанию time-desc.
  • onlyStarred — искать только запросы, отмеченные звёздочкой. По умолчанию false.
  • page — поиск поддерживает постраничную выдачу. Указывает, какую страницу вернуть. Используйте параметр limit, чтобы задать количество запросов на странице.
  • limit — ограничивает количество возвращаемых элементов истории запросов на странице. По умолчанию 100 запросов на странице.
  • from/to — задаёт временной диапазон для поиска по истории запросов. Время может быть либо меткой времени epoch в миллисекундах, либо относительным с использованием единиц времени Grafana. Например, now-5m.

Пример запроса для поиска по истории запросов:

http
GET /api/query-history?datasourceUid="PE1C5CBDA0504A6A3"&datasourceUid="FG1C1CBDA0504A6EL"&searchString="ALERTS"&sort="time-asc" HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>

Пример ответа для поиска по истории запросов:

http
HTTP/1.1 200
Content-Type: application/json
{
  "result": {
    "totalCount": 150,
    "page": 1,
    "perPage": 100
    "queryHistory":[{
    "uid": "Ahg678z",
    "datasourceUid": "PE1C5CBDA0504A6A3",
    "createdBy": 1,
    "createdAt": 1643630762,
    "starred": false,
    "comment": "",
    "queries": [
      {
        "refId": "A",
        "key": "Q-87fed8e3-62ba-4eb2-8d2a-4129979bb4de-0",
        "scenarioId": "csv_content",
        "datasource": {
            "type": "testdata",
            "uid": "PE1C5CBDA0504A6A3"
        }
      }
    ]
  }]
}

Коды состояния:

  • 200 – OK
  • 401 – Не авторизован
  • 500 – Внутренняя ошибка

Удаление запроса из истории запросов по UID

DELETE /api/query-history/:uid

Удаляет запрос в истории запросов, соответствующий указанному uid. Требует, чтобы пользователь был авторизован и чтобы функция истории запросов была включена в файле конфигурации.

Пример запроса:

http
DELETE /api/query-history/P8zM2I1nz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>

Пример ответа:

http
HTTP/1.1 200
Content-Type: application/json

{
    "message": "Query deleted",
    "id": 28
}

Коды состояния:

  • 200 – OK
  • 401 – Не авторизован
  • 500 – Внутренняя ошибка

Обновление комментария к запросу в истории запросов по UID

PATCH /api/query-history/:uid

Обновляет комментарий к запросу с определённым uid, хранящемуся в истории запросов.

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

  • comment – новый комментарий, который будет добавлен к указанному запросу.

Пример запроса:

http
PATCH /api/query-history/P8zM2I1nz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
  "comment": "Debugging query",
}

Пример ответа:

http
HTTP/1.1 200
Content-Type: application/json
{
  "result": {
    "uid": "P8zM2I1nz",
    "datasourceUid": "PE1C5CBDA0504A6A3",
    "createdBy": 1,
    "createdAt": 1643630762,
    "starred": false,
    "comment": "Debugging query",
    "queries": [
      {
        "refId": "A",
        "key": "Q-87fed8e3-62ba-4eb2-8d2a-4129979bb4de-0",
        "scenarioId": "csv_content",
        "datasource": {
            "type": "testdata",
            "uid": "PD8C576611E62080A"
        }
      }
    ]
  }
}

Коды состояния:

  • 200 – OK
  • 400 — Ошибки (некорректный JSON, отсутствующие или недопустимые поля)
  • 401 – Не авторизован
  • 500 – Внутренняя ошибка

Добавление запроса в избранное в истории запросов

POST /api/query-history/star/:uid

Добавляет запрос в избранное в истории запросов.

Пример запроса:

http
POST /api/query-history/star/P8zM2I1nz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>

Пример ответа:

http
HTTP/1.1 200
Content-Type: application/json
{
  "result": {
    "uid": "P8zM2I1nz",
    "datasourceUid": "PE1C5CBDA0504A6A3",
    "createdBy": 1,
    "createdAt": 1643630762,
    "starred": false,
    "comment": "Debugging query",
    "queries": [
      {
        "refId": "A",
        "key": "Q-87fed8e3-62ba-4eb2-8d2a-4129979bb4de-0",
        "scenarioId": "csv_content",
        "datasource": {
            "type": "testdata",
            "uid": "PD8C576611E62080A"
        }
      }
    ]
  }
}

Коды состояния:

  • 200 – OK
  • 401 – Не авторизован
  • 500 – Внутренняя ошибка

Удаление запроса из избранного в истории запросов

DELETE /api/query-history/star/:uid

Убирает звёздочку с запроса в истории запросов.

Пример запроса:

http
DELETE /api/query-history/star/P8zM2I1nz  HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>

Пример ответа:

http
HTTP/1.1 200
Content-Type: application/json
{
  "result": {
    "uid": "P8zM2I1nz",
    "datasourceUid": "PE1C5CBDA0504A6A3",
    "createdBy": 1,
    "createdAt": 1643630762,
    "starred": false,
    "comment": "Debugging query",
    "queries": [
      {
        "refId": "A",
        "key": "Q-87fed8e3-62ba-4eb2-8d2a-4129979bb4de-0",
        "scenarioId": "csv_content",
        "datasource": {
            "type": "testdata",
            "uid": "PD8C576611E62080A"
        }
      }
    ]
  }
}

Коды состояния:

  • 200 – OK
  • 401 – Не авторизован
  • 500 – Внутренняя ошибка