inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Prometheus와 Grafana 설치

MSA 환경에서 Prometheus 궁금한 점이 있습니다.

454

도쿤x 토리

작성한 질문수 2

0

강의 잘보고 있습니다.

다름이 아니라 MSA 환경에서는 한 서비스가 여러 인스턴스로 올라가있는 경우가 있는데, prometheus.yml에서 해당 인스턴스를 다 지정해주지 않아도 괜찮을까요? 또한 spring cloud gateway에서 lb://ORDER-SERVICE 형태로 로드밸런싱 처리가 되어있는데, 그렇다면 프로메테우스에서 actuator로 가져오는 데이터가 여러 인스턴스 각각 가져오는게 아닌 로드밸런싱되는데로 데이터를 가져오게 되지않나요? 호기심에 질문해봅니다.

spring-boot jpa 아키텍처 spring-cloud kafka msa rabbitmq

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

MSA 환경에서 Prometheus를 활용한 모니터링에 대해 질문주셨군요. Prometheus는 개별 애플리케이션 인스턴스에서 메트릭스를 긁어오기(poll)를 기대합니다. Spring Boot는 /actuator/prometheus 엔드포인트를 통해 Prometheus 스크레이프에 적절한 포맷으로 메트릭스를 제공합니다. 기본적으로 이 엔드포인트는 노출되지 않으며 노출 설정이 필요합니다.

MSA 환경에서 여러 인스턴스가 있는 경우, Prometheus의 prometheus.yml 설정 파일에서 scrape_configs 섹션을 통해 관리하고자 하는 각 인스턴스의 주소를 명시할 수 있습니다. 이는 Prometheus가 그 인스턴스들을 개별적으로 스크레이프할 수 있게 해주며, 다음과 같은 예시가 있습니다:

scrape_configs:
- job_name: "spring"
  metrics_path: "/actuator/prometheus"
  static_configs:
  - targets: ["HOST:PORT"]

님의 질문처럼 Spring Cloud Gateway를 사용하여 서비스 인스턴스에 로드밸런싱을 적용한 경우, Prometheus는 로드밸런싱 된 주소를 통해 접근할 때 특정 인스턴스 대신 로드밸런서에 도달하게 됩니다. 이는 메트릭스를 수집하는 과정에서 여러 인스턴스로부터 데이터를 집계하지 않고, 로드밸런서에 연결된 특정 인스턴스의 데이터를 가져오게 만들 수 있습니다.

이러한 상황을 관리하기 위해, 각 서비스 인스턴스의 실제 주소를 targets에 명시하거나, Prometheus 경로의 로드밸런싱을 통해 각 인스턴스에 대한 메트릭스 수집을 보장하는 구성이 필요할 수 있습니다. 각 인스턴스가 동적으로 변화하고 스스로 등록 및 해제되는 경우와 같이 더 동적인 설정이 필요한 시나리오에서는, 서비스 디스커버리를 활용한 접근 방식을 고려할 수도 있습니다.

Prometheus 공식 문서Spring Boot Actuator 문서에서 더 자세한 구성 방법을 참조할 수 있습니다.

도움이 되었기를 바랍니다.

kafka 업데이트 강의 듣고 시포요

0

83

1

강의 교안

0

70

1

마이크로서비스간 통신 시, 인증 처리

0

79

1

api gateway 에서 인증 처리

0

63

1

섹션 19 질문드립니다

0

51

1

강의 자료 업데이트

0

81

1

부하분산 강의 섹션

0

56

1

강의자료는 어디에서?

0

69

1

강의 자료는 어디서 다운 받을 수 있나요?

0

109

1

전체 사용자 조회시 오류

0

57

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

108

2

학습 방향

0

94

2

카프카 커넥터 사용 목적 문의

0

85

2

kafka 강의

0

105

2

서비스 디스커버리 종류

0

86

2

강의 자료에 대해서 궁금해요

0

114

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

88

2

Kafka Source Connect 버전 에러

0

83

2

소스커넥터는 사용안한 거 맞죠?

0

80

2

강의자료 업데이트 문의

0

94

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

56

1

강의 업데이트 계획이 궁금합니다.

0

111

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

160

2

어떤 것이 업데이트 된 건가요?

0

162

2