メトリクス操作

libuvは、イベントループの各種内部操作を追跡するためのメトリクスAPIを提供します。

データ型

type uv_metrics_t

イベントループのメトリクスを格納する構造体です。メトリクスカウンターの不整合を避けるため、次のコールバック内でこれらのメトリクスを取得することを推奨します: uv_prepare_cb。

typedef struct {
    uint64_t loop_count;
    uint64_t events;
    uint64_t events_waiting;
    /* private */
    uint64_t* reserved[13];
} uv_metrics_t;

公開メンバー

uint64_t uv_metrics_t.loop_count

イベントループの反復回数です。

uint64_t uv_metrics_t.events

イベントハンドラーが処理したイベントの数です。

uint64_t uv_metrics_t.events_waiting

イベントプロバイダーを呼び出した時点で、処理を待っていたイベントの数です。

API

uint64_t uv_metrics_idle_time(uv_loop_t *loop)

イベントループがカーネルのイベントプロバイダー(例: epoll_wait)内でアイドル状態だった時間を取得します。この呼び出しはスレッドセーフです。

返す値は、次の型のイベントループ、uv_loop_tでアイドル時間の収集を設定してから、カーネルのイベントプロバイダー内でアイドル状態だった時間の累積値です。

注記

イベントプロバイダーのアイドル時間の累積は、次の関数、uv_loop_configureを、次のオプションを指定して呼び出すまで開始しません: UV_METRICS_IDLE_TIME。

バージョン1.39.0で追加。

int uv_metrics_info(uv_loop_t *loop, uv_metrics_t *metrics)

イベントループの現在のメトリクス一式を、次のポインターへコピーします: metrics。

バージョン1.45.0で追加。