Pemantauan dan pengelogan yang berkesan dalam persekitaran pengkomputeran awan memerlukan: Pantau metrik utama menggunakan alatan seperti Prometheus, Jaeger dan Grafana serta sediakan makluman dan pemberitahuan untuk menjejaki kesihatan aplikasi. Gunakan rangka kerja pengelogan seperti Log4j atau Logback, gunakan tahap log yang munasabah dan gunakan MDC untuk menambah maklumat kontekstual. Contoh praktikal menunjukkan cara menggunakan Prometheus untuk memantau aplikasi Spring Boot, dan menggunakan Log4j dan Jaeger untuk log permintaan sistem yang diedarkan.
Dalam persekitaran pengkomputeran awan, pemantauan dan pengelogan adalah penting untuk memastikan kestabilan dan prestasi aplikasi. Panduan ini akan menunjukkan kepada anda cara menggunakan Java untuk pemantauan dan pengelogan yang berkesan, dan memberikan contoh praktikal.
Gunakan alatan pemantauan:
Kumpul metrik utama:
:
Konfigurasikan ambang dan pencetus, yang mencetuskan amaran apabila anomali berlaku.Log4j: Rangka kerja pengelogan Java popular yang menawarkan kebolehkonfigurasian dan kebolehskalaan yang tinggi.
error: kesilapan serius atau pengecualian
Gunakan MDC (Konteks Diagnostik Dipetakan) untuk menambah maklumat tambahan pada mesej log, seperti ID pengguna atau pengecam permintaan.
Gunakan Prometheus dan Grafana untuk memantau aplikasi 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!"; } }
Tambah pergantungan Prometheus dan konfigurasikan papan pemuka:
Lo<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>
Gunakan Log4j dan Jaeger untuk merekod permintaan daripada sistem yang diedarkan: # 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)
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>
Atas ialah kandungan terperinci Pengkomputeran Awan Java: Amalan Terbaik Pemantauan dan Pengelogan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!