クラウド コンピューティング環境で効果的な監視とログを作成するには、次のことが必要です。 Prometheus、Jaeger、Grafana などのツールを使用して主要なメトリクスを監視し、アプリケーションの健全性を追跡するためのアラートと通知を設定します。 Log4j や Logback などのログ フレームワークを採用し、適切なログ レベルを使用し、MDC を使用してコンテキスト情報を追加します。実践的な例では、Prometheus を使用して Spring Boot アプリケーションを監視する方法、および Log4j と Yeter を使用して分散システム要求をログに記録する方法を示します。
クラウド コンピューティング環境では、アプリケーションの安定性とパフォーマンスを確保するためにモニタリングとロギングが重要です。このガイドでは、Java を使用して効果的な監視とロギングを行う方法を説明し、実践的な例を示します。
モニタリングツールを使用します:
主要な指標を収集します:
アラートと通知を設定します:
適切なロギングフレームワークを選択してください:
適切なレベルを使用してください:
ログを使用するcontext:
1. 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!"; } }
Prometheus の依存関係を追加し、ダッシュボードを構成します:
<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)
2. 分散システムのログを記録する
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"; } }
Jaeger の依存関係を追加し、トレースを構成します:
<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 中国語 Web サイトの他の関連記事を参照してください。