Commit Graph

187 Commits

Author SHA1 Message Date
Brian Gough 5798a173d6 Merge pull request #4980 from overleaf/bg-upgrade-metrics-dependencies
upgrade metrics dependencies

GitOrigin-RevId: 3fda4017ac4d5e1ab1e196051d557c10253924b7
2021-09-07 16:26:06 +00:00
Jakob Ackermann da365f996e Merge pull request #4689 from overleaf/jpa-libraries-ci
[misc] setup cloud build trigger for libraries

GitOrigin-RevId: a66dd3e96cb1c06d4803a2162278959357694048
2021-08-13 12:56:39 +00:00
Jakob Ackermann 23efa1d977 [misc] prepare for monorepo
- add git ignore entries
- sync/create package-lock.json
- delete .nvmrc
2021-07-27 16:33:33 +01:00
Christopher Hoskin acef9e7d8d Add basic README 2021-03-16 12:03:53 +00:00
Jakob Ackermann e1650616b8 [misc] version bump to 3.5.1 2021-02-16 14:21:36 +00:00
Jakob Ackermann 20223d865f [misc] do not register a noop sweeping interval 2021-01-12 14:20:51 +00:00
Jakob Ackermann 29742d6a87 [misc] register the metrics sweeping interval handle for later cleanup 2021-01-12 14:20:31 +00:00
Eric Mc Sween 3581d0ce87 3.5.0 2021-01-11 08:03:49 -05:00
Eric Mc Sween 8dcbd5aec0 Add support for the swagger-tools router
The swagger-tools router puts the request path in the
req.swagger.apiPath property.
2021-01-08 14:53:29 -05:00
Eric Mc Sween 7274217d79 Decaf cleanup 2021-01-08 14:48:13 -05:00
Jakob Ackermann 8e76e79a83 [misc] version bump to 3.4.1 2020-11-25 11:25:27 +00:00
Jakob Ackermann 2d1c84ea2e [misc] fix collection of open sockets
```
> 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`
2020-11-06 15:16:14 +00:00
Eric Mc Sween 142d9a5716 3.4.0 2020-10-30 07:39:47 -04:00
Eric Mc Sween 20b3d5070c Export a configured prom-client
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.
2020-10-29 09:49:55 -04:00
Christopher Hoskin 725478d95f Release 3.3.0 2020-10-27 14:02:21 +00:00
Christopher Hoskin f874291998 Bump google-cloud trace-agent, debug-agent and profiler to latest 2020-10-26 17:40:18 +00:00
Christopher Hoskin d4a649353f Commit package-lock.json 2020-10-26 17:33:43 +00:00
Christopher Hoskin fedc3191b8 Bump node to 10.19 2020-10-26 17:33:24 +00:00
Eric Mc Sween 0fdbb2dcc0 Add .npmignore to avoid publishing config files 2020-09-17 10:44:24 -04:00
Eric Mc Sween bd1a1dbabf 3.2.1 2020-09-17 10:40:34 -04:00
Eric Mc Sween 2f35db4087 Fix startup crash
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.
2020-09-17 10:30:25 -04:00
Eric Mc Sween ec0441bc89 3.2.0 2020-09-15 08:37:05 -04:00
Eric Mc Sween c05bd83e24 Add a separate configure() method
configure() sets options in the metrics module, but does not start the
default metrics collectors and the profiling agents.
2020-09-15 08:36:03 -04:00
Eric Mc Sween 3c9c17c22f Remove "using prometheus" log
We now always use prometheus
2020-09-11 15:59:38 -04:00
Eric Mc Sween 6f69fb4869 Decaf cleanup: move functions to top level 2020-09-11 15:59:38 -04:00
Eric Mc Sween afecfd5212 Decaf cleanup: use default parameters 2020-09-11 15:59:38 -04:00
Eric Mc Sween d7e4b3fe33 Decaf cleanup: unnecessary returns 2020-09-11 15:59:38 -04:00
Eric Mc Sween 6c020f6e54 Decaf cleanup: remove Array.from() 2020-09-11 15:59:38 -04:00
Eric Mc Sween 971a768c4e Install prettier and eslint 2020-09-11 15:59:33 -04:00
Brian Gough c530422f1e update package version to 3.1.0 2020-09-04 15:52:05 +01:00
Jakob Ackermann 71ba4150fe [misc] enable compression for the /metrics route 2020-09-04 15:32:48 +01:00
Brian Gough b6b65b9638 Merge pull request #39 from overleaf/jpa-res-headers-public-api
[http] use public node api for getting the response content-length
2020-09-04 14:52:20 +01:00
Jakob Ackermann 6f4829e817 [misc] fix module importing 2020-08-17 14:43:08 +01:00
Jakob Ackermann 37fda043d4 [http] use public node api for getting the response content-length 2020-08-17 11:59:18 +01:00
Brian Gough e5747fefd2 remove package-lock.json (not needed for library) 2020-08-06 14:52:07 +01:00
Brian Gough 5b39d49358 use scoped package name @overleaf/metrics 2020-08-05 11:27:56 +01:00
Brian Gough d415ae0cbe remove gruntfile 2020-07-17 16:23:01 +01:00
Brian Gough a0f856cff2 fix tests 2020-07-17 16:17:18 +01:00
Brian Gough 747a80b545 decaffeinate 2020-07-17 16:01:58 +01:00
Brian Gough e31a819636 remove statsd 2020-07-17 15:36:37 +01:00
Eric Mc Sween e197e4dc11 2.7.0 2020-07-06 08:20:02 -04:00
Eric Mc Sween d69195eaa9 Log requests that don't have a route property
The v1 history service has its routes set up via swagger-tools, which
doesn't write a route property on the request. This prevents us to send
request metrics based on the route, but we can still log the request.
2020-07-03 16:38:29 -04:00
Jakob Ackermann ea767920fc [misc] fix unit tests 2020-04-01 16:40:15 +02:00
Eric Mc Sween 8131c5ac91 2.6.2 2020-03-25 09:53:54 -04:00
Eric Mc Sween ef7e3b0e7a Fix HTTP request timing metrics
The conversion between high resolution time and milliseconds was
incorrect.
2020-03-25 09:39:21 -04:00
Eric Mc Sween a17843f3bf 2.6.1 2020-03-20 07:47:05 -04:00
Eric Mc Sween 25448bfef4 Downgrade all request logs to INFO
Commit 9056143fe36f1347a1ff985ef8592a1de7d798dd added logic to log
requests with different error levels depending on the status code. The
intention was to make the 5xx and 4xx requests stand out in Stackdriver.
Unfortunately, this also creates a lot of noise in Sentry since we log
the errors separately from the requests.

This commit brings back the former behaviour of logging all requests at
the INFO level. We can revisit this if we integrate the strategy
implemented in filestore of logging once per request.
2020-03-18 08:41:11 -04:00
Eric Mc Sween 62e82d7469 Send the status code with the HTTP request size metric 2020-03-12 06:24:46 -04:00
Eric Mc Sween 4a92be80ea Send HTTP request size metric
The metric is a "summary" called http_request_size_bytes.
2020-03-11 16:39:49 -04:00
Brian Gough 03e81153db avoid step effects in summary metrics
reduce the window size from 10 minutes to 1 minute,  so that short
spikes do not cause a 10 minute long "table" graph.
2020-03-10 15:01:09 +00:00