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.setGauge
と prodserver.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.m
を test_metrics
というデプロイ可能なアーカイブにパッケージ化し、サーバーにデプロイします。
サーバーの作成と起動の詳細については、コマンド ラインを使用したサーバー インスタンスの作成 (MATLAB Production Server)およびStart Server Instance Using Command Line (MATLAB Production Server)を参照してください。
デプロイ可能なアーカイブの作成、およびサーバーへのデプロイの詳細については、MATLAB Production Server 用のデプロイ可能なアーカイブの作成 (MATLAB Production Server)およびMATLAB Production Server へのアーカイブのデプロイ (MATLAB Production Server)を参照してください。
サーバー上でのメトリクスの有効化
サーバーの構成ファイル main_config
を編集して、サーバー上でメトリクス サービスを有効にします。main_config
で、--enable-metrics
プロパティのコメントを解除します。変更を有効にするために、サーバーを再起動します。
デプロイした関数の実行
任意の言語を使用して、デプロイした関数を実行するクライアント アプリケーションを記述します。この例では、Windows® 端末で cURL コマンドを使用して、サーバーにリクエストを送信します。リクエストの作成の詳細については、MATLAB データ型の JSON 表現 (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
のメトリクス タイプはゲージであるため、デプロイされた関数を実行したり、メトリクス サービスをクエリしたりするたびにその値が増減します。
参考
prodserver.metrics.setGauge
| prodserver.metrics.incrementCounter
関連するトピック
- MATLAB 関数実行のための RESTful API (MATLAB Production Server)
- Metrics Service (MATLAB Production Server)
- GET Metrics (MATLAB Production Server)