daangn-daangn / daangn-server

🥕당근 서버 리포지토리🥕
4 stars 2 forks source link

통합 테스트(프론트 + api) 모니터링용 설정 적용 #125

Closed cotchan closed 2 years ago

cotchan commented 2 years ago

작업내용

PR

목차

  1. 슬로우 쿼리 로그 활성화
  2. 스프링부트 actuator 적용
  3. 프로메테우스 & grafana 적용

슬로우 쿼리 로그 활성화

[mysqld]
# 슬로우 쿼리를 FILE로 출력
log_output = FILE
# 출력할 파일 위치를 설정
slow_query_log_file = /var/log/mysql/mysql-slow.log

# 슬로우 쿼리 활성화
slow_query_log = 1

# 아래 변수에 지정된 초(seconds)이상 쿼리가 수행되면 슬로우 쿼리에 기록
long_query_time = 2
mysql> SHOW VARIABLES WHERE 
    -> Variable_Name LIKE 'slow_query_log' OR 
    -> Variable_Name LIKE 'long_query_time' OR
    -> Variable_Name LIKE 'log_output';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| log_output      | FILE     |
| long_query_time | 2.000000 |
| slow_query_log  | ON       |
+-----------------+----------+
3 rows in set (0.00 sec)
# cat mysql-slow.log

# Time: 2022-07-17T20:37:27.320818Z
# User@Host: root[root] @ localhost []  Id:     2
# Query_time: 3.000273  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1658090247;
select sleep(3);

스프링부트 actuator 적용

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    runtimeOnly 'io.micrometer:micrometer-registry-prometheus'
}
management:
  endpoints:
    web:
      exposure:
        include: health,prometheus
  metrics:
    export:
      prometheus:
        enabled: true

프로메테우스 & grafana 적용

프로메테우스

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

  #...

  - job_name: daangn_server_node
    metrics_path: /actuator/prometheus
    static_configs:
      - targets: ['localhost:8081','localhost:8881','localhost:9081']

스크린샷 2022-07-18 오전 6 36 19

grafana

스크린샷 2022-07-18 오전 6 55 35