本番アプリケーションの構築に Akka/Scala もよく使用するため、コードでのプロファイリング/メトリックについて考えていましたが、アプリケーションが正常であることを確認する別の方法についても知りたいと思っています。
- メトリクス (Dropwizard など)
Graphite、Ganglia、Logbackなどの優れたドキュメントと組み込みサポートを備えた、コードでメトリックを収集するための非常に優れたツール.
ゲージ、カウンター ヒストグラム、タイミングなどのアプリ内統計を収集するための詳細なツールがあります - アプリの現在の状態、作成されたアクターの数などを把握するための情報、アクターが生きているかどうか、現在の状態は何か出演者など多数。
プロファイリングとは少し異なりますが、特に char 構築ツールと統合されている場合は、問題の根源を見つけるのに大いに役立ちます。
- (VisualVM、XRebel) のようなプロファイラー
私は監視をするのがとても楽しいので、それはまだ少し異なる質問に答えます - 私のアプリケーションの現在の洞察は何ですか? しかし、私たちを悩ませる可能性のある別の問題があります - 私のコードのどの部分が遅い (またはずさんな) のでしょうか?
そのため、VisualVM と、この質問に対する別の回答があります。それは、VisualVM を使用して Akka アクターをプロファイリングする方法です。
また、XRebelプロファイラーを試してみることをお勧めします。このプロファイラーは、アプリを遅くするコードを特定するプロセスにもう少し火力を追加するだけです。これも有料ですが、私のプロジェクトでは、ずさんなコードを扱う時間を大幅に節約できました。
- ニューレリック
いくつかの監視/プロファイリング ソリューションを無料で入手できるため、一部のプレイグラウンド プロジェクトではこれをお勧めしますが、より深刻なプロジェクトでは、上記で強調したことを使用します。
私の概要がお役に立てば幸いです。