summaryrefslogtreecommitdiff
path: root/cli/js
diff options
context:
space:
mode:
authorBartek Iwańczuk <biwanczuk@gmail.com>2020-03-02 19:13:36 +0100
committerGitHub <noreply@github.com>2020-03-02 19:13:36 +0100
commitff5bba3be833b0062b3991b96272c0047c18b62e (patch)
tree18d63cc05874c9d124c20cad9fea4240d21cfcec /cli/js
parentcfe4369dedcdd885c60b8a5f6c89bc4bb7e5e1e8 (diff)
feat: update metrics to track different op types (#4221)
Diffstat (limited to 'cli/js')
-rw-r--r--cli/js/lib.deno.ns.d.ts30
-rw-r--r--cli/js/metrics.ts30
-rw-r--r--cli/js/metrics_test.ts9
3 files changed, 51 insertions, 18 deletions
diff --git a/cli/js/lib.deno.ns.d.ts b/cli/js/lib.deno.ns.d.ts
index 50aab6a35..55cca78cf 100644
--- a/cli/js/lib.deno.ns.d.ts
+++ b/cli/js/lib.deno.ns.d.ts
@@ -1669,7 +1669,13 @@ declare namespace Deno {
/** **UNSTABLE**: not sure if broken or not */
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;
@@ -1680,15 +1686,21 @@ declare namespace Deno {
* Receive metrics from the privileged side of Deno.
*
* > console.table(Deno.metrics())
- * ┌──────────────────┬────────┐
- * │ (index) │ Values │
- * ├──────────────────┼────────┤
- * │ opsDispatched │ 9 │
- * │ opsCompleted │ 9 │
- * │ bytesSentControl │ 504 │
- * │ bytesSentData │ 0 │
- * │ bytesReceived │ 856 │
- * └──────────────────┴────────┘
+ * ┌─────────────────────────┬────────┐
+ * │ (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;
diff --git a/cli/js/metrics.ts b/cli/js/metrics.ts
index b735dc6b3..90f22854c 100644
--- a/cli/js/metrics.ts
+++ b/cli/js/metrics.ts
@@ -3,7 +3,13 @@ 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;
@@ -12,15 +18,21 @@ export interface Metrics {
/** Receive metrics from the privileged side of Deno.
*
* > console.table(Deno.metrics())
- * ┌──────────────────┬────────┐
- * │ (index) │ Values │
- * ├──────────────────┼────────┤
- * │ opsDispatched │ 9 │
- * │ opsCompleted │ 9 │
- * │ bytesSentControl │ 504 │
- * │ bytesSentData │ 0 │
- * │ bytesReceived │ 856 │
- * └──────────────────┴────────┘
+ * ┌─────────────────────────┬────────┐
+ * │ (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");
diff --git a/cli/js/metrics_test.ts b/cli/js/metrics_test.ts
index 3fc51b78e..3bb5218ef 100644
--- a/cli/js/metrics_test.ts
+++ b/cli/js/metrics_test.ts
@@ -4,7 +4,9 @@ import { test, testPerm, assert } from "./test_util.ts";
test(async function metrics(): Promise<void> {
const m1 = Deno.metrics();
assert(m1.opsDispatched > 0);
+ assert(m1.opsDispatchedSync > 0);
assert(m1.opsCompleted > 0);
+ assert(m1.opsCompletedSync > 0);
assert(m1.bytesSentControl > 0);
assert(m1.bytesSentData >= 0);
assert(m1.bytesReceived > 0);
@@ -16,7 +18,11 @@ test(async function metrics(): Promise<void> {
const m2 = Deno.metrics();
assert(m2.opsDispatched > m1.opsDispatched);
+ assert(m2.opsDispatchedSync > m1.opsDispatchedSync);
+ assert(m2.opsDispatchedAsync > m1.opsDispatchedAsync);
assert(m2.opsCompleted > m1.opsCompleted);
+ assert(m2.opsCompletedSync > m1.opsCompletedSync);
+ assert(m2.opsCompletedAsync > m1.opsCompletedAsync);
assert(m2.bytesSentControl > m1.bytesSentControl);
assert(m2.bytesSentData >= m1.bytesSentData + dataMsg.byteLength);
assert(m2.bytesReceived > m1.bytesReceived);
@@ -30,6 +36,7 @@ testPerm({ write: true }, function metricsUpdatedIfNoResponseSync(): void {
const metrics = Deno.metrics();
assert(metrics.opsDispatched === metrics.opsCompleted);
+ assert(metrics.opsDispatchedSync === metrics.opsCompletedSync);
});
testPerm(
@@ -42,5 +49,7 @@ testPerm(
const metrics = Deno.metrics();
assert(metrics.opsDispatched === metrics.opsCompleted);
+ assert(metrics.opsDispatchedSync === metrics.opsCompletedSync);
+ assert(metrics.opsDispatchedAsync === metrics.opsCompletedAsync);
}
);