API корреляций

Note

Starting in Grafana 13, /api endpoints are being deprecated in favor of the /apis route. Note that while Grafana is working on migrating existing APIs, currently there may not be an exact match to the legacy API you’re using.

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.

To learn more refer to the new API structure in Grafana.

Этот API можно использовать для определения корреляций между источниками данных.

Создание корреляций

POST /api/datasources/uid/:sourceUID/correlations

Создаёт корреляцию между двумя источниками данных — исходным источником данных, идентифицируемым sourceUID в пути, и целевым источником данных, указанным в теле.

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

http
POST /api/datasources/uid/uyBf2637k/correlations HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
	"targetUID": "PDDA8E780A17E7EF1",
	"label": "My Label",
	"description": "Logs to Traces",
  "type": "query",
  "config": {
    "field": "message",
    "target": {},
  }
}

Схема тела JSON:

  • targetUID – uid целевого источника данных.
  • label – метка корреляции.
  • description – описание корреляции.

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

http
HTTP/1.1 200
Content-Type: application/json
{
  "message": "Correlation created",
  "result": {
    "description": "Logs to Traces",
    "label": "My Label",
    "sourceUID": "uyBf2637k",
    "targetUID": "PDDA8E780A17E7EF1",
    "uid": "50xhMlg9k",
    "type": "query",
    "config": {
      "field": "message",
      "target": {},
    }
  }
}

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

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

Удаление корреляций

DELETE /api/datasources/uid/:sourceUID/correlations/:correlationUID

Удаляет корреляцию.

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

http
DELETE /api/datasources/uid/uyBf2637k/correlations/J6gn7d31L 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": "Correlation deleted"
}

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

  • 200 – OK
  • 401 – Не авторизован
  • 403 – Запрещено, источник данных доступен только для чтения
  • 404 – Корреляция не найдена
  • 500 – Внутренняя ошибка

Обновление корреляций

PATCH /api/datasources/uid/:sourceUID/correlations/:correlationUID

Обновляет корреляцию.

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

http
POST /api/datasources/uid/uyBf2637k/correlations/J6gn7d31L HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
{
	"label": "My Label",
	"description": "Logs to Traces",
}

Схема тела JSON:

  • label – метка корреляции.
  • description – описание корреляции.

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

http
HTTP/1.1 200
Content-Type: application/json
{
  "message": "Correlation updated",
  "result": {
    "description": "Logs to Traces",
    "label": "My Label",
    "sourceUID": "uyBf2637k",
    "targetUID": "PDDA8E780A17E7EF1",
    "uid": "J6gn7d31L",
    "type": "query",
    "config": {
			"field": "message",
			"target": {}
		}
  }
}

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

  • 200 – OK
  • 400 – Некорректный запрос
  • 401 – Не авторизован
  • 403 – Запрещено, исходный источник данных доступен только для чтения
  • 404 – Не найдено: исходный или целевой источник данных не найден
  • 500 – Внутренняя ошибка

Получение одной корреляции

GET /api/datasources/uid/:sourceUID/correlations/:correlationUID

Возвращает одну корреляцию.

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

http
GET /api/datasources/uid/uyBf2637k/correlations/J6gn7d31L HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>

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

http
HTTP/1.1 200
Content-Type: application/json
{
  "description": "Logs to Traces",
  "label": "My Label",
  "sourceUID": "uyBf2637k",
  "targetUID": "PDDA8E780A17E7EF1",
  "uid": "J6gn7d31L",
  "provisioned": false,
  "type": "query",
  "config": {
    "field": "message",
    "target": {},
  }
}

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

  • 200 – OK
  • 401 – Не авторизован
  • 404 – Не найдено: исходный источник данных или корреляция не найдены
  • 500 – Внутренняя ошибка

Получение всех корреляций, исходящих из заданного источника данных

GET /api/datasources/uid/:sourceUID/correlations

Возвращает все корреляции, исходящие из источника данных, идентифицируемого заданным в пути sourceUID.

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

http
GET /api/datasources/uid/uyBf2637k/correlations HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>

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

http
HTTP/1.1 200
Content-Type: application/json
[
  {
    "description": "Logs to Traces",
    "label": "My Label",
    "sourceUID": "uyBf2637k",
    "targetUID": "PDDA8E780A17E7EF1",
    "uid": "J6gn7d31L",
    "provisioned": false,
    "type": "query",
    "config": {
      "field": "message",
      "target": {},
    }
  },
  {
    "description": "Logs to Metrics",
    "label": "Another Label",
    "sourceUID": "uyBf2637k",
    "targetUID": "P15396BDD62B2BE29",
    "uid": "uWCpURgVk",
    "provisioned": false,
    "type": "query",
    "config": {
      "field": "message",
      "target": {},
    }
  }
]

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

  • 200 – OK
  • 401 – Не авторизован
  • 404 – Не найдено: исходный источник данных не найден или из заданного источника данных не исходит ни одной корреляции
  • 500 – Внутренняя ошибка

Получение всех корреляций

GET /api/datasources/correlations

Возвращает все корреляции.

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

  • page — необязательно. Указывает, какую страницу вернуть. Используйте параметр limit, чтобы задать количество корреляций на странице. По умолчанию страница 1.
  • limit — необязательно. Ограничивает количество возвращаемых корреляций на странице. По умолчанию 100 корреляций на странице. Максимальный предел — 1000 корреляций на странице.
  • sourceUID — необязательно. Указывает UID исходного источника данных для фильтрации. Его можно повторить, чтобы фильтровать по нескольким источникам данных.

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

http
GET /api/datasources/correlations HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>

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

http
HTTP/1.1 200
Content-Type: application/json
[
  {
    "description": "Prometheus to Loki",
    "label": "My Label",
    "sourceUID": "uyBf2637k",
    "targetUID": "PDDA8E780A17E7EF1",
    "uid": "J6gn7d31L",
    "provisioned": false,
    "type": "query",
    "config": {
      "field": "message",
      "target": {},
    }
  },
  {
    "description": "Loki to Tempo",
    "label": "Another Label",
    "sourceUID": "PDDA8E780A17E7EF1",
    "targetUID": "P15396BDD62B2BE29",
    "uid": "uWCpURgVk",
    "provisioned": false,
    "type": "query",
    "config": {
      "field": "message",
      "target": {},
    }
  }
]

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

  • 200 – OK
  • 401 – Не авторизован
  • 404 – Не найдено: ни одной корреляции не найдено
  • 500 – Внутренняя ошибка