Contents

Contents

  1. 주요 업무

    • 1.1. 업무 내용
    • 1.2. 업무 진행상황 및 주요 내용
  2. 업무 프로세스

    • 2.1. 업무 개요

      • 2.1.1. 업무 리스트 및 설명
    • 2.2 업무

      • 2.2.1. 개발 환경
      • 2.2.2. 사용 방법
        • 2.2.2.1. 환경 설정
        • 2.2.2.2. 배포 & 설치
        • 2.2.2.3. 적용
        • 2.2.2.4. 평가

1. 주요 업무

1.1. 업무 내용

1.2. 업무 진행상황 및 주요내용

2. 업무 프로세스

2.1. 업무 개요

2.1.1. 업무리스트 및 설명

업무 세부 내용 비고
Grafana grafana 개발 및 유지보수  

2.1.2. 개발 환경

분류 이름 비고
OS Windows 10 Pro  
Visual Studio Code Latest  
개발 언어 Typescript, Javascript Frontend
DOM framework AngularJS(1.x version), reactjs, Jquery, VanillaJS Frontend
빌드 툴 Grunt, Webpack Frontend
개발 언어 Golang Backend
WebFramework macaron Backend
빌드 툴 bra Backend
database sqlite, influxdb Backend
grafana
│
└───grafana
    │   ...
    └───conf                     # grafana config 설정 폴더
    │
    └───data                     # grafana의 데이터 및 plugin
    │
    └───dist                     # package build시 산출물 경로
    │
    └───pkg                      # backend source code
    │
    └───public                   # frontend source code
    │
    └───scripts/webpack          # frontend build 폴더
    │
    └───Dockerfile               # docker config file
    │
    └───package.json             #프로젝트의 의존성 관리 파일
    │
    └───.babelrc.json            # babel 설정 파일
    │
    └───tsconfig.json            # typescript 설정 파일

Frontend build

yarn --purelockfile
yarn watch

Backend build

bra run # build backend + live reoload

Plugin Build

  yarn
  yarn dev

3. 기능 설계

3.1 개발 개요

3.1.1 기능 리스트 및 설명

기능 세부내용 비고
기능1 grafana blank
기능2 grafana-plugin-panel blank
기능3 grafana-plugin-datasource blank

3.2 기능

3.2.1 기능 개요

3.2.1.1 기능 조건 및 대상

3.2.1.2 시퀀스 다이어그램

image

3.2.2 클래스 및 함수

3.2.2.1 주요 클래스 설명

클래스명 설명
TrendPanelCtrl grafana-trend-panel의 main으로 tabulator와 plotly를 이용한 시각화를 총괄
GraphCtrl Plotly lib directive의 controller로 Graph 시각화와 라이프 사이클 관리
LegendCtrl Legend directive의 Controller Graph내의 시각화와 라이프 사이클 관리
MetricsTab Metricstab(query) directive의 Controller Panel내의 metric query 관리
TabulatorCtrl Tabulator directive의 Controller table 시각화와 라이프 사이클 관리
TooltipCtrl TooltipCtrl directive의 Controller graph의 tooltip 시각화와 라이프 사이클 관리
VariableCtrl Variable directive의 Controller panel 내부의 variable 시각화와 라이프 사이클 관리
CustomInfluxDatasource grafana의 datasource plugin으로 패널 내부의 variable(influxdb용) 생성에 사용
CustomInfluxQueryCtrl CustomInflux metric editor directive의 controller
TrendDatasource grafana의 datasource plugin으로 외부(Python) API와 연동 시 사용
TrendQueryCtrl Trend metric editor directive의 controller

3.2.2.2 클래스 다이어그램

4. 시각화

4.1 화면 구성

4.1.1 메인 화면 구성

4.2 Component 설명

Grafana