쿼리 기록(Query history) API
쿼리 기록(Query history) API
이 문서는 Grafana의 쿼리 기록에 쿼리를 추가하고, 검색하고, 삭제하며, 별표(즐겨찾기)를 관리하는 API를 설명해요. 이 API를 사용하려면 사용자가 로그인되어 있고 설정 파일에서 쿼리 기록 기능이 활성화되어 있어야 합니다.
출처: 문서
본문
참고: Grafana 13부터
/api엔드포인트는/apis경로를 위해 더 이상 사용되지 않습니다(deprecated). 이 변경은 현재 설정을 방해하거나 깨지 않습니다. 레거시 API는 비활성화되지 않으며 완전히 접근 가능하고 정상 작동하지만,/api경로는 더 이상 업데이트되지 않습니다. 이 API는 마이그레이션되지 않을 거예요. 자세한 내용과 대안은 API 더 이상 사용 중단(deprecation) 참고를 참고하세요.
쿼리 기록에 쿼리 추가하기
POST /api/query-history
쿼리를 쿼리 기록에 추가합니다.
예시 요청:
POST /api/query-history HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...KEN>
{
"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/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– OK400– 오류 (잘못된 JSON, 누락되거나 유효하지 않은 필드)401– 인증되지 않음500– 내부 오류
쿼리 기록 검색하기
GET /api/query-history
검색 조건과 일치하는 쿼리 기록의 쿼리 목록을 반환합니다. 쿼리 기록 검색은 페이징을 지원해요. limit 파라미터로 반환되는 최대 쿼리 수를 제어할 수 있으며 기본 제한은 100입니다. page 쿼리 파라미터로 첫 페이지가 아닌 다른 페이지의 쿼리를 가져올 수도 있습니다.
쿼리 파라미터:
datasourceUid– 선택한 데이터소스로 쿼리 기록을 필터링. 여러 데이터소스로 "AND" 필터링을 하려면 다음 형식으로 데이터소스 파라미터를 지정하세요:datasourceUid=uid1&datasourceUid=uid2.searchString– 내용을 기준으로 쿼리 기록을 필터링.sort– 정렬 순서를 지정. 정렬은time-asc또는time-desc일 수 있으며 기본값은time-desc.onlyStarred– 별표(즐겨찾기)된 쿼리만 검색. 기본값은false.page– 검색은 페이징을 지원. 반환할 페이지 번호를 지정. 페이지당 쿼리 수는 limit 파라미터로 지정.limit– 페이지당 반환되는 쿼리 기록 항목 수를 제한. 기본값은 페이지당 100개의 쿼리.from/to– 쿼리 기록 검색의 시간 범위를 지정. 시간은 밀리초 단위의 epoch 타임스탬프이거나 Grafana 시간 단위를 사용한 상대 시간일 수 있어요(예: now-5m).
쿼리 기록 검색 예시 요청
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 <SERVI...KEN>
쿼리 기록 검색 예시 응답
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– OK401– 인증되지 않음500– 내부 오류
UID로 쿼리 기록에서 쿼리 삭제하기
DELETE /api/query-history/:uid
지정된 uid와 일치하는 쿼리 기록의 쿼리를 삭제합니다. 사용자가 로그인되어 있고 설정 파일에서 쿼리 기록 기능이 활성화되어 있어야 해요.
예시 요청:
DELETE /api/query-history/P8zM2I1nz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...KEN>
예시 응답:
HTTP/1.1 200
Content-Type: application/json
{
"message": "Query deleted",
"id": 28
}
상태 코드:
200– OK401– 인증되지 않음500– 내부 오류
UID로 쿼리 기록의 쿼리 주석(comment) 갱신하기
PATCH /api/query-history/:uid
쿼리 기록에 저장된 특정 uid의 쿼리 주석을 갱신합니다.
쿼리 파라미터:
comment– 지정된 쿼리에 추가될 새 주석.
예시 요청:
PATCH /api/query-history/P8zM2I1nz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...KEN>
{
"comment": "Debugging query",
}
예시 응답:
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– OK400– 오류 (잘못된 JSON, 누락되거나 유효하지 않은 필드)401– 인증되지 않음500– 내부 오류
쿼리 기록에서 쿼리 별표(즐겨찾기)하기
POST /api/query-history/star/:uid
쿼리 기록에서 쿼리에 별표를 답니다.
예시 요청:
POST /api/query-history/star/P8zM2I1nz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...KEN>
예시 응답:
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– OK401– 인증되지 않음500– 내부 오류
쿼리 기록에서 쿼리 별표 해제하기
DELETE /api/query-history/star/:uid
쿼리 기록에서 쿼리의 별표를 제거합니다.
예시 요청:
DELETE /api/query-history/star/P8zM2I1nz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...KEN>
예시 응답:
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– OK401– 인증되지 않음500– 내부 오류