Main Content

Prometheus のカスタム メトリクスの作成

この例では、MATLAB® Production Server™ のインスタンス上に Prometheus® のカスタム メトリクスを作成し、メトリクス サービスを使用してそれらを取得する方法を説明します。カスタム メトリクスは、デプロイした MATLAB 関数内で関数 prodserver.metrics.setGauge および prodserver.metrics.incrementCounter を使用して作成します。デプロイした関数の実行後に、Metrics Service (MATLAB Production Server)をクエリしてカスタム メトリクスを取得します。

この例では、コマンド ラインを使用して管理された http://localhost:9910 で実行中のオンプレミス サーバーがあると仮定しています。

MATLAB コードの記述によるカスタム メトリクスの作成

関数 proprodserver.metrics.setGauge および prodserver.metrics.incrementCounter を呼び出す MATLAB 関数を記述して、タイプがそれぞれゲージとカウンターの Prometheus メトリクスを作成します。proprodserver.metrics.setGaugeprodserver.metrics.incrementCounter は出力を返しません。

次の関数 test_metrics が作成しているのはメトリクスの例に過ぎません。実際には、MATLAB プログラマはサーバー管理者と相談しながら、デプロイ アプリケーションに関して、デプロイされる MATLAB コードの計測に役立つメトリクスを作成します。

function rc = test_metrics()
tic
prodserver.metrics.incrementCounter("test_function_execution_count",1)
toc
prodserver.metrics.setGauge("test_timer_seconds",toc)
rc = 0;
end

サーバーへの MATLAB 関数のデプロイ

関数 test_metrics.mtest_metrics というデプロイ可能なアーカイブにパッケージ化し、サーバーにデプロイします。

サーバーの作成と起動の詳細については、Create Server Instance Using Command Line (MATLAB Production Server)およびStart Server Instance Using Command Line (MATLAB Production Server)を参照してください。

デプロイ可能なアーカイブの作成、およびサーバーへのデプロイの詳細については、Create Deployable Archive for MATLAB Production Server (MATLAB Production Server)およびDeploy Archive to MATLAB Production Server (MATLAB Production Server)を参照してください。

サーバー上でのメトリクスの有効化

サーバーの構成ファイル main_config を編集して、サーバー上でメトリクス サービスを有効にします。main_config で、--enable-metrics プロパティのコメントを解除します。変更を有効にするために、サーバーを再起動します。

デプロイした関数の実行

任意の言語を使用して、デプロイした関数を実行するクライアント アプリケーションを記述します。この例では、Windows® 端末で cURL コマンドを使用して、サーバーにリクエストを送信します。要求の作成の詳細については、JSON Representation of MATLAB Data Types (MATLAB Production Server)を参照してください。

次のコマンドは、http://localhost:9910 で実行中のサーバーにデプロイされた関数 test_metrics を実行します。この関数を実行すると、test_function_execution_count メトリクスが 1 ずつインクリメントされ、test_timer_seconds メトリクスが可変の数値に設定されます。

curl -v -H Content-Type:application/json -d '{"nargout":0,"rhs":[]}' http://localhost:9910/test_metrics/test_metrics 

メトリクス サービスへのクエリによるカスタム メトリクスの取得

カスタム メトリクスは、デプロイされた MATLAB 関数をクライアントが呼び出した後に、サーバーに登録されます。メトリクスを取得するには、Web ブラウザーで次の URL にアクセスすることにより、GET Metrics (MATLAB Production Server) API を使用します。実際には、Prometheus サーバーが HTTP/HTTPS エンドポイントのメトリクスを収集します。

http://localhost:9910/api/metrics
メトリクス サービスの出力には、サーバーのメトリクスに関する情報が含まれます。また、test_function_execution_count および test_timer_seconds の各カスタム メトリクスと、メトリクスを生成するデプロイ可能なアーカイブの名前 test_metrics も含まれます。
# TYPE matlabprodserver_up_time_seconds counter
matlabprodserver_up_time_seconds 16705.3
# TYPE matlabprodserver_queue_time_seconds gauge
matlabprodserver_queue_time_seconds 0
# TYPE matlabprodserver_cpu_time_seconds counter
matlabprodserver_cpu_time_seconds 29.1406
# TYPE matlabprodserver_memory_working_set_bytes gauge
matlabprodserver_memory_working_set_bytes 5.17153e+08
# TYPE matlabprodserver_requests_accepted_total counter
matlabprodserver_requests_accepted_total 7
# TYPE matlabprodserver_requests_in_queue gauge
matlabprodserver_requests_in_queue 0
# TYPE matlabprodserver_requests_processing gauge
matlabprodserver_requests_processing 0
# TYPE matlabprodserver_requests_succeeded_total counter
matlabprodserver_requests_succeeded_total 7
# TYPE matlabprodserver_requests_failed_total counter
matlabprodserver_requests_failed_total 0
# TYPE matlabprodserver_requests_canceled_total counter
matlabprodserver_requests_canceled_total 0
# TYPE test_function_execution_count counter
test_function_execution_count{archive="test_metrics_2"} 1
# TYPE test_timer_seconds gauge
test_timer_seconds{archive="test_metrics_2"} 0.0194095

test_function_execution_count のメトリクス タイプはカウンターであるため、デプロイされた関数を実行したり、メトリクス サービスをクエリしたりするたびにその値が 1 ずつ増加します。test_timer_seconds のメトリクス タイプはゲージであるため、デプロイされた関数を実行したり、メトリクス サービスをクエリしたりするたびにその値が増減します。

参考

|

関連するトピック

外部の Web サイト