在雲端運算環境中有效監控和日誌記錄需要:使用 Prometheus、Jaeger 和 Grafana 等工具監控關鍵指標,並設定警報和通知以追蹤應用程式健康狀況。採用 Log4j 或 Logback 等日誌框架,使用合理日誌級別,並利用 MDC 新增上下文資訊。實戰案例展示如何使用 Prometheus 監控 Spring Boot 應用程序,以及使用 Log4j 和 Jaeger 記錄分散式系統請求。
在雲端運算環境中,監控和日誌記錄對於確保應用程式的穩定性和性能至關重要。本指南將展示如何使用 Java 進行有效監控和日誌記錄,並提供實戰案例。
使用監控工具:
收集關鍵指標:
設定警報和通知:
選擇適當的日誌框架:
使用合理等級:
使用日誌上下文:
一、監控Spring Boot 應用程式
使用Prometheus 和Grafana 監控Spring Boot 應用程式:import io.micrometer.core.annotation.Timed; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class MyController { @Timed @GetMapping("/") public String home() { return "Hello, world!"; } }
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
# Grafana dashboard configuration dashboardSections: - title: My App Monitoring panels: - title: Request Latency type: graph datasource: Prometheus targets: - expr: histogram_quantile(0.99, sum(rate(http_server_requests_seconds_bucket[5m]))) legend: Latency (99th percentile)
二、日誌記錄分散式系統
使用Log4j 和Jaeger 記錄分散式系統的請求:import io.jaegertracing.Configuration; import io.jaegertracing.ScopeManager; import io.jaegertracing.internal.samplers.ConstSampler; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DistributedController { private static final Logger logger = LogManager.getLogger(); // Configure Jaeger tracer static { Configuration config = new Configuration("my-app") .withSampler(new ConstSampler(true)) .withScopeManager(new ScopeManager()); Tracer tracer = config.getTracer(); } @GetMapping("/distributed") public String distributed() { Span span = Tracer.currentSpan(); logger.info("Span ID: {}", span.getSpanId()); return "Distributed request"; } }
<dependency> <groupId>io.jaegertracing</groupId> <artifactId>jaeger-spring-boot-starter</artifactId> </dependency>
# Jaeger configuration spring.sleuth.exporter=jaeger spring.sleuth.jaeger.sampler.param=true
以上是Java雲端運算:監控與日誌記錄最佳實踐的詳細內容。更多資訊請關注PHP中文網其他相關文章!