Prometheus 및 Grafana 통합
Prometheus가 Kafka와 Spring Boot 앱의 메트릭을 수집하도록 설정한 다음 Grafana 대시보드를 사용해 시각화합니다.
Prometheus 및 Grafana 통합은(는) CoddyKit의 무료 Advanced Spring Boot 4: Event-Driven Architecture (Kafka) 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Advanced Spring Boot 4: Event-Driven Architecture (Kafka) 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Advanced Spring Boot 4: Event-Driven Architecture (Kafka) 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
Why Monitor with P&G?
In modern systems, understanding what your applications and infrastructure are doing is critical. This is where monitoring comes in!
We'll explore how Prometheus and Grafana form a powerful duo for observing your Spring Boot Kafka applications and the Kafka cluster itself.
Introducing Prometheus
Prometheus is an open-source monitoring system that collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts.
- It uses a pull model: Prometheus scrapes (pulls) metrics from your services.
- It stores data as time-series data, making it excellent for tracking changes over time.
Spring Boot & Micrometer
Spring Boot applications can expose metrics using Actuator, Spring's production-ready features. Micrometer is an instrumentation library that Actuator uses to provide a vendor-neutral metrics facade.
This allows you to export metrics to various monitoring systems, including Prometheus, with minimal code changes.
Enabling Prometheus Endpoint
To make your Spring Boot app's metrics available for Prometheus, you need to add dependencies and configure Actuator.
First, add spring-boot-starter-actuator and micrometer-registry-prometheus to your pom.xml.
Then, enable the Prometheus endpoint in application.properties:
management.endpoints.web.exposure.include=health,info,prometheusThis exposes metrics at /actuator/prometheus.
management.endpoints.web.exposure.include=health,info,prometheusYour First Metric
This minimal Spring Boot application demonstrates how to expose a custom counter. When you hit the /hello endpoint, the app.hello.requests counter increments, which Prometheus can then scrape.
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.Metrics;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class MetricsApp {
private final Counter helloCounter =
Metrics.counter("app.hello.requests");
public static void main(String[] args) {
SpringApplication.run(MetricsApp.class, args);
}
@GetMapping("/hello")
public String hello() {
helloCounter.increment();
return "Hello CoddyKit!";
}
}Kafka Metrics with Exporter
Kafka brokers don't natively expose metrics in a Prometheus-friendly format. We use a separate component called Kafka Exporter.
Kafka Exporter is a lightweight service that scrapes JMX metrics from Kafka brokers and re-exposes them in a format that Prometheus can easily consume.
Prometheus Scrape Config
Prometheus needs to know where to find your metrics. You configure scrape targets in its prometheus.yml file. Here's an example:
scrape_configs:
- job_name: 'spring-boot-app'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8080']
- job_name: 'kafka-exporter'
static_configs:
- targets: ['localhost:9308'] # Kafka Exporter portIntroducing Grafana
Grafana is an open-source platform for monitoring and observability. It allows you to query, visualize, alert on, and understand your metrics no matter where they are stored.
Think of it as the display panel for all the data Prometheus collects. It uses dashboards with various panels to present metrics in an easy-to-understand way.
Grafana Data Sources
Before visualizing, Grafana needs to connect to a data source. Here, Prometheus will be our data source.
In Grafana's UI, navigate to "Connections" -> "Data sources" -> "Add new data source". Select "Prometheus" and configure its URL (e.g., http://localhost:9090, Prometheus' default port).
Creating a Dashboard
With Prometheus connected, you can start building dashboards.
- Create a new dashboard and add a panel.
- Select Prometheus as the data source.
- Write a PromQL query (Prometheus Query Language) to select your metric, e.g.,
app_hello_requests_totalfor our Spring Boot app. - Choose a visualization type like "Graph" or "Stat".
This brings your metrics to life!
Prometheus & Grafana Check
You've learned how Prometheus scrapes metrics and Grafana visualizes them. What is the primary role of Kafka Exporter in this monitoring setup?
Recap: P&G Power
Great job! You've learned how to integrate Prometheus and Grafana into your monitoring strategy for Spring Boot Kafka applications and Kafka itself.
- Prometheus scrapes metrics from endpoints.
- Micrometer/Actuator expose Spring Boot metrics.
- Kafka Exporter makes Kafka broker metrics available.
- Grafana visualizes these collected metrics.
This powerful combination provides deep insights into your system's health and performance!
AI 튜터와 함께 Advanced Spring Boot 4: Event-Driven Architecture (Kafka)을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 12
- 레슨
- 48
자주 묻는 질문
“Prometheus 및 Grafana 통합” 강의는 무료인가요?
네 — “Prometheus 및 Grafana 통합” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Advanced Spring Boot 4: Event-Driven Architecture (Kafka) 강의 전체를 잠금 해제할 수 있습니다. Advanced Spring Boot 4: Event-Driven Architecture (Kafka) 강의에는 총 4개의 강의가 포함되어 있습니다.
“Prometheus 및 Grafana 통합”에서 뭘 배우나요?
Prometheus가 Kafka와 Spring Boot 앱의 메트릭을 수집하도록 설정한 다음 Grafana 대시보드를 사용해 시각화합니다. 브라우저에서 직접 실행하는 실습 코드로 Advanced Spring Boot 4: Event-Driven Architecture (Kafka)을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Advanced Spring Boot 4: Event-Driven Architecture (Kafka)을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Advanced Spring Boot 4: Event-Driven Architecture (Kafka)은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“Prometheus 및 Grafana 통합” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Advanced Spring Boot 4: Event-Driven Architecture (Kafka) 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Advanced Spring Boot 4: Event-Driven Architecture (Kafka) 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Kafka 메트릭(JMX) 및 상태 점검
- Prometheus 및 Grafana 통합
- Sleuth/Zipkin을 활용한 분산 추적
- 소비자 지연 모니터링과 경고 설정