HN 日本語サマリー

← 一覧へ戻る
インフラ・DevOps

PrometheusとGrafanaを使わない軽量Spring Bootモニタリング

Lightweight Spring Boot Monitoring Without Prometheus and Grafana (pvrlabs.xyz)

25 pointsby ejboy3 コメント

要約

PrometheusやGrafanaのようなフルスタックの監視システムを使わずに、Spring Bootアプリケーションの基本的な運用状況を把握するための軽量ツール「StatLite」を紹介します。StatLiteはSpring Boot Actuatorのエンドポイントを活用し、ヘルスチェック、リクエスト、エラー、レイテンシ、メモリ使用量、稼働時間、再起動などの重要な運用メトリクスに焦点を当てたダッシュボードを提供します。これは、小規模なデプロイメントや単一VPSでの運用に最適です。

全文翻訳

← 記事一覧へ PrometheusとGrafanaを使わない軽量Spring Bootモニタリング Ted Kupolov · 2026年7月19日 VPSで1つまたは数個のSpring Bootアプリケーションを実行している場合でも、基本的な運用上の可視性は必要です。アプリケーションが到達可能か、エラーが増加しているか、再起動したかを知る必要があります。これらの質問に答えるために、完全な監視プラットフォームは必要ないかもしれません。 Spring Boot Actuatorはすでにその情報の多くを公開しています。StatLiteはそれをヘルス、リクエスト、エラー、レイテンシ、メモリ、稼働時間、再起動に焦点を当てたダッシュボードに変えます。これは単一のGoバイナリとして実行され、履歴をSQLiteに保存します。フルスタックの監視システムを運用せずにSpring Bootを監視しましょう。 StatLiteをGitHubで見る インストール手順 通常の選択肢がなぜ必要以上に複雑になるのか ActuatorはSpring Bootアプリケーションに有用なヘルスおよびMicrometerメトリクスエンドポイントを提供します。これらは統合に優れていますが、JSONエンドポイントを繰り返し開くことは、日常的なダッシュボードとしては便利ではありません。 Spring Boot Adminは、より広範なアプリケーション管理機能を追加します。PrometheusとGrafanaは、より大きな監視システム、柔軟なクエリ、または多数の環境にわたる共有ダッシュボードが必要な場合に強力な選択肢です。1台のVPSで少数のサービスを運用する場合、より限定的なダッシュボードで十分な場合があります。 StatLiteは、すでに持っているActuatorデータを読み取り、日常的なチェックで最も役立つ運用シグナルを表示します。 小規模デプロイメントが必要とする質問 アプリケーションは到達可能で健全か? エラーは増加しているか? リクエストは遅くなっているか? メモリ使用量は増加しているか? アプリケーションは再起動したか? データベースなどの関連サービスは到達可能か? クイック比較 ツール | 運用複雑性 | 最適な用途 ---|---|--- 生のActuatorエンドポイント | 低 | 時折の手動チェック Spring Boot Admin | 中 | アプリケーション管理と監視 PrometheusとGrafana | 高 | 大規模デプロイメントと高度なオブザーバビリティ StatLite | 非常に低 | 小規模サーバー上の少数のSpring Bootサービス これらのツールは共存することも可能です。今日、限定的なダッシュボードのためにStatLiteを選択しても、将来的に要件が増加した場合にPrometheusとGrafanaを採用することを妨げるものではありません。 数分でStatLiteを設定する 以下の例では、StatLiteに含まれる実行可能なSpring Actuatorデモを使用します。 1. Spring Bootからヘルスとメトリクスを公開する アプリケーション設定に必要なActuatorエンドポイントの公開を追加します。デプロイメントで認証が必要な場合は、Actuatorを信頼できるネットワークからのみ到達可能にし、認証を追加してください。 ```yaml management: endpoints: web: exposure: include: health,metrics endpoint: health: show-details: always ``` 組み込みデモの場合、examples/spring-actuator-demoからアプリケーションを起動します。 ```bash mvn spring-boot:run ``` 2. StatLiteをインストールする StatLiteのインストールガイドで、お使いのプラットフォームのインストール方法を使用してください。リリースインストーラー、Homebrew、および各方法が何を設定し、何を設定しないかがカバーされています。 ソースからビルドすることを好む開発者は、リポジトリをクローンしてバイナリをビルドできます。 ```bash git clone https://github.com/PVRLabs/statlite.git cd statlite go build -o statlite ./cmd/statlite ``` 3. ターゲット設定を追加する ```yaml server: listen: "127.0.0.1:9090" storage: sqlite_path: "./statlite.sqlite" polling: interval: "10s" timeout: "5s" targets: - name: "spring-demo" actuator_base_url: "http://127.0.0.1:8080/actuator" ``` `listen` はデフォルトでダッシュボードをローカルに保ちます。`sqlite_path` はダッシュボード履歴に使用されるファイルです。`actuator_base_url` はアプリケーションのActuatorベースURLを指します。 Basic認証、複数のターゲット、保持期間、および本番環境のセキュリティの詳細については、設定ドキュメントを参照してください。 4. ダッシュボードを開く ```bash ./statlite --config ./statlite.yaml ``` ブラウザで http://127.0.0.1:9090 を開きます。 StatLiteは設定された間隔でポーリングするため、トラフィックを生成したりアプリケーションを再起動したりした後は、次のポーリングを待ってください。 組み込みデモに従っている場合は、StatLiteリポジトリのルートから別のターミナルでトラフィックを生成します。 ```bash ./examples/spring-actuator-demo/generate-traffic.sh ``` このスクリプトは、デモアプリケーションに成功したリクエスト、データベースリクエスト、遅いリクエスト、および400、404、500のエラーレスポンスを送信し、リクエストとエラーのチャートにアクティビティを表示します。 スクリプトを実行した後、StatLiteの次のポーリングを待ちます。 ダッシュボードが更新されているのが見えますか? StatLiteがあなたのセットアップに適している場合は、リポジトリをスターしてブックマークし、より多くのSpring Boot開発者が見つけられるようにしてください。 StatLiteをGitHubでスターする なぜStatLiteは小さく保たれるのか 単一のGoバイナリ SQLiteストレージ 監視エージェントなし Actuator以外のカスタムアプリケーションインストルメンテーションなし systemdデプロイメントに適している 1つの設定で複数のSpring Bootターゲット 意図的にActuatorファーストです。必要に応じてActuatorを有効化または公開します。StatLiteはそのセットアップ手順を省略しません。 StatLiteを使用しない場合 多数のサービスまたはホスト、長期的な保持期間、高度なメトリクス検索、アラートルーティング、分散トレーシング、集中ログ、または組織全体のダッシュボードが必要な場合は、より広範なオブザーバビリティプラットフォームを使用してください。 StatLiteはエンタープライズオブザーバビリティの代替ではありません。これは、フルスタックのPrometheusとGrafanaを運用せずに少数のSpring Bootサービスを監視するという運用上のタスクがある場合に、焦点を絞ったオプションです。 StatLiteで最初のSpring Bootアプリケーションを監視しましょう。 GitHubで見る インストールする 設定ドキュメント