From 6def0ffe67279e113b362230f2b4cc69e5ae9c2c Mon Sep 17 00:00:00 2001 From: Karl-Aksel Puulmann Date: Tue, 1 Dec 2020 11:16:18 +0200 Subject: [PATCH] Track in-flight requests from posthog-js Part of https://github.com/PostHog/posthog/issues/2560 Needed because we lack a feature: https://github.com/PostHog/posthog/issues/2584 --- src/capture-metrics.js | 9 ++++++++- src/posthog-core.js | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/capture-metrics.js b/src/capture-metrics.js index 464bd7b37..0aafe2801 100644 --- a/src/capture-metrics.js +++ b/src/capture-metrics.js @@ -5,9 +5,16 @@ export class CaptureMetrics { } incr(key, by = 1) { - key = `phjs-${key}` if (this.capture) { + key = `phjs-${key}` this.metrics[key] = (this.metrics[key] || 0) + by } } + + decr(key) { + if (this.capture) { + key = `phjs-${key}` + this.metrics[key] = (this.metrics[key] || 0) - 1 + } + } } diff --git a/src/posthog-core.js b/src/posthog-core.js index d6c3150b5..e576ccff6 100644 --- a/src/posthog-core.js +++ b/src/posthog-core.js @@ -372,6 +372,7 @@ PostHogLib.prototype._send_request = function (url, data, options, callback) { this._captureMetrics.incr('_send_request') this._captureMetrics.incr(`_send_request_${options.transport}`) this._captureMetrics.incr(`_send_request_${classifier}`) + this._captureMetrics.incr('_send_request_inflight') // needed to correctly format responses var verbose_mode = this.get_config('verbose') @@ -451,6 +452,7 @@ PostHogLib.prototype._send_request = function (url, data, options, callback) { this._captureMetrics.incr(`xhr-response`) this._captureMetrics.incr(`xhr-response-${req.status}`) this._captureMetrics.incr(`xhr-done-${classifier}-${req.status}`) + this._captureMetrics.decr('_send_request_inflight') // XMLHttpRequest.DONE == 4, except in safari 4 if (req.status === 200) { if (callback) {