2021-01-02 13:10:00 -05:00
|
|
|
|
|
|
|
.. _metrics:
|
|
|
|
|
|
|
|
Metrics operations
|
|
|
|
======================
|
|
|
|
|
2023-05-21 17:36:51 -04:00
|
|
|
libuv provides a metrics API to track various internal operations of the event
|
|
|
|
loop.
|
|
|
|
|
|
|
|
|
|
|
|
Data types
|
|
|
|
----------
|
|
|
|
|
|
|
|
.. c:type:: uv_metrics_t
|
|
|
|
|
|
|
|
The struct that contains event loop metrics. It is recommended to retrieve
|
|
|
|
these metrics in a :c:type:`uv_prepare_cb` in order to make sure there are
|
|
|
|
no inconsistencies with the metrics counters.
|
|
|
|
|
|
|
|
::
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint64_t loop_count;
|
|
|
|
uint64_t events;
|
|
|
|
uint64_t events_waiting;
|
|
|
|
/* private */
|
|
|
|
uint64_t* reserved[13];
|
|
|
|
} uv_metrics_t;
|
|
|
|
|
|
|
|
|
|
|
|
Public members
|
|
|
|
^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
.. c:member:: uint64_t uv_metrics_t.loop_count
|
|
|
|
|
|
|
|
Number of event loop iterations.
|
|
|
|
|
|
|
|
.. c:member:: uint64_t uv_metrics_t.events
|
|
|
|
|
|
|
|
Number of events that have been processed by the event handler.
|
|
|
|
|
|
|
|
.. c:member:: uint64_t uv_metrics_t.events_waiting
|
|
|
|
|
|
|
|
Number of events that were waiting to be processed when the event provider
|
|
|
|
was called.
|
|
|
|
|
2021-01-02 13:10:00 -05:00
|
|
|
|
|
|
|
API
|
|
|
|
---
|
|
|
|
|
|
|
|
.. c:function:: uint64_t uv_metrics_idle_time(uv_loop_t* loop)
|
|
|
|
|
|
|
|
Retrieve the amount of time the event loop has been idle in the kernel's
|
|
|
|
event provider (e.g. ``epoll_wait``). The call is thread safe.
|
|
|
|
|
|
|
|
The return value is the accumulated time spent idle in the kernel's event
|
|
|
|
provider starting from when the :c:type:`uv_loop_t` was configured to
|
|
|
|
collect the idle time.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
The event loop will not begin accumulating the event provider's idle
|
|
|
|
time until calling :c:type:`uv_loop_configure` with
|
|
|
|
:c:type:`UV_METRICS_IDLE_TIME`.
|
|
|
|
|
|
|
|
.. versionadded:: 1.39.0
|
2023-05-21 17:36:51 -04:00
|
|
|
|
|
|
|
.. c:function:: int uv_metrics_info(uv_loop_t* loop, uv_metrics_t* metrics)
|
|
|
|
|
|
|
|
Copy the current set of event loop metrics to the ``metrics`` pointer.
|
|
|
|
|
|
|
|
.. versionadded:: 1.45.0
|