API корреляций
Note
Starting in Grafana 13,
/apiendpoints are being deprecated in favor of the/apisroute. 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
/apiroutes will no longer be updated.To learn more refer to the new API structure in Grafana.
Этот API можно использовать для определения корреляций между источниками данных.
Создание корреляций
POST /api/datasources/uid/:sourceUID/correlations
Создаёт корреляцию между двумя источниками данных — исходным источником данных, идентифицируемым sourceUID в пути, и целевым источником данных, указанным в теле.
Пример запроса:
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/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
Удаляет корреляцию.
Пример запроса:
DELETE /api/datasources/uid/uyBf2637k/correlations/J6gn7d31L HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
HTTP/1.1 200
Content-Type: application/json
{
"message": "Correlation deleted"
}
Коды состояния:
- 200 – OK
- 401 – Не авторизован
- 403 – Запрещено, источник данных доступен только для чтения
- 404 – Корреляция не найдена
- 500 – Внутренняя ошибка
Обновление корреляций
PATCH /api/datasources/uid/:sourceUID/correlations/:correlationUID
Обновляет корреляцию.
Пример запроса:
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/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
Возвращает одну корреляцию.
Пример запроса:
GET /api/datasources/uid/uyBf2637k/correlations/J6gn7d31L HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
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.
Пример запроса:
GET /api/datasources/uid/uyBf2637k/correlations HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
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 исходного источника данных для фильтрации. Его можно повторить, чтобы фильтровать по нескольким источникам данных.
Пример запроса:
GET /api/datasources/correlations HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>
Пример ответа:
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 – Внутренняя ошибка