grafana/docs/sources/developers/http_api/correlations.md
Giordano Ricci 489b302c03
Glue: Correlations minor APIs behavior improvements (#56078)
* add correlation config type, CorrelationConfig validator & default values

* make config required when creating correlations

* make targetUID optional, add validation for createCommand & configType

* fix tests

* update remaining tests

* fix lint error

* Update pkg/services/correlations/models.go

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>

* update docs

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2022-10-04 09:39:55 +01:00

6.5 KiB
Raw Blame History

aliases description keywords title
/docs/grafana/latest/developers/http_api/correlations/
/docs/grafana/latest/http_api/correlations/
Grafana Correlations HTTP API
grafana
http
documentation
api
correlations
Glue
Correlations HTTP API

Correlations API

This API can be used to define correlations between data sources.

Create correlations

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

Creates a correlation between two data sources - the source data source identified by sourceUID in the path, and the target data source which is specified in the body.

Example request:

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

JSON body schema:

  • targetUID Target data source uid.
  • label A label for the correlation.
  • description A description for the correlation.

Example response:

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",
    "config": {
      "type": "query",
      "field": "message",
      "target": {},
    }
  }
}

Status codes:

  • 200 OK
  • 400 - Errors (invalid JSON, missing or invalid fields)
  • 401 Unauthorized
  • 403 Forbidden, source data source is read-only
  • 404 Not found, either source or target data source could not be found
  • 500 Internal error

Delete correlations

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

Deletes a correlation.

Example request:

DELETE /api/datasources/uid/uyBf2637k/correlations/J6gn7d31L HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Example response:

HTTP/1.1 200
Content-Type: application/json
{
  "message": "Correlation deleted"
}

Status codes:

  • 200 OK
  • 401 Unauthorized
  • 403 Forbidden, data source is read-only
  • 404 Correlation not found
  • 500 Internal error

Update correlations

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

Updates a correlation.

Example request:

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

JSON body schema:

  • label A label for the correlation.
  • description A description for the correlation.

Example response:

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",
    "config": {
			"type": "query",
			"field": "message",
			"target": {}
		}
  }
}

Status codes:

  • 200 OK
  • 401 Unauthorized
  • 403 Forbidden, source data source is read-only
  • 404 Not found, either source or target data source could not be found
  • 500 Internal error

Get single correlation

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

Gets a single correlation.

Example request:

GET /api/datasources/uid/uyBf2637k/correlations/J6gn7d31L HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Example response:

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

Status codes:

  • 200 OK
  • 401 Unauthorized
  • 404 Not found, either source data source or correlation were not found
  • 500 Internal error

Get all correlations originating from a given data source

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

Get all correlations originating from the data source identified by the given sourceUID in the path.

Example request:

GET /api/datasources/uid/uyBf2637k/correlations HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Example response:

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

Status codes:

  • 200 OK
  • 401 Unauthorized
  • 404 Not found, either source data source is not found or no correlation exists originating from the given data source
  • 500 Internal error

Get all correlations

GET /api/datasources/correlations

Get all correlations.

Example request:

GET /api/datasources/correlations HTTP/1.1
Accept: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

Example response:

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

Status codes:

  • 200 OK
  • 401 Unauthorized
  • 404 Not found, no correlation is found
  • 500 Internal error