今日の分散システムとマイクロサービスの世界では、アプリケーションが監視可能で監視可能であることを保証することは、コア機能を構築するのと同じくらい重要です。 NGINX ロード バランサー、レート リミッター、サーキット ブレーカーなどの重要な機能はすでに設定済みです。次のステップは 可観測性と監視.
このブログ投稿では、Spring Boot Actuator、Prometheus、および Grafana をアプリケーションに追加して堅牢な可観測性を構築する方法を説明します。スタック。これにより、アプリケーションの状態を視覚化し、パフォーマンス指標を追跡し、問題を迅速かつ効率的にトラブルシューティングすることができます。
メトリクスとログに焦点を当てることで、アプリケーションのパフォーマンスと信頼性を維持する強力なダッシュボードとアラートを構築できます。
理由や、負荷の下でシステムがどのように動作するかについては教えてくれません。 Actuator、Prometheus、Grafana などの可観測性ツールは次のことを行います。
<dependency> <groupId>io.github.resilience4j</groupId> <artifactId>resilience4j-micrometer</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.14.1</version> </dependency>
resilience4j.circuitbreaker.metrics.enabled=true management.health.circuitbreakers.enabled=true management.endpoints.web.exposure.include=health,metrics,circuitbreakers,prometheus management.endpoint.health.show-details=always management.endpoint.health.access=unrestricted management.endpoint.prometheus.access=unrestricted management.prometheus.metrics.export.enabled=true
この行はアクチュエーターからの URI を公開しているので、次のような URI を使用できます:
docker-compose.yaml ファイルで、prometheus 用のサービスを作成します。
<dependency> <groupId>io.github.resilience4j</groupId> <artifactId>resilience4j-micrometer</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.14.1</version> </dependency>
プロジェクトのルートに prometheusand というフォルダーを作成し、その中に prometheus.yaml というファイルを作成します
resilience4j.circuitbreaker.metrics.enabled=true management.health.circuitbreakers.enabled=true management.endpoints.web.exposure.include=health,metrics,circuitbreakers,prometheus management.endpoint.health.show-details=always management.endpoint.health.access=unrestricted management.endpoint.prometheus.access=unrestricted management.prometheus.metrics.export.enabled=true
次に、実行すると:
prometheus: image: prom/prometheus:latest ports: - "9090:9090" networks: - app_network volumes: - ./prometheus/prometheus.yaml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus
prometheus コンテナが起動し、URI アクチュエータからのメトリクス/spring-boot-servers からのメトリクスを消費します。
http://localhost:9090/ にダッシュボードが表示されます。例:
しかし、これはクールではありません。いくつかのグラフを見たいので、Grafana を使用します。
別のサービスを使用して docker compose ファイルを更新します:
global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'spring-boot-app' metrics_path: '/actuator/prometheus' static_configs: - targets: - 'spring-server-1:8080' - 'spring-server-2:8080' labels: environment: development application: spring-boot
http://localhost:3000 の grafana ダッシュボードにアクセスできるようになりました
最初に資格情報を尋ねられます。ユーザーとパスワードには「admin」と入力するだけです。
左上のメニューで、[接続] > [接続] に移動します。新しい接続を追加し、Prometheus
を検索します接続 URL を次のように構成します:
「保存してテスト」ボタンをクリックします。すべて問題がなければ、ダッシュボードの選択を開始できます。
Grafana ダッシュボードに移動し、適切なダッシュボードを選択します。
このために、Spring Boot Resilience4j Circuit Breaker (3.x) を選択します
すべてが正常に動作すると、次のような内容が表示されます:
他のダッシュボードも自由に閲覧してください。
Actuator、Prometheus、および Grafana をアプリケーションに統合することにより、高度に観察可能なシステムの構築に向けて大きな一歩を踏み出しました。メトリクス、ロギング、モニタリングを導入すると、次のことが可能になります。
これらのツールを導入することで、システムを効果的に監視するだけでなく、将来的に自信を持って拡張するための基盤を築くことができます。
以上がActuator、Prometheus、Grafana を使用して最新のアプリケーションの可観測性と監視を構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。