2021년 03월 09일
Grafana Plugin을 React로 개발하여 배포하는 방법을 설명한다.
OS: Mac
node: >= 14.0
grafana: >= 7.0
Grafana 설치 가이드 문서
Ubuntu, Docker 등 OS 별 설치방법 문서가 존재한다.
brew update
brew install grafana
프로젝트 구조는 grafana-toolkit
를 사용한다.
grafana-toolkit은 creact-react-app 처럼 초기 프로젝트를 구축하기 위한 CLI
이다.
맨
설치하는 과정에서 plugin, author 등은 원하는 형태에 맞춰서 작성하면 되며, 플러그인 이름은 신중하게 입력해보자.
npm install -g @grafana/toolkit
npx @grafana/toolkit plugin:create [project-name]
cd graph-plugin
npm install
( 프로젝트를 grafana에 연동하는 부분은 아래에서 진행한다. )
설치한 grafana 서비스를 실행한다.
brew services start grafana
기본적으로 localhost:3000
로 포트가 열린다. 초기 계정은 admin/admin
이다.
프로젝트를 생성했고 grafana service 가 동작한다면, 프로젝트를 플러그인에 연동해야한다.
grafana 설정파일에서 plugin path를 연결한다.
vim /usr/local/etc/grafana/grafana.ini
[paths]
plugins = [Grafana Project Path]
이때, [paths] 아래에 추가
해야한다. 맨 상단 혹은 맨 하단에 작성 시 작동되지 않는다.
설치한 grafana 서비스를 재실행한다.
brew services restart grafana
서비스를 재 실행한 이후 localhost:3000/plugins
로 이동하여 npx로 생성 당시 입력한 플러그인 이름을 검색하여 정상적으로 보이는지 확인해보자.
이제 프로젝트를 생성하고 플러그인을 연동했다.
yarn dev? yarn watch?? 아직 시작조차 하지 않았다.
다음 글에서 grafana 플러그인 개발을 시작한다.
사실 엄청 많지만, 검색하다가 복붙하는걸 까먹었다..
https://grafana.com/tutorials/build-a-panel-plugin/#1
https://grafana.com/blog/2019/03/26/writing-react-plugins/
https://www.youtube.com/watch?v=Y31wnP_jDBY&feature=emb_title
2021년 03월 10일
작업을 스테이지에 올렸다가 릴리즈 날짜에 배포가 불가능하면 해당 기능을 잠시 스테이지에서 빼둬야한다. 이때 develop 브랜치에서 Revert를 생성하여 Merge 하는 작업을 진행한다. 여기까지는 괜찮았으나 작업중인 브랜치에서 devleop을 Pull 받으니 문제가 나타났다. develop에서는 Merge를 통하여 해당 내용들을 전부 삭제했으니 작업중인 브랜치에 있는 내용들도 전부 삭제 시켜버린다. 동일 파일을 작업하던 부분들까지 날려버리니 멘붕이 나버렸다. 여러번의 검색 끝에 간단한 해결방법을 찾았는데 결국 `Revert를 Revert하자!` 라는게 편한 방법이다. ## 해결방법 Merge, Revert한 브랜치명을 develop으로 명칭하고 진행한다. ### Revert Commit SHA Key를 가져오자. develop에서 `git log`를 확인하여 `revert한 커밋 키 값`을 가져온다. ```bash git checkout develop git log commit [REVERT_COMMIT_SHA_KEY] (tag: ...) Author: Doriri Date: ... Revert "커밋 메시지" ``` 여기서 `REVERT_COMMIT_SHA_KEY` 해당 부분을 복사해준다. ### New Branch & Revert를 Revert 하자. 새로운 브랜치를 생성하고, Revert 커밋을 Revert 해보자. ```bash git checkout -b [new_branch] git revert [REVERT_COMMIT_SHA_KEY] ``` 그리고 마무리로 기존 브랜치를 pull 받으면 끝이다. ```bash git pull origin [origin_branch] ``` ### 커맨드 요약 ```bash git...
2021년 03월 10일
Disqus 계정에서 이메일을 변경하면서 인증하라는 메시지가 나왔다. 인증받기를 눌러도 메일은 한참 지나서오고 들어가보니 연결을 거부당했다. ```bash 사이트에 연결할 수 없음 disq.us에서 연결을 거부했습니다. ERR_CONNECTION_REFUSED ``` 도메인이 disq.us인게 url shoutcut으로 사용한 것 같은데, 내 네트워크 문제인지 쟤네 문제인지.. 아무튼 거부당했다. 혹시나 해서 disq.us 부분만 disqus.com으로 바꿨더니 url이라는 사용자의 프로필로 이동했다. URL을 다시 확인해보니 결국은 disq.us에서 url을 파라미터로 받아서 리다이렉트를 하는 방식이다. ## 해결방법 1. disq.us/url?url= 여기서 부터 뒷부분을 전부 복사한다. 2. url을 decode 해주자. [urlDecoder](https://meyerweb.com/eric/tools/dencoder/)에서 붙여넣기 후 decode 3. decode 된 url 경로로 이동하자. `Your email has been verified successfully!`
2021년 03월 09일
axios은 기본적으로 api timeout이 설정되어 있지 않다. 따라서 API를 호출하면 서버에서 응답 주기 전까지는 계속 연결되어 았다. axios timeout 설정하기 axios를 생성하여 timeout을 옵션으로 추가하고 해당 인스턴스로 api를 호출하도록 작업을 진행한다. const instance = axios.create({ timeout: 30000, }); export const baseApi = (method, url, params) => { return instance .request({ method, url, data: params, }) .then(axiosResponseToData) .catch(axiosErrorResToData); }; 기존에 ts로 작성되어 있던 부분들인데, 불필요해 보여 제거 후 함수만 등록하였다.