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) {