Commit graph

697 commits

Author SHA1 Message Date
Henry Oswald
9eac49ad84 add some logging in 2018-12-11 16:07:34 +00:00
Henry Oswald
c257482e15 add ENABLE_DEBUG_AGENT and don't require modules unless they are enabled 2018-12-11 15:46:29 +00:00
Christopher Hoskin
6f82309829 Bump version to 2.0.10 2018-12-11 12:52:38 +00:00
Christopher Hoskin
61e6cf0493 Add host label to timing metrics 2018-12-11 12:01:22 +00:00
Henry Oswald
425a6f55ff set build version via env var and bump build version 2018-12-10 22:02:25 +00:00
Henry Oswald
7a227adaeb add if statment around traceagenet and bump to 2.0.8 2018-12-05 13:58:40 +00:00
Henry Oswald
02071584ae bump to 2.0.7 2018-12-05 12:31:16 +00:00
Henry Oswald
b2f49351c0 few tidy up changes 2018-12-05 11:03:40 +00:00
Henry Oswald
93f4a7eeaf small cleanup 2018-12-04 17:01:30 +00:00
Henry Oswald
85d4b03bcb bump to 2.0.6 2018-12-04 16:29:09 +00:00
Henry Oswald
2d4283fdf0 add DEBUG_METRICS env var 2018-12-04 16:20:52 +00:00
Henry Oswald
31fa5cef51 add logging 2018-12-04 16:09:09 +00:00
Henry Oswald
27e6db1e51 inc process_startup on init 2018-12-04 15:57:19 +00:00
Henry Oswald
752541b7f1 remove logging and bump to 2.0.4 2018-11-29 16:10:55 +00:00
Henry Oswald
9a737bef2f bump to 2.0.3 2018-11-28 10:45:11 +00:00
Henry Oswald
917afa3edc have default opts in inc 2018-11-27 16:12:12 +00:00
Henry Oswald
8adfc49af7 v 2.0.1 2018-11-27 15:48:17 +00:00
Henry Oswald
39f924f73c bump to 2.0.0 2018-11-27 15:15:45 +00:00
Henry Oswald
4e370ef24d clean up 2018-11-27 12:07:26 +00:00
Henry Oswald
a8cfa97463 use modified prefix and method name 2018-11-27 11:55:38 +00:00
Henry Oswald
2a6839f48c roll back async method for moment 2018-11-27 11:27:16 +00:00
Henry Oswald
fdd4db25a3 big refactor remoing statsd and converting keys to prom keys 2018-11-27 10:36:57 +00:00
Henry Oswald
b9f3a3f987 improve mongo metrics to be more promethious like 2018-11-26 13:31:21 +00:00
Henry Oswald
4806e6fd87 use lables 2018-11-26 09:46:26 +00:00
Henry Oswald
f7deba6de9 Merge branch 'master' into ho-stackdriver2 2018-11-23 15:29:06 +00:00
Christopher Hoskin
725abdce3b Remove spurious blank lines 2018-11-21 12:42:40 +00:00
Christopher Hoskin
00aaa3f3d4 Merge branch 'master' into ho-stackdriver 2018-11-21 12:41:34 +00:00
Henry Oswald
7f3cd3c77c just do debugging and tracing 2018-11-21 10:30:18 +00:00
Henry Oswald
f63b84983d add count to prom 2018-11-21 10:28:32 +00:00
Henry Oswald
d01ff95b46 bump to 1.9.1 2018-11-21 10:20:58 +00:00
Henry Oswald
32da84a1d7 proper null check 2018-11-21 10:20:33 +00:00
Henry Oswald
70a75113cb refactor key building 2018-11-21 10:15:43 +00:00
Henry Oswald
c36e3d74b5 replace - with _ 2018-11-21 08:57:00 +00:00
Henry Oswald
cf920a86f7 fix metrics.this 2018-11-21 08:50:33 +00:00
Henry Oswald
5599521c09 consolodate on metrics.timing 2018-11-20 21:52:09 +00:00
Henry Oswald
7fc49d1eb5 metrics of different types can clash, share promMetrics 2018-11-20 17:50:54 +00:00
Henry Oswald
bd8fd1141e client -> prom 2018-11-20 17:25:37 +00:00
Henry Oswald
6854a64b73 fix this.key 2018-11-20 17:20:49 +00:00
Henry Oswald
6f708fd26a add summaries 2018-11-20 17:17:02 +00:00
Henry Oswald
5039287ee4 don't default to adding underscore to name 2018-11-20 16:28:36 +00:00
Henry Oswald
816c9348f6 don't put dots in key name 2018-11-20 16:13:40 +00:00
Henry Oswald
f4af82282f use buildKey for prefixing name and host 2018-11-20 16:06:02 +00:00
Henry Oswald
1a3b427315 bump to 1.9.0 2018-11-20 14:54:09 +00:00
Henry Oswald
c576a86c14 Update metrics.coffee 2018-11-20 13:50:04 +00:00
Christopher Hoskin
65fccf8abe Ensure gauge values are numeric, not string 2018-11-07 16:08:31 +00:00
Christopher Hoskin
d0e1324dba Sanitize metric keys for Prometheus 2018-11-07 12:44:10 +00:00
Christopher Hoskin
bb3cff5744 Add prom-client to package.json 2018-11-07 11:21:45 +00:00
Christopher Hoskin
56eaae89f9 Add Gauges 2018-11-06 16:15:41 +00:00
Christopher Hoskin
6d4d05957e Get counter metric working 2018-11-06 14:22:03 +00:00
Christopher Hoskin
f604fb92e5 Get default Prometheus metrics working 2018-11-06 11:14:26 +00:00
Brian Gough
cd81a602fd increment version to 1.5.8 2018-11-06 10:56:58 +00:00
Brian Gough
df3b889f50 remove the path in the message from fs errors 2018-11-06 10:50:12 +00:00
Brian Gough
3676f78ff9 avoid reporting the same error object more than once 2018-11-02 15:53:21 +00:00
Henry Oswald
7e359c9df2 add trace and debug agent to metrics 2018-10-16 17:19:21 +01:00
Henry Oswald
4b075db038 non tested promethius counters added 2018-10-16 16:47:12 +01:00
Christopher Hoskin
90b6e5afce Release version v1.8.1 2018-07-12 11:07:43 +01:00
Christopher Hoskin
06e8450694 Allow remote statsd to be specified by environment variable 2018-07-06 13:57:52 +01:00
Brian Gough
00fdea922d allow a global gauge not specific to a host 2018-05-18 15:09:11 +01:00
Brian Gough
c8cc1e1bfe handle undefined logger in event loop monitor 2018-05-10 10:10:34 +01:00
John Lees-Miller
138b339c0f Tidy up for release 2018-04-23 08:11:08 +01:00
Alberto Fernández Capel
006cfb0142 Upgrade minor version
The last change introduced a new but compatible feature.
2018-04-11 14:08:18 +01:00
Alberto Fernández Capel
98eb92a0a9 Allow .js setting files 2018-04-10 14:01:32 +01:00
James Allen
a94b34f37f Initial commit of stand-alone module 2018-03-07 16:42:39 +00:00
James Allen
86ea1d3b57 Bump version to 1.5.7 2017-12-07 09:36:43 +00:00
James Allen
f707c835b9 Add debug level 2017-12-07 09:36:12 +00:00
Brian Gough
1737ddbf29 update ioredis to 3.2.1 2017-10-24 11:30:03 +01:00
Brian Gough
66c09a770e separate out devDependencies 2017-10-24 10:46:38 +01:00
Brian Gough
bda88c0356 remove the key_schema from options passed to redis 2017-06-19 15:46:21 +01:00
Brian Gough
bce937f562 add support for passing options to cluster 2017-06-16 15:28:55 +01:00
James Allen
90e0b4b273 Gracefully handle missing callback to exec in ioredis 2017-05-05 13:36:39 +01:00
James Allen
da85837e6f Update package.json 2017-05-04 15:41:43 +01:00
James Allen
92f22bc1a1 Fix redis cluster health check 2017-05-04 15:38:07 +01:00
Brian Gough
6923ca0d5f add test for ioredis monkey patching 2017-04-25 15:34:41 +01:00
James Allen
89397e4c50 Get unit tests running and add one for ioredis 2017-04-12 16:58:59 +01:00
James Allen
3b58e390fd Include ioredis as a driver to be able to handle cluster configs 2017-04-12 14:53:34 +01:00
Brian Gough
9d6101e365 Merge pull request #3 from sharelatex/bg-rate-limit
rate limit on logging
2017-03-29 16:26:16 +01:00
Brian Gough
9c7494eb67 fix off-by-one error in error count 2017-03-29 13:38:07 +01:00
Brian Gough
c7a6f44b11 add unit tests 2017-03-29 13:38:07 +01:00
Shane Kilkelly
7cf65d072d Add a .nvmrc file 2017-03-27 15:28:36 +01:00
Shane Kilkelly
bd1d6aa9c3 Add a .nvmrc file 2017-03-27 14:59:09 +01:00
Shane Kilkelly
d0eaa235a3 bump package version 2017-03-23 15:32:12 +00:00
Shane Kilkelly
6dbcc34df6 reduce UV thread-pool size to 16 2017-03-23 15:31:05 +00:00
Brian Gough
013c2a693c rate limit on logging v1.5.6 2017-03-23 13:54:44 +00:00
Shane Kilkelly
c930f6c680 bump to version 1.5.5 2017-03-22 14:59:40 +00:00
Shane Kilkelly
27c6390f4c upgrade to coffee-script 1.12.4 2017-03-22 14:46:42 +00:00
Shane Kilkelly
7bdba3756b Don't bother checking for error properties on error object 2017-03-21 14:19:12 +00:00
Shane Kilkelly
f2ebdd1662 Increment stats for success/failure of wrapped async calls 2017-03-20 16:54:40 +00:00
Shane Kilkelly
1f77cc0fd3 If function is called without callback, apply with original args 2017-03-20 16:37:53 +00:00
Shane Kilkelly
fbe19cd97d Don't return early in case where last arg is not a function 2017-03-20 16:25:10 +00:00
Shane Kilkelly
31235beee5 Don't throw error if the function is not invoked with callback.
Instead, log the error and return early.
2017-03-20 16:17:22 +00:00
Shane Kilkelly
9846703be5 Bump version 2017-03-20 10:17:09 +00:00
Shane Kilkelly
be2c6a96af Log args and their indexes, if they look like object ids 2017-03-17 14:20:13 +00:00
Shane Kilkelly
e7f71a25d8 Use an explicit prefix 2017-03-17 11:47:38 +00:00
Shane Kilkelly
f397678589 Clean up, don't allocate an extra date 2017-03-16 15:07:25 +00:00
Shane Kilkelly
5ea83947dd remove stray compiled js file 2017-03-16 10:10:40 +00:00
Shane Kilkelly
1f9d4950a2 Update gitignore 2017-03-16 10:09:16 +00:00
Shane Kilkelly
772f950d7c Test failure when wrapped method is not async/callback 2017-03-16 10:07:52 +00:00
Shane Kilkelly
a5aec5b812 Test failure to wrap method 2017-03-16 10:02:19 +00:00
Shane Kilkelly
40b238271d Add tests for methods producing errors, and logger 2017-03-16 09:55:07 +00:00
Shane Kilkelly
c3b18618bf Add unit tests 2017-03-16 09:49:45 +00:00
Shane Kilkelly
e99a7f6a87 refactor 2017-03-15 16:07:36 +00:00
Shane Kilkelly
3cb0ab2784 Add a 'timeAsyncMethod' helper 2017-03-15 15:06:54 +00:00
James Allen
aebaff829b Update package.json 2017-03-06 12:09:37 +00:00
Brian Gough
dfb2a069c0 use try catch around sentry logging 2017-03-03 16:05:56 +00:00
Brian Gough
5fc5a86b31 upgrade to latest raven 2017-03-03 14:43:41 +00:00
Brian Gough
68b941357e avoid uninitialised last error timestamp 2017-02-23 09:42:01 +00:00
Brian Gough
6e3f102fb2 rate limit on sentry reporting 2017-02-23 09:29:52 +00:00
James Allen
caeac717fc Set UV_THREADPOOL_SIZE to 128 for all processes 2016-10-24 10:50:44 +01:00
Brian Gough
cf0e106153 release 1.5.1 2016-04-01 15:52:42 +01:00
Brian Gough
24e097d263 don't force message over exception but include it as description 2016-04-01 15:52:28 +01:00
Brian Gough
7bdf2ef26b release 1.5 2016-04-01 15:35:54 +01:00
Brian Gough
fdc1ad2898 use logger.error message as title of sentry report 2016-04-01 15:35:14 +01:00
Brian Gough
04529c0019 release 1.4 2016-03-30 14:30:05 +01:00
Brian Gough
e04e6332e8 add fatal exception reporting
split out capture exception code into separate method
2016-03-29 12:53:16 +01:00
Shane Kilkelly
9c6df30031 remove deps 2016-03-25 14:51:52 +00:00
Shane Kilkelly
e6e3fb6948 change to be a class, with settings passed in 2016-03-25 14:33:38 +00:00
Shane Kilkelly
7786ef9ed8 set package to private 2016-03-25 11:06:11 +00:00
Shane Kilkelly
fc3c0d1384 init (copied from thirdpartydatastore-sharelatex) 2016-03-25 11:04:46 +00:00
Brian Gough
2df5845444 updated version to 1.5.0 2016-03-17 09:40:40 +00:00
Brian Gough
622bbe3123 return timeSpan from timers
to allow additional calculation
2016-03-15 13:52:40 +00:00
Brian Gough
29177f8de8 add support for statsd count method 2016-03-15 13:52:32 +00:00
Brian Gough
e8b8cfd9e0 release version 1.3.1 2016-01-26 16:42:08 +00:00
Brian Gough
17cf288e4c recreate Error objects from plain objects when logging to sentry 2016-01-26 16:41:52 +00:00
Brian Gough
2e21da050c add logging of request parameters to sentry 2016-01-05 13:34:50 +00:00
Brian Gough
fd70f23e5c updated version to 1.2.1 2015-12-18 10:58:03 +00:00
Brian Gough
06662f869f capture id's as tags, and pass attributes to sentry 2015-12-17 16:41:32 +00:00
Brian Gough
f1abe1e03b allow passing options to sentry 2015-12-08 10:30:18 +00:00
James Allen
8db30020ae Monitor event loop by looking for skew
If we monitor with setImmediate, we miss big blocking loops. For example,
suppose we have 1000 1ms loops then a single bad 1000ms loop. setImmediate
will only be called at the right time 1/1000 of the time (it has to be the
loop just before the bad one). So this monitoring method gives a good average
if the std dev is low, but doesn't pick up spikes.

