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
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
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
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
caeac717fc
Set UV_THREADPOOL_SIZE to 128 for all processes
2016-10-24 10:50:44 +01: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
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
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
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
James Allen
60857982b6
Create LICENSE
2014-09-08 09:19:39 +01:00
James Allen
9acca85843
Release version 1.0.0
2014-08-19 13:32:41 +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