summaryrefslogtreecommitdiff
path: root/cli/js/metrics.ts
blob: 90f22854c1dba91b40bf8fe81d04e339fac7d0a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { sendSync } from "./dispatch_json.ts";

export interface Metrics {
  opsDispatched: number;
  opsDispatchedSync: number;
  opsDispatchedAsync: number;
  opsDispatchedAsyncUnref: number;
  opsCompleted: number;
  opsCompletedSync: number;
  opsCompletedAsync: number;
  opsCompletedAsyncUnref: number;
  bytesSentControl: number;
  bytesSentData: number;
  bytesReceived: number;
}

/** Receive metrics from the privileged side of Deno.
 *
 *      > console.table(Deno.metrics())
 *      ┌─────────────────────────┬────────┐
 *      │         (index)         │ Values │
 *      ├─────────────────────────┼────────┤
 *      │      opsDispatched      │   3    │
 *      │    opsDispatchedSync    │   2    │
 *      │   opsDispatchedAsync    │   1    │
 *      │ opsDispatchedAsyncUnref │   0    │
 *      │      opsCompleted       │   3    │
 *      │    opsCompletedSync     │   2    │
 *      │    opsCompletedAsync    │   1    │
 *      │ opsCompletedAsyncUnref  │   0    │
 *      │    bytesSentControl     │   73   │
 *      │      bytesSentData      │   0    │
 *      │      bytesReceived      │  375   │
 *      └─────────────────────────┴────────┘
 */
export function metrics(): Metrics {
  return sendSync("op_metrics");
}