このトピックでは、アプリケーションリアルタイム監視 (ARMS) のアプリケーション監視サブサービスで使用されるメトリクスについて説明します。これらのメトリクスを使用して、カスタム Grafana ダッシュボードを作成できます。
Managed Service for OpenTelemetry 経由で接続されているアプリケーションは、ビジネス メトリクスの表示と使用のみをサポートしています。 JVM やシステム メトリクスなどの他のメトリクスはサポートされていません。
ビジネス メトリクス
共通ディメンション
ディメンション名 | ディメンションキー |
サービス名 | service |
サービス PID | pid |
サーバー IP アドレス | serverIp |
インターフェース | rpc |
メトリクス
次の表は、すべてのアクセスタイプで使用可能なメトリクスを示しています。クエリ操作を実行するときは、$callType
を特定のアクセスタイプに置き換えるだけです。アクセスタイプの詳細については、「サービスアクセスタイプと使用可能なディメンション」セクションを参照してください。
たとえば、HTTP リクエストの数をクエリするには、arms_$callType_requests_count
を arms_http_requests_count
に変更するだけです。
メトリクスの説明 | メトリクス | 測定 | 収集間隔 (秒) | 単位 | ディメンション |
リクエスト数 | arms_$callType_requests_count | Gauge | 15 | なし | サービスアクセスタイプによってディメンションが異なります。詳細については、「サービスアクセスタイプと使用可能なディメンション」を参照してください。 |
失敗したリクエスト数 | arms_$callType_requests_error_count | Gauge | 15 | なし | |
リクエスト期間 | arms_$callType_requests_seconds | Gauge | 15 | 秒 | |
低速リクエスト数 | arms_$callType_requests_slow_count | Gauge | 15 | なし | |
リクエスト期間のクォンタイル | arms_$callType_requests_latency_seconds | Summary | 15 | 秒 | このメトリクスは、サービスアクセスタイプが HTTP で、クォンタイル統計が有効になっている場合にのみ使用されます。詳細については、「詳細設定」を参照してください。 クォンタイル値:
|
arms_$callType_requests_latency_seconds
メトリクス以外の上記のすべてのメトリクスは Gauge タイプです。ARMS が提供するこれらの Gauge メトリクスの 1 つについて、各ポイントの値は収集間隔内の累積合計を表しており、これはオープンソースアプリケーションフレームワークによって生成される Gauge メトリクスとは異なります。たとえば、1 分間の平均クエリ/秒 (QPS) を計算する場合、ARMS Gauge メトリクスの Prometheus クエリ言語 (PromQL) ステートメントは sum_over_time(arms_$callType_requests_count[1m])/60
であり、オープンソースアプリケーションフレームワークのメトリクスの場合は rate(http_server_requests_count[1m])
です。
集計メトリクス
さまざまな呼び出しタイプに対して、異なるビジネスメトリックが提供されます。ただし、HTTP や Dubbo など、複数の呼び出しタイプに関連するアプリケーションでは、PromQL ステートメントが長くなります。
ビジネスメトリックは、アプリケーションのあらゆる側面を監視するために使用されますが、これは一部のシナリオでは不要であり、メトリッククエリの負荷を増加させる可能性があります。
前述の問題を解決するために、ARMS は集約メトリクスを提供します。
カテゴリ
集計メトリックは、次のカテゴリに分類されます。
汎用
すべての呼び出しタイプの要求数、エラー数、低速要求数、および平均要求時間を監視します。
データベース
データベース呼び出しの要求数、エラー数、低速要求数、および平均要求時間を監視します。
SQL
SQLデータベース呼び出しを含む、データベース呼び出しの要求数、エラー数、低速要求数、および平均要求時間を監視します。
例外
すべての呼び出しタイプの例外について、要求数と平均要求時間を監視します。
ステータスコード
さまざまなHTTPステータスコードの要求数を監視します。
分位数
すべての呼び出しタイプの要求時間の分位数を監視します。
分位数以外の集約メトリックは、xxx_raw 形式の名前を持つ基本集約メトリックと、xxx_ign_x_y 形式の名前を持つ次元削減メトリックにさらに分類されます。次元削減メトリックの名前では、x と y は集約された次元です。
測定およびデータ収集間隔
特に指定のない限り、すべての集計メトリックは Gauge を使用し、データは 15 秒ごとに収集されます。
共通ディメンション
以下のディメンションは、すべての集計メトリックに適用されます。
ディメンション | 説明 |
pid | アプリケーションの PID。 |
service | アプリケーション名。 |
serverIp | サーバーの IP アドレス。 |
source | メトリックのソース。次のソースがサポートされています。
|
指標
カテゴリ | メトリクスの説明 | メトリック | 単位 | ディメンション |
汎用 | リクエスト数 | arms_app_requests_count_raw | なし |
|
arms_app_requests_count_ign_destid_endpoint_rpc | なし | destId、endpoint、およびrpcは除外されます。 | ||
arms_app_requests_count_ign_destid_endpoint_ppid_prpc | なし | destId、endpoint、ppid、およびprpcは除外されます。 | ||
arms_app_requests_count_ign_destid_endpoint_ppid_prpc_rpc | なし | destId、endpoint、ppid、prpc、およびrpcは除外されます。 | ||
arms_app_requests_count_ign_parent_ppid_prpc_rpc | なし | parent、ppid、prpc、およびrpcは除外されます。 | ||
arms_app_requests_count_ign_endpoint_parent_ppid_prpc_rpc | なし | endpoint、parent、ppid、prpc、およびrpcは除外されます。 | ||
リクエストエラー数 | arms_app_requests_error_count_raw | なし |
| |
arms_app_requests_error_count_ign_destid_endpoint_rpc | なし | destId、endpoint、およびrpcは除外されます。 | ||
arms_app_requests_error_count_ign_destid_endpoint_ppid_prpc | なし | destId、endpoint、ppid、およびprpcは除外されます。 | ||
arms_app_requests_error_count_ign_destid_endpoint_ppid_prpc_rpc | なし | destId、endpoint、ppid、prpc、およびrpcは除外されます。 | ||
arms_app_requests_error_count_ign_parent_ppid_prpc_rpc | なし | parent、ppid、prpc、およびrpcは除外されます。 | ||
arms_app_requests_error_count_ign_endpoint_parent_ppid_prpc_rpc | なし | endpoint、parent、ppid、prpc、およびrpcは除外されます。 | ||
低速リクエスト数 | arms_app_requests_slow_count_raw | なし |
| |
arms_app_requests_slow_count_ign_destid_endpoint_rpc | なし | destId、endpoint、およびrpcは除外されます。 | ||
arms_app_requests_slow_count_ign_destid_endpoint_ppid_prpc | なし | destId、endpoint、ppid、およびprpcは除外されます。 | ||
arms_app_requests_slow_count_ign_destid_endpoint_ppid_prpc_rpc | なし | destId、endpoint、ppid、prpc、およびrpcは除外されます。 | ||
arms_app_requests_slow_count_ign_parent_ppid_prpc_rpc | なし | parent、ppid、prpc、およびrpcは除外されます。 | ||
arms_app_requests_slow_count_ign_endpoint_parent_ppid_prpc_rpc | なし | endpoint、parent、ppid、prpc、およびrpcは除外されます。 | ||
リクエスト期間 | arms_app_requests_seconds_raw | 秒 |
| |
arms_app_requests_seconds_ign_destid_endpoint_rpc | 秒 | destId、endpoint、およびrpcは除外されます。 | ||
arms_app_requests_seconds_ign_destid_endpoint_ppid_prpc | 秒 | destId、endpoint、ppid、およびprpcは除外されます。 | ||
arms_app_requests_seconds_ign_destid_endpoint_ppid_prpc_rpc | 秒 | destId、endpoint、ppid、prpc、およびrpcは除外されます。 | ||
arms_app_requests_seconds_ign_parent_ppid_prpc_rpc | 秒 | parent、ppid、prpc、およびrpcは除外されます。 | ||
arms_app_requests_seconds_ign_endpoint_parent_ppid_prpc_rpc | 秒 | endpoint、parent、ppid、prpc、およびrpcは除外されます。 | ||
データベース | データベースリクエスト数 | arms_db_requests_count_raw | なし |
|
arms_db_requests_count_ign_rpc | なし | インターフェースディメンションは除外されます。 | ||
データベースリクエストエラー数 | arms_db_requests_error_count_raw | なし |
| |
arms_db_requests_error_count_ign_rpc | なし | インターフェースディメンションは除外されます。 | ||
低速データベースリクエスト数 | arms_db_requests_slow_count_raw | なし |
| |
arms_db_requests_slow_count_ign_rpc | なし | インターフェースディメンションは除外されます。 | ||
データベースリクエスト期間 | arms_db_requests_seconds_raw | 秒 |
| |
arms_db_requests_seconds_ign_rpc | 秒 | インターフェースディメンションは除外されます。 | ||
SQL | SQLリクエスト数 | arms_sql_requests_count_raw |
| |
arms_sql_requests_count_ign_rpc | インターフェースディメンションは除外されます。 | |||
SQLリクエストエラー数 | arms_sql_requests_error_count_raw | なし |
| |
arms_sql_requests_error_count_ign_rpc | なし | インターフェースディメンションは除外されます。 | ||
低速SQLリクエスト数 | arms_sql_requests_slow_count_raw | なし |
| |
arms_sql_requests_slow_count_ign_rpc | なし | インターフェースディメンションは除外されます。 | ||
SQLリクエスト期間 | arms_sql_requests_seconds_raw | 秒 |
| |
arms_sql_requests_seconds_ign_rpc | 秒 | インターフェースディメンションは除外されます。 | ||
例外 | 例外を含むリクエスト数 | arms_exception_requests_count_raw | なし |
|
arms_exception_requests_count_ign_rpc | なし | インターフェースディメンションは除外されます。 | ||
例外を含むリクエストの期間 | arms_exception_requests_seconds_raw | 秒 |
| |
arms_exception_requests_seconds_ign_rpc | 秒 | インターフェースディメンションは除外されます。 | ||
ステータスコード | 異なるステータスコードのリクエスト数 | arms_requests_by_status_count_raw | なし |
|
arms_requests_by_status_count_ign_rpc | なし | インターフェースディメンションは除外されます。 | ||
分位数 | リクエスト期間の分位数 説明 ARMSエージェントv4.X以降がこのメトリックをサポートしています。 | arms_uni_requests_latency_seconds |
|
例
アプリケーションのすべてのインターフェースのリクエスト数を監視およびクエリするために promQL を使用する場合、どのようにメトリックを選択すればよいですか?
まず、インターフェースリクエスト数を監視できるのは汎用メトリクスのみであるため、メトリクスを汎用メトリクスに絞り込みます。
次に、アップストリームインターフェース、アップストリームアプリケーション、リモートアドレスなどの他のディメンションではなく、インターフェースディメンションを含むメトリクスを選択します。
要約すると、最適なメトリックはarms_app_requests_count_ign_destid_endpoint_ppid_prpcです。
JVM メトリック
共通ディメンション
ディメンション名 | ディメンションキー |
サービス名 | service |
サービス PID | pid |
サーバー IP アドレス | serverIp |
メトリック
メトリックの説明 | メトリック | 測定方法 | 収集間隔 (秒) | 単位 | ディメンション |
累積 GC 発生回数 | arms_jvm_gc_total | カウンター | 15 | なし | GC 世代:
|
累積 GC 時間 | arms_jvm_gc_seconds_total | カウンター | 15 | 秒 | |
2 つの収集間隔間の GC 発生回数 | arms_jvm_gc_delta | ゲージ | 15 | なし | |
2 つの収集間隔間の GC 時間 | arms_jvm_gc_seconds_delta | ゲージ | 15 | 秒 | |
JVM スレッド数 | arms_jvm_threads_count | ゲージ | 15 | なし | スレッドの状態:
|
JVM メモリ領域の初期サイズ | arms_jvm_mem_init_bytes | ゲージ | 15 | バイト | 領域:
ID 空間:
|
JVM メモリ領域の最大サイズ | arms_jvm_mem_max_bytes | ゲージ | 15 | バイト | |
JVM メモリ領域の使用サイズ | arms_jvm_mem_used_bytes | ゲージ | 15 | バイト | |
JVM メモリ領域のコミット済みサイズ | arms_jvm_mem_committed_bytes | ゲージ | 15 | バイト | |
JVM メモリ領域の使用率 | arms_jvm_mem_usage_ratio | ゲージ | 15 | 比率 (0 から 1) | |
ロードされた JVM クラス | arms_class_load_loaded | カウンター | 15 | なし | なし |
アンロードされた JVM クラス | arms_class_load_un_loaded | カウンター | 15 | なし | なし |
JVM キャッシュプールサイズ | arms_jvm_buffer_pool_total_bytes | ゲージ | 15 | バイト | ID 空間:
|
JVM キャッシュプールの使用サイズ | arms_jvm_buffer_pool_used_bytes | ゲージ | 15 | バイト | |
JVM キャッシュプール数 | arms_jvm_buffer_pool_count | ゲージ | 15 | なし | |
開いているファイル記述子の数 | arms_file_desc_open_count | ゲージ | 15 | なし | なし |
ファイル記述子のオープン比率 (開いているファイル記述子の数 / 許可される最大数) | arms_file_desc_open_ratio | ゲージ | 15 | 比率 (0 から 1) | なし |
システムメトリクス
共通ディメンション
ディメンション名 | ディメンションキー |
サービス名 | service |
サービス PID | pid |
サーバー IP アドレス | serverIp |
メトリクス
メトリクスの説明 | メトリクス | 測定 | 収集間隔 (秒) | 単位 |
アイドル CPU の割合 | arms_system_cpu_idle | Gauge | 15 | パーセント |
I/O 待機 CPU の割合 | arms_system_cpu_io_wait | Gauge | 15 | パーセント |
システム CPU の割合 | arms_system_cpu_system | Gauge | 15 | パーセント |
ユーザー CPU の割合 | arms_system_cpu_user | Gauge | 15 | パーセント |
システム負荷 (1 分) | arms_system_load | Gauge | 15 | なし |
空きディスク容量 | arms_system_disk_free_bytes | Gauge | 15 | バイト |
ディスク容量合計 | arms_system_disk_total_bytes | Gauge | 15 | バイト |
ディスク使用率 | arms_system_disk_used_ratio | Gauge | 15 | 比率 (0 から 1) |
メモリバッファーサイズ | arms_system_mem_buffers_bytes | Gauge | 15 | バイト |
メモリキャッシュサイズ | arms_system_mem_cached_bytes | Gauge | 15 | バイト |
空きメモリサイズ | arms_system_mem_free_bytes | Gauge | 15 | バイト |
空きメモリ スワップサイズ | arms_system_mem_swap_free_bytes | Gauge | 15 | バイト |
メモリ スワップサイズ | arms_system_mem_swap_total_bytes | Gauge | 15 | バイト |
メモリサイズ | arms_system_mem_total_bytes | Gauge | 15 | バイト |
使用済みメモリサイズ | arms_system_mem_used_bytes | Gauge | 15 | バイト |
受信ネットワークトラフィック | arms_system_net_in_bytes | Gauge | 15 | バイト |
送信ネットワークトラフィック | arms_system_net_out_bytes | Gauge | 15 | バイト |
ネットワーク入力エラー数 | arms_system_net_in_err | Gauge | 15 | なし |
ネットワーク出力エラー数 | arms_system_net_out_err | Gauge | 15 | なし |
スレッドプールと接続プールのメトリクス
共通ディメンション
ディメンション名 | ディメンションキー |
サービス名 | service |
サービスPID | pid |
サーバーIPアドレス | serverIp |
スレッドプール名 (V4.1.xより前のARMSエージェント) | name |
スレッドプールタイプ (V4.1.xより前のARMSエージェント) | type |
メトリクス
ARMSエージェント V4.1.x以降
スレッドプールメトリクス
メトリクスの説明 | メトリック | 測定 | 収集間隔(秒) | ディメンション |
コア・スレッド数 | arms_thread_pool_core_pool_size | Gauge | 15 |
|
最大アイドル接続数 | arms_thread_pool_max_pool_size | Gauge | 15 |
|
アクティブスレッド数 | arms_thread_pool_active_thread_count | Gauge | 15 |
|
現在のスレッド数 | arms_thread_pool_current_thread_count | Gauge | 15 |
|
履歴上の最大スレッド数 | arms_thread_pool_max_thread_count | Gauge | 15 |
|
スケジュールされたタスクの数 | arms_thread_pool_scheduled_task_count | Counter | 15 |
|
完了したタスクの数 | arms_thread_pool_completed_task_count | Counter | 15 |
|
拒否されたタスクの数 | arms_thread_pool_rejected_task_count | Counter | 15 |
|
タスクキューサイズ | arms_thread_pool_queue_size | Gauge | 15 |
|
接続プールメトリクス
メトリクスの説明 | メトリック | 測定 | 収集間隔(秒) | ディメンション |
接続数 | arms_connection_pool_connection_count | Gauge | 15 |
|
最小アイドル接続数 | arms_connection_pool_connection_min_idle_count | Gauge | 15 |
|
最大アイドル接続数 | arms_connection_pool_connection_max_idle_count | Gauge | 15 |
|
最大接続数 | arms_connection_pool_connection_max_count | Gauge | 15 |
|
ブロックされた接続リクエストの数 | arms_connection_pool_pending_request_count | Counter | 15 |
|
V4.1.xより前のARMSエージェント
メトリクスの説明 | メトリック | 測定 | 収集間隔(秒) | ディメンション |
コア・スレッド数 | arms_threadpool_core_size | Gauge | 15 | なし |
最大スレッド数 | arms_threadpool_max_size | Gauge | 15 | なし |
アクティブスレッド数 | arms_threadpool_active_size | Gauge | 15 | なし |
スレッドプールキューサイズ | arms_threadpool_queue_size | Gauge | 15 | なし |
現在のスレッドプールサイズ | arms_threadpool_current_size | Gauge | 15 | なし |
スレッドプール内のさまざまな状態のタスクの数 | arms_threadpool_task_total | Gauge | 15 | タスクの状態。有効な値:
|
スケジュールされたタスクのメトリック
以下のメトリックは、スケジュールされたタスクでのみ使用できます。
共通ディメンション
ディメンション名 | ディメンションキー |
サービス名 | service |
サービス PID | pid |
サーバー IP アドレス | serverIp |
タスク ID | rpc |
メトリック
メトリックの説明 | メトリック | 測定 | 収集間隔 (秒) | 単位 |
スケジューリング遅延 | arms_$callType_delay_milliseconds | ゲージ | 15 | ミリ秒 |
サービスアクセスタイプと使用可能なディメンション
クライアント
アクセスタイプ
http_client
dubbo_client
hsf_client
dsf_client
notify_client
grpc_client
thrift_client
sofa_client
mq_client
kafka_client
ディメンション
parent: アップストリームサービスの名前
ppid: アップストリームサービスのPID
destId: リクエストピアの拡張情報
endpoint: リクエストピアのエンドポイント
excepType: 例外のID
excepInfo: 例外のIDエンコーディングルール
excepName: 例外の名前
stackTraceId: 例外スタックのID
データベース
アクセスタイプ
mysql
oracle
mariadb
postgresql
ppas
sqlserver
mongodb
dmdb
ディメンション
parent: アップストリームサービスの名前
ppid: アップストリームサービスのPID
destId: データベースの名前
endpoint: データベースのエンドポイント
excepType: 例外のID
excepInfo: 例外のIDエンコーディングルール
excepName: 例外の名前
stackTraceId: 例外スタックのID
sqlId: SQLステートメントのID
サーバー
アクセスタイプ
http
dubbo
hsf
dsf
user_method
mq
kafka
grpc
thrift
sofa
ディメンション
prpc: アップストリームインターフェース
parent: アップストリームサービスの名前
ppid: アップストリームサービスのPID
endpoint: サービスのエンドポイント
excepType: 例外のID
excepInfo: 例外のIDエンコーディングルール
excepName: 例外の名前
stackTraceId: 例外スタックのID
スケジュールされたタスク
アクセスタイプ
xxl_job
spring_scheduled
quartz
elasticjob
jdk_timer
schedulerx
ディメンション
prpc: アップストリームインターフェース
parent: アップストリームサービスの名前
ppid: アップストリームサービスのPID
excepType: 例外のID
excepInfo: 例外のIDエンコーディングルール
excepName: 例外の名前
stackTraceId: 例外スタックのID