분류 전체보기 1341

Ch08. 마이크로미터, 프로메테우스, 그라파나 - 그라파나(메트릭을 통한 문제 확인)

애플리케이션에 문제가 발생했을 때 그라파나를 통해서 어떻게 모니터링하는지 확인해 보자. 실제 우리가 작성한 애플리케이션에 직접 문제를 발생시킨 다음에 그라파나를 통해서 문제를 어떻게 모니터링할 수 있는지 확인해 보자. 실무에서 주로 많이 발생하는 다음 5가지 대표적인 예시를 확인해 보자.. CPU 사용량 초과 JVM 메모리 사용량 초과 커넥션 풀 고갈 에러 로그 급증 CPU 사용량 초과 TrafficController - cpu() 추가 @GetMapping("cpu") public String cpu(){ log.info("cpu"); long value = 0; for (long i =0; i< 10000000000000L; ++i){ value++; } return "ok value=" + valu..

Ch08. 마이크로미터, 프로메테우스, 그라파나 - 그라파나(공유 대시보드 활용)

https://grafana.com/grafana/dashboards/ Dashboards | Grafana Labs grafana.com 이미 누군가 만들어둔 수많은 대시보드가 공개되어 있다. 우리는 스프링 부트와 마이크로미터를 사용해서 만든 대시보드를 가져다가 사용해 보자 검색창에 spring이라고 검색해 보면 다양한 대시보드를 확인할 수 있다. 그중에 인기 있고, 동작하는 다음 대시보드를 불러와서 사용해 보자.. 스프링 부트 시스템 모니터 대시보드 불러오기 https://grafana.com/grafana/dashboards/11378-justai-system-monitor/ Spring Boot 2.1 System Monitor | Grafana Labs Edit Delete Confirm Can..

Ch08. 마이크로미터, 프로메테우스, 그라파나 - 그라파나(대시보드 만들기)

먼저 다음 3가지를 꼭 수행해두어야 한다. 애플리케이션 실행 프로메테우스 실행 그라파나 실행 대시보드 만들기 대시보드 저장 왼쪽 Dashboards 메뉴 선택 New 버튼 선택 New Dashboard 선택 오른쪽 상단의 Save dashboard 저장 버튼(disk 모양) 선택 Dashboard name: hello dashboard를 입력하고 저장 대시보드 확인 왼쪽 Dashboards 메뉴 선택 앞서 만든 hello dashboard 선택 패널 만들기 대시보드에 패널 만들기 대시보드가 큰 틀이라면 패널은 그 안에 모듈처럼 들어가는 실제 그래프를 보여주는 컴포넌트이다. 오른쪽 상단의 Add panel 버튼(차트 모양) 선택 Add a new panel 메뉴 선택 패널의 정보를 입력할 수 있는 화면이 ..

Ch08. 마이크로미터, 프로메테우스, 그라파나 - 그라파나(설치, 연동)

설치 다운로드: https://grafana.com/grafana/download Download Grafana | Grafana Labs Overview of how to download and install different versions of Grafana on different operating systems. grafana.com Mac: https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.6.darwin-amd64.tar.gz 실행 ./bin/grafana-server http://localhost:3000/?orgId=1 접속해 확인해 보자 ID: admin / PW: admin 연동 그라파나는 프로메테우스를 통해서 데이터를 ..

Ch08. 마이크로미터, 프로메테우스, 그라파나 - 프로메테우스(기본 기능)

메트릭은 크게 보면 게이지와 카운터라는 2가지로 분류할 수 있다. 게이지(Gauge) 임의로 오르내일 수 있는 값 예) CPU 사용량, 메모리 사용량, 사용중인 커넥션 카운터(Counter) 단순하게 증가하는 단일 누적 값 예) HTTP 요청 수, 로그 발생 수 쉽게 이야기해서 게이지는 오르락내리락하는 값이고, 카운터는 특정 이벤트가 발생할 때 마다 그 수를 계속 누적하는 값이다. 게이지(Gauge) 게이지는 오르고 내리고 하는 값이다. 게이지는 현재 상태를 그대로 출력하면 된다. 예를 들어서 대표적인 게이지인 CPU 사용량( system_cpu_usage )을 생각해보자. CPU 사용량의 현재 상태를 계속 측정하고 그 값을 그대로 그래프에 출력하면 과거부터 지금까지의 CPU 사용량을 확인할 수 있다. ..

