인프런 커뮤니티 질문&답변

응애 나 아기 개발자님의 프로필 이미지
응애 나 아기 개발자

작성한 질문수

실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}

6.3.외부(Harbor)에서 발생하는 메트릭을 쿠버네티스 내부에 있는 프로메테우스에 저장하기

habor metric 노출 관련 질문

작성

·

47

0

image.png

위 링크에 접속할 때 metric을 확인할 수 있었지만, 도대체 어떤 요소가 habor에 대한 metric을 노출 시켜주는지 이해가 가질 않습니다. 또한 꼭 harbor가 아니더라도 웹을 배포하고 url 뒤에 /metrics를 붙이면 메트릭을 확인할 수 있는것인가요?

답변 2

0

조훈(Hoon Jo)님의 프로필 이미지
조훈(Hoon Jo)
지식공유자

안녕하세요

좋은 질문에 감사드립니다.

우선 하버와 같은 애플리케이션은 이미 exporter를 내장하고 있습니다.

https://goharbor.io/docs/2.2.0/administration/metrics/#harbor-exporter-metrics

그에 따라서 위와 같은 주소에 접근하면 노출되어 있는 Metrics을 확인하실 수 있는 것입니다.

 

그리고 언급해 주신 것처럼 하버가 아니더라도 exporter를 내장하고 있는 애플리케이션들은

주소:특정포트/metrics 를 입력하시면 노출되는 메트릭을 확인할 수 있습니다.

해당 포트와 설정들은 각 설정에서 확인하시어 적용 가능합니다.

다음의 경로를 순서대로 따라가면 저런 정보가 나오며,

오픈 소스의 특성상 모두 다 표현하는 방법은 정해져 있지 않습니다.

https://prometheus.io/docs/instrumenting/exporters/

https://github.com/qonto/prometheus-rds-exporter?tab=readme-ov-file

https://github.com/qonto/prometheus-rds-exporter/blob/main/configs/prometheus-rds-exporter/prometheus-rds-exporter.yaml#L11-L15

# Path under which to expose metrics
# metrics-path: /metrics

# Address to listen on for web interface
# listen-address: ":9043"

 

만약에 애플리케이션에 포함되어 있지 않은 경우에는 sidecar등을 사용해서 필요한 내용을 가공해서(Exporter의 역할) metrics을 노출할 수도 있습니다.

해당 부분은 4.5 에서 다뤘고, 8.4에서도 다시 다룹니다.

 

전체적으로 보시기를 원하신다면 ch4 프로메테우스 익스포터(Exporter) 와 그리고 보강A의 A.003.프로메테우스의 메트릭 생성 과정(리레이블,relabel)

를 보시면 도움이 되실 것 같습니다.

 

0

안녕하세요, 인프런 AI 인턴입니다. 응애 나 아기 개발자님.

질문해주신 하버(Harbor) 메트릭 수집에 대한 부분과 왜 URL 뒤에 /metrics를 붙여서 메트릭을 확인할 수 있는지 이해를 돕기 위해 관련 답변을 드리겠습니다.

Prometheus와 Metrics

먼저, Prometheus는 메트릭 데이터를 수집하고 저장하는 모니터링 시스템입니다. 애플리케이션 또는 서버가 메트릭을 제공하는 엔드포인트를 만들어야 Prometheus가 해당 메트릭을 수집할 수 있습니다.

Harbor Metrics Configuration

Harbor에서 메트릭을 노출시키기 위해서는 다음과 같은 설정이 필요합니다:
1. Harbor의 메트릭 기능을 활성화해야 합니다.
2. 설정 파일에 메트릭 엔드포인트를 설정합니다.

이와 관련된 유사한 질문이 올라온 적이 있어 관련 URL을 공유드립니다:
- Harbor 메트릭 등록 관련 질문
- Spring Boot Actuator 메트릭 관련 질문

위의 질문에서 다룬 내용과 같이, 메트릭을 제공하는 서버나 애플리케이션은 /metrics 엔드포인트를 통해 메트릭 데이터를 노출합니다. 이는 표준적인 방법으로, 아래와 같은 이유로 /metrics 경로를 자주 사용합니다.
- 표준화: Prometheus 및 대부분의 모니터링 시스템은 기본적으로 /metrics 경로를 사용하여 메트릭을 수집합니다.
- 편리성: /metrics 경로를 통해 손쉽게 모든 메트릭 데이터를 확인할 수 있습니다.

웹 애플리케이션에서의 Metrics 수집

Harbor뿐만 아니라 대부분의 웹 애플리케이션은 특정 설정을 통해 /metrics 엔드포인트를 설정할 수 있습니다. 예를 들어, Spring Boot 애플리케이션에서는 Actuator 라이브러리를 사용하여 /actuator/prometheus 경로에서 메트릭을 노출합니다.

따라서, 단순히 URL 뒤에 /metrics를 추가한다고 해서 모든 웹 애플리케이션에서 메트릭을 확인할 수 있는 것은 아니며, 각 애플리케이션의 설정과 구조에 따라 다릅니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

응애 나 아기 개발자님의 프로필 이미지
응애 나 아기 개발자

작성한 질문수

질문하기