Instead, we can monitor the skew from the expected time between setIntervals.
In the case above, with a setInterval for 1000ms, we will pick up a skew
proportional to the amount of time that it overlaps the bad loop. So 50%
change of picking up skew > 500ms, and thus getting a good sense of any
spikes.
2015-12-03 16:32:20 +00:00
Henry Oswald
30bfae5b35 upgraded bunyan 2015-12-01 20:51:08 +00:00
James Allen
738363a6de Set maxSockets to Infinity for all services 2015-08-31 14:02:03 +01:00
Brian Gough
0215b12a5f log memory usage every minute 2015-08-20 17:03:58 +01:00
Brian Gough
f237f7c3cc remove bug in optional argument handling 2015-08-18 11:23:10 +01:00
Brian Gough
27c382416a fix whitespace 2015-08-17 15:19:13 +01:00
Brian Gough
e3e8d80466 remove non-working metrics from graphite 2015-08-17 15:19:07 +01:00
Brian Gough
d2af7b24a0 remove randomisation to avoid shutdown problems 2015-08-17 15:18:18 +01:00
Brian Gough
577a3759c0 bugfix for memory chunk size 2015-08-14 15:44:24 +01:00
Brian Gough
46ec20ef9c add memory check and periodic gc 2015-08-14 14:38:24 +01:00
Brian Gough
175e3efd5f update package version to 1.2.0 2015-08-06 09:40:58 +01:00
Brian Gough
349b499f85 add compatibility with v2 mongo driver 2015-07-30 08:57:43 +01:00
Brian Gough
ffa523bced added monitoring of event loop time
should indicate if node is blocking on libuv threads
as described in https://nodejs.org/api/dns.html#dns_dns_lookup
2015-06-23 10:51:48 +01:00
James Allen
90e6c85e54 Send errors to Sentry if configured 2015-06-16 16:50:18 +01:00
Henry Oswald
5637678b48 bumped bunyan version to work with node 0.12 2015-06-08 10:01:45 +01:00
Henry Oswald
9329249bc9 Revert "reduce memory capture in http logger"
This reverts commit fc2e043b20204e04f240814d4efc05762db7df96.

