![Grafana 리뷰 대시 보드 구성 - Panel 에 변수 추가하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZc6GN%2FbtsCxC9soEO%2FyOTAo0NFP0hwIYzQIiMxg0%2Fimg.png)
Grafana 리뷰 대시 보드 구성 - Panel 에 변수 추가하기프로젝트/Github Rest API로 프로젝트 리뷰 대시보드 구성하기2023. 12. 22. 22:21
Table of Contents
반응형
이전 포스팅
2023.12.09 - [프로젝트/Github Rest API로 프로젝트 리뷰 대시보드 구성하기] - Repository 정보 크롤링 및 알림 서비스 구현 요구사항 정리하기
2023.12.18 - [프로젝트/Github Rest API로 프로젝트 리뷰 대시보드 구성하기] - Grafana에서 DB 조작하기
필요 배경 지식
- Grafana 대시보드 작성 방법 및 적용방법
- PostgreSQL 사용법
Grafana에서 대시보드 변수 사용하기
Grafana에서 변수(variable)를 패널(panel)에서 사용하는 방법은 다음과 같다.
- 변수 생성하기: 먼저, Grafana 대시보드에서 사용할 변수를 생성해야 합니다. 대시보드 상단의 톱니바퀴 아이콘(설정)을 클릭하고, 'Variables' 섹션으로 이동합니다. 여기서 'Add variable' 버튼을 클릭하여 새 변수를 추가할 수 있습니다.
- 변수 설정: 변수의 이름, 유형(예: Query, Constant, Interval 등), 데이터 소스 및 기타 옵션을 설정합니다. Query 유형을 사용하는 경우, 데이터 소스에서 데이터를 가져오는 쿼리를 작성해야 합니다.
- 변수 사용: 변수를 패널의 쿼리에서 사용하려면, 쿼리 문자열에서 변수 이름을 $변수명 형태로 포함시키면 됩니다. 예를 들어, 변수 이름이 myVar라면, 쿼리에서 $myVar로 참조할 수 있습니다.
- 패널 설정: 변수를 사용하는 패널을 설정하거나 편집할 때, 해당 변수를 쿼리에 포함시키기만 하면 됩니다. 이렇게 하면 대시보드 사용자가 변수를 변경할 때마다 패널이 자동으로 업데이트되어 해당 변수 값에 맞는 데이터를 표시합니다.
- 테스트 및 저장: 설정을 마친 후, 패널을 저장하고 대시보드에서 변수가 올바르게 작동하는지 테스트합니다. 변수 선택기를 사용하여 다른 값으로 변경하고, 패널이 해당 변경사항을 반영하는지 확인합니다.
이 방법을 적용한 대시보드의 Query문은 아래와 같이 작성할 수 있다.
사람 이름 설정에 따라서 대상 대시보드의 결과값이 변경된다.
아래는 내가 활용한 패널의 SQL문이다.
select
repos.name AS "리포지토리",
prs.pr_name AS "PR 이름",
prs.base_branch AS "머지 대상",
review_status.status AS "리뷰 상태",
CASE
WHEN EXTRACT(EPOCH FROM (NOW() - prs.created_at)) / 3600 > 24 THEN '1일 지남'
WHEN EXTRACT(EPOCH FROM (NOW() - prs.created_at)) / 3600 > 4 THEN '4시간 지남'
ELSE '4시간 이내'
END AS "오래된 정도",
prs.html_url AS "리뷰 하러 가기"
from prs
INNER JOIN review_status
ON prs.pr_id = review_status.pr_id
AND prs.repo_id = review_status.repo_id
AND prs.author != review_status.reviewer
INNER JOIN users
ON users.github_id = review_status.reviewer
INNER JOIN repos
ON repos.id = prs.repo_id
where prs.is_closed = false and users.name = '$NAME'
ORDER BY prs.created_at DESC
Query 조건에 '$NAME'과 같이 붙여주면 $NAME으로 선택한 String을 해당 위치에 넣어준다.
유의할 점은 $NAME으로 하면 값이 아닌 Column 으로 인식해서 오류가 발생한다.
GitHub - ray5273/Github-Review-Dashboard-and-Alarm-Bot
Contribute to ray5273/Github-Review-Dashboard-and-Alarm-Bot development by creating an account on GitHub.
github.com
최종 완성 대시보드
개인별 대시보드
중요 정보는 흰색 박스로 가렸다.
팀별 대시보드
마찬가지로 민감한 정보는 가렸다.
반응형
'프로젝트 > Github Rest API로 프로젝트 리뷰 대시보드 구성하기' 카테고리의 다른 글
mattermost deploy 및 봇 사용해보기 (1) | 2024.01.07 |
---|---|
NodeJS Express를 통해서 API 서버 구축 및 DB 업데이트 하기 (0) | 2023.12.25 |
Grafana에서 DB 조작하기 (0) | 2023.12.18 |
Repository 정보 크롤링 및 알림 서비스 구현 요구사항 정리하기 (0) | 2023.12.09 |
Github RestAPI를 통해서 Repository 정보 크롤링 및 알림 서비스 구현 (0) | 2023.12.06 |
@ray5273 :: Micro Changes, Macro Impact
개발 및 IT 관련 포스팅을 작성 하는 블로그입니다.
IT 기술 및 개인 개발에 대한 내용을 작성하는 블로그입니다. 많은 분들과 소통하며 의견을 나누고 싶습니다.