Ch05. Kafka Streams와 ksqlDB 개념 및 이해 - Kafka Streams, ksqlDB

Realtime Event Stream Processing 대용량의 이벤트 스트림 데이터를 실시간으로 분석 및 처리는 요구사항은 다양함 Database에 저장 후 분석 및 처리하는 것이 아니라, Kafka에 있는 움직이는 데이터(Data in Motion)를 바로 분석 및 처리하는 것이 핵심! Realtime Event Stream Processing 사례(센서에서 발생하는 데이터를 실시간으로 분석) 실시간 이벤트 스트림을 실시간으로 분석하여, 실시간으로 빠르게 대응하기 위한 기술 기존에 사용하던 Realtime Event Stream Processing 방법들(Apache Spark, Storm, Flink) Apache Spark UC 버클리대학교에서 개발(2009, 2010 BSD, 2013 ASF..

Ch05. Confluent Schema Registry 개념 및 이해 - Confluent Schema Registry

Schema(Data Structure) 데이터를 만들어내는 Producer와 데이터를 사용하는 Consumer 간의 계약으로 사용 스키마가 없으면 시간이 지남에 따라, 제어된 방식으로 데이터 구조를 발전시킬 수단이 없게 됨 데이터 구조는 항상 비즈니스에 따라서 진화하는데, 이것을 Schema Evolution(스키마 진화)라고 함 Schema Evolution 비즈니스가 변경되거나 더 많은 애플리케이션이 동일한 데이터를 활용하기를 원함에 따라 기존 데이터 구조가 진화할 필요성 발생 AVRO(Data Serialization System) Data를 Serialization을 제공하는 시스템 Avro는 Apache Open Source Software 프로젝트 Java를 포함한 많은 프로그래밍 언어에서 ..

Ch04. Apache Kafka Connect 개념 및 이해 - Single Message Transform(SMT), Converter

Connector 배포 Connector 배포 전의 모습 분산 워커 형태로 실행을 하게 되면, 아무것도 설정하지 않았기 때문에 아무 동작도 하지 않는다. Connector 배포를 위한 Configuration의 일부 JdbcSinkConnector를 연결을 해주어야지만 정상적으로 Connect가 연결이 된다. Connector 배포 Connector Task가 Source 시스템에서 데이터를 가져와서 Connect Record로 변환 Connector를 배포를 완료해야지만 위와 같이 Connect가 연결이 된다. Converter 설정 Key 와 Value를 Byte Array로 변환하기 위한 Converter를 각각 설정 converter는 기본적으로 schema.registry와 연결이 되어 있기 때..

Ch04. Apache Kafka Connect 개념 및 이해 - Apache Kafka Connect

System 간 메시지 전송 System 간 메시지 전송이 필요할 때마다 Application을 개발할 것인가? System 간 메시지 전송이 필요할 때, 이미 잘 만들어진 Kafka Connector를 손쉽게 사용 Data가 만들어지는 Source에서 카프카로 전달해 주는 SourceConnector, 카프카에서 Amazon, hadoop으로 data를 전달해 주는 SinkConnector를 사용하면, 매번 Application을 만들 필요 없다. Kafka Connect? Connector? Kafka Connect는 Apache Kafka 안팎으로 데이터를 스트리밍하기 위한 Framework Kafka Connect는 다른 데이터 시스템을 Kafka와 통합하는 과정을 표준화한 Framework 통합..

Ch08. 마이크로미터, 프로메테우스, 그라파나 - 프로메테우스(기본 기능)

이번에는 프로메테우스를 사용하는데 필요한 간단한 기능들을 알아보자. 검색창에 http_server_requests_seconds_count를 입력하고 실행해 보자 태그, 레이블: error , exception , instance , job , method , outcome , status , uri 는 각각의 메트릭 정보를 구분해서 사용하기 위한 태그이다. 마이크로미터에서는 이것을 태그(Tag)라 하고, 프로메테우스에서는 레이블(Label)이라 한다. 여기서는 둘을 구분하지 않고 사용하겠다. 숫자: 끝에 마지막에 보면 1 , 924 와 같은 숫자가 보인다. 이 숫자가 바로 해당 메트릭의 값이다. 기본 기능 Table Evaluation time 을 수정해서 과거 시간 조회 가능 Graph 메트릭을 그래..