Had to revert this because req.route.path is not set until a matching
route has been hit, so it was always null inside res.end meaning
statsd data was never sent over.

This commit did not actually stop the memory leak so reverting it
has not short term repocusion
2015-05-14 16:14:24 +01:00
Brian Gough
1e0a991fcd reduce memory capture in http logger
only capture the properties of 'req' that we need, to avoid leaking
the whole req object for responses that never call res.end()
2015-05-05 10:50:59 +01:00
Brian Gough
fa7e068ebb update minor version, due to addition of new close() method 2015-01-05 16:46:44 +00:00
Brian Gough
30070f23b8 add a close() method to terminate the module cleanly
closes the statsd connection and cancels registered interval timers
prevents express from hanging when trying to shutdown
2015-01-05 16:45:32 +00:00
Henry Oswald
3334a55944 bump package 2014-11-20 12:50:31 +00:00
Henry Oswald
917ce27a2c add a double message check 2014-11-20 12:50:19 +00:00
Henry Oswald
119ae80853 bump package.json 2014-11-20 11:09:57 +00:00
Henry Oswald
ef0ea2ace2 if redis fails once mark it to always fail 2014-11-20 11:09:44 +00:00
Henry Oswald
e133c7101e incremented version and added basic health check function in 2014-11-19 23:18:56 +00:00
Henry Oswald
6da4f3eef5 bump package 2014-11-19 16:41:28 +00:00
Henry Oswald
4cd3c249ec removed reconnect stuff 2014-11-19 16:39:06 +00:00
James Allen
1ee287ed98 add createMonitoredSubscriptionClient method 2014-11-19 14:05:16 +00:00
James Allen
42cbaecbe0 Let the client take care of reconnecting only when the stream is actually ended 2014-11-19 12:30:10 +00:00
James Allen
861eafd88d Handle reconnect logic better to (hopefully) avoid duplicate connections 2014-11-19 11:52:40 +00:00
James Allen
db3537a8eb Reset heartbeat timer after triggering a reconnect 2014-11-19 11:25:09 +00:00
James Allen
b67b49564d Revert "Use own fork of node-redis-sentinel"
This reverts commit a351534a5f0e50656430ff37d2f6c42f701096d0.
2014-11-19 11:21:36 +00:00
James Allen
e988dc8586 Don't need secure random bytes which can error if not enough entropy 2014-11-19 11:18:31 +00:00
James Allen
68c428545d Don't hash because Henry is hashist! 2014-11-19 11:16:43 +00:00
James Allen
c90cc61570 Set retry_max_delay to 5 seconds so that reconnects don't slow down exponentially 2014-11-19 11:02:27 +00:00
James Allen
230203eadf Add in robust heartbeat driven subscription model 2014-11-19 11:01:02 +00:00
James Allen
79afad5409 Use own fork of node-redis-sentinel 2014-11-18 15:49:27 +00:00
James Allen
8808097f2c Add javascript wrapper so it can be loaded directly 2014-11-07 15:02:45 +00:00
Henry Oswald
4fd5191528 bump package 2014-09-29 12:02:38 +01:00
Henry Oswald
c63f3c9da9 added readme 2014-09-29 12:00:03 +01:00
Henry Oswald
8f31ac60ca if password is passed rename it to auth_pass 2014-09-29 11:40:40 +01:00
Henry Oswald
a33f537cb1 increment package 2014-09-28 20:34:20 +01:00
Henry Oswald
f554ea8bd5 change underscore dep 2014-09-28 20:33:29 +01:00
Henry Oswald
a0c861cf5d pass entire redis object though with all opts in one go 2014-09-26 14:46:23 +01:00
Henry Oswald
629241611b v1 of the redis driver wrapper 2014-09-25 17:33:27 +01:00
James Allen
60857982b6 Create LICENSE 2014-09-08 09:19:39 +01:00
James Allen
5f50672342 Create LICENSE 2014-09-08 09:17:55 +01:00
James Allen
1dc82ef624 Release version 1.0.0 2014-08-19 13:35:15 +01:00
James Allen
9acca85843 Release version 1.0.0 2014-08-19 13:32:41 +01:00
James Allen
c1e10e7ec4 Release version 1.0.0 2014-08-19 13:30:16 +01:00
Henry Oswald
c8fae26995 changed type to query_type as it conflicts with logstash 2014-05-13 15:24:23 +01:00
James Allen
1dea55d8f2 Check that req.route.path is set 2014-05-12 15:28:09 +01:00
James Allen
284d8fb588 Namespace gauge keys correctly 2014-05-09 13:54:33 +01:00
James Allen
00c0036ca5 Add open socket monitoring 2014-05-09 13:30:12 +01:00
James Allen
86f220a2d2 Add collection into graphite key 2014-05-07 11:50:09 +01:00
James Allen
45ec60d8a6 Fix broken key building in timer 2014-05-07 11:43:46 +01:00
James Allen
873297b02e Namespace http request keys 2014-05-07 11:13:21 +01:00
James Allen
befb48a20f Use correct key in Metrics.timing 2014-05-07 11:08:46 +01:00
James Allen
f4895fb04f Add in http monitoring 2014-05-07 10:58:52 +01:00
James Allen
4da7fa43fa Scope name argument properly 2014-05-06 17:33:09 +01:00
James Allen
125790b604 Ignore all queries 2014-05-06 17:19:04 +01:00
James Allen
00c12ccab6 Remove redundant count 2014-05-06 17:06:34 +01:00
James Allen
15f85494b7 Sort out initialization and ignore noisy mongo requests 2014-05-06 17:02:51 +01:00
James Allen
42b500263a Create metrics module 2014-05-06 16:52:03 +01:00
James Allen
0da921311c Preserve arrays 2014-04-03 11:14:28 +01:00
James Allen
4f377c5fa2 Remove unnecessary logging 2014-04-02 21:27:27 +01:00
James Allen
89d09340f5 Don't log out the settings 2014-04-02 17:43:11 +01:00
James Allen
c06e237e31 Load and merge defaults if available
Load and merge defaults if available
2014-04-02 17:39:14 +01:00
James Allen
6baf4ebe85 Take config from SHARELATEX_CONFIG env variable 2014-02-19 13:21:32 +00:00
James Allen
58cd9ced1a Initial open source commit 2014-02-17 14:54:20 +00:00
James Allen
3133f85164 Initial open source commit 2014-02-17 14:51:21 +00:00