* [OError] add getFullInfoIncludeCause for retrieving nested cause info
* Revert "[OError] add getFullInfoIncludeCause for retrieving nested cause info"
This reverts commit 4c7517255a0f37ba94223e559a3926f19bab618d
* [OError] getFullInfo returns the error context of nested causes
* [OError] getFullInfo flip sequence of merging, add test case for it
- promisify
- merge health check for single node and cluster
- replace the first multi with simple SET in health check
- reworked health check with o-error context/stack-traces for failures
- drop console.error on health check timeout, consumer logs the error
- cleanup unwrapping of ioredis multi result
- Promise support for multi.exec
This has been squashed from das7pad s fork.
REF: b3dd8c5cf4cc6482fd450e6bb67013508844f93f
Assume `cluster-require-full-coverage=yes` is set for the redis cluster,
which is the default value.
We are writing into a single hash slot, resulting in a partial health
check only.
The 'cluster-require-full-coverage=yes' blocks writes as soon as any
hash slot is not covered by an active primary.
We are leveraging the health check build into the redis cluster topology
to bring the scope of the single read/write/delete to the full cluster.
REF: 1b3566d6c830289dc826da1d13b75d68205d8dec
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
```
> require('http').globalAgent.sockets
{ 'HOST:PORT:': [{ ... }, { ... }] }
```
- `new URL('http://HOST:PORT:')` throws
-> test suite `open_sockets`
- gauges were not cleaned up after no agents were present for a given
key. This lead to continuous emission of the previous connection
count for a given hostname, following the completion of all requests.
-> test suite `when all requests complete`
Metrics.initialize() and Metrics.configure() will configure the default
Prometheus registry with default "app" and "host" labels. The configured
prom-client module is available as Metrics.prom.
The GCS persistor error handler ignores 404 errors on deletes. However,
the net is too wide cast, and 404 errors coming from the dual-bucket
lifecycle mechanism are also ignored.
Version 3.2.0 crashes on startup because it calls buildPromKey() without
arguments. To avoid this kind of obvious bug to happen again, I added
some basic acceptance tests.
* Add OError.maxTags
* Tidy up package scripts and add a build script
Co-authored-by: Jakob Ackermann <jakob.ackermann@overleaf.com>
Co-authored-by: Eric Mc Sween <eric.mcsween@overleaf.com>