Playlist API

Playlist API

Note Grafana 12 이상에서 사용할 수 있어요. 이 API는 새 Grafana API 구조를 준수해요. 더 배우려면 Grafana의 API 구조 문서를 참고해요. 이 문서는 API의 최신 버전을 포함하지 않을 수 있어요. 사용 가능한 최신 엔드포인트 목록은 Swagger의 playlist.grafana.app/v1을 참고해요.

출처: 문서

본문

Note Grafana 12 이상에서 사용할 수 있어요. 이 API는 새 Grafana API 구조를 준수해요. 더 배우려면 Grafana의 API 구조 문서를 참고해요. 이 문서는 API의 최신 버전을 포함하지 않을 수 있어요. 사용 가능한 최신 엔드포인트 목록은 Swagger의 playlist.grafana.app/v1을 참고해요.

Playlist 나열 (List Playlists)

GET /apis/playlist.grafana.app/v1/namespaces/:namespace/playlists

지정된 네임스페이스의 모든 playlist를 나열해요.

  • namespace: 어떤 네임스페이스를 사용할지에 대해 더 배우려면 API 개요를 참고해요.

예제 요청 (Example Request):

http

GET /apis/playlist.grafana.app/v1/namespaces/default/playlists HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVI...KEN>

예제 응답 (Example Response):

http

HTTP/1.1 200
Content-Type: application/json

{
  "kind": "PlaylistList",
  "apiVersion": "playlist.grafana.app/v1",
  "metadata": {},
  "items": [
    {
      "kind": "Playlist",
      "apiVersion": "playlist.grafana.app/v1",
      "metadata": {
        "name": "my-playlist-uid",
        "namespace": "default",
        "resourceVersion": "1234567890",
        "creationTimestamp": "2024-01-15T10:30:00Z"
      },
      "spec": {
        "title": "My Playlist",
        "interval": "5m",
        "items": [
          {
            "type": "dashboard_by_uid",
            "value": "dashboard-uid-1"
          },
          {
            "type": "dashboard_by_tag",
            "value": "important"
          }
        ]
      }
    }
  ]
}

Playlist 가져오기 (Get a Playlist)

GET /apis/playlist.grafana.app/v1/namespaces/:namespace/playlists/:name

이름으로 특정 playlist를 검색해요.

  • namespace: 어떤 네임스페이스를 사용할지에 대해 더 배우려면 API 개요를 참고해요.
  • name: playlist의 UID.

예제 요청 (Example Request):

http

GET /apis/playlist.grafana.app/v1/namespaces/default/playlists/my-playlist-uid HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVI...KEN>

예제 응답 (Example Response):

http

HTTP/1.1 200
Content-Type: application/json

{
  "kind": "Playlist",
  "apiVersion": "playlist.grafana.app/v1",
  "metadata": {
    "name": "my-playlist-uid",
    "namespace": "default",
    "resourceVersion": "1234567890",
    "creationTimestamp": "2024-01-15T10:30:00Z"
  },
  "spec": {
    "title": "My Playlist",
    "interval": "5m",
    "items": [
      {
        "type": "dashboard_by_uid",
        "value": "dashboard-uid-1"
      },
      {
        "type": "dashboard_by_tag",
        "value": "important"
      }
    ]
  }
}

Playlist 만들기 (Create a Playlist)

POST /apis/playlist.grafana.app/v1/namespaces/:namespace/playlists

새 playlist를 만들어요.

  • namespace: 어떤 네임스페이스를 사용할지에 대해 더 배우려면 API 개요를 참고해요.

예제 요청 (Example Request):

http

POST /apis/playlist.grafana.app/v1/namespaces/default/playlists HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...KEN>

{
  "kind": "Playlist",
  "apiVersion": "playlist.grafana.app/v1",
  "metadata": {
    "name": "my-new-playlist-uid"
  },
  "spec": {
    "title": "My New Playlist",
    "interval": "5m",
    "items": [
      {
        "type": "dashboard_by_uid",
        "value": "dashboard-uid-1"
      },
      {
        "type": "dashboard_by_tag",
        "value": "monitoring"
      }
    ]
  }
}

예제 응답 (Example Response):

http

HTTP/1.1 201 Created
Content-Type: application/json

{
  "kind": "Playlist",
  "apiVersion": "playlist.grafana.app/v1",
  "metadata": {
    "name": "my-new-playlist-uid",
    "namespace": "default",
    "resourceVersion": "1234567891",
    "creationTimestamp": "2024-01-15T10:35:00Z"
  },
  "spec": {
    "title": "My New Playlist",
    "interval": "5m",
    "items": [
      {
        "type": "dashboard_by_uid",
        "value": "dashboard-uid-1"
      },
      {
        "type": "dashboard_by_tag",
        "value": "monitoring"
      }
    ]
  }
}

Playlist 업데이트 (Update a Playlist)

PUT /apis/playlist.grafana.app/v1/namespaces/:namespace/playlists/:name

기존 playlist를 업데이트해요. 전체 playlist spec을 제공해야 해요.

  • namespace: 어떤 네임스페이스를 사용할지에 대해 더 배우려면 API 개요를 참고해요.
  • name: playlist의 UID.

예제 요청 (Example Request):

http

PUT /apis/playlist.grafana.app/v1/namespaces/default/playlists/my-playlist-uid HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <SERVI...KEN>

{
  "kind": "Playlist",
  "apiVersion": "playlist.grafana.app/v1",
  "metadata": {
    "name": "my-playlist-uid",
    "namespace": "default",
    "resourceVersion": "1234567890"
  },
  "spec": {
    "title": "My Updated Playlist",
    "interval": "10m",
    "items": [
      {
        "type": "dashboard_by_uid",
        "value": "dashboard-uid-1"
      },
      {
        "type": "dashboard_by_uid",
        "value": "dashboard-uid-2"
      },
      {
        "type": "dashboard_by_tag",
        "value": "updated-tag"
      }
    ]
  }
}

예제 응답 (Example Response):

http

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

{
  "kind": "Playlist",
  "apiVersion": "playlist.grafana.app/v1",
  "metadata": {
    "name": "my-playlist-uid",
    "namespace": "default",
    "resourceVersion": "1234567892",
    "creationTimestamp": "2024-01-15T10:30:00Z"
  },
  "spec": {
    "title": "My Updated Playlist",
    "interval": "10m",
    "items": [
      {
        "type": "dashboard_by_uid",
        "value": "dashboard-uid-1"
      },
      {
        "type": "dashboard_by_uid",
        "value": "dashboard-uid-2"
      },
      {
        "type": "dashboard_by_tag",
        "value": "updated-tag"
      }
    ]
  }
}

Playlist 삭제 (Delete a Playlist)

DELETE /apis/playlist.grafana.app/v1/namespaces/:namespace/playlists/:name

playlist를 삭제해요.

  • namespace: 어떤 네임스페이스를 사용할지에 대해 더 배우려면 API 개요를 참고해요.
  • name: playlist의 UID.

예제 요청 (Example Request):

http

DELETE /apis/playlist.grafana.app/v1/namespaces/default/playlists/my-playlist-uid HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVI...KEN>

예제 응답 (Example Response):

http

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

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {},
  "status": "Success",
  "code": 200
}

Playlist 항목 유형 (Playlist Item Types)

Playlist 항목은 세 가지 유형을 지원해요:

  • dashboard_by_uid: UID로 특정 대시보드를 포함해요
  • dashboard_by_tag: 특정 태그가 있는 모든 대시보드를 포함해요
  • dashboard_by_id: (폐기됨) 내부 ID로 대시보드를 포함해요

더 알아보기 (Learn more)