Commit graph

86 commits

Author SHA1 Message Date
Johan Tibell
3889e2a1a0 Move the JSON encoding into a separate ekg-json package 2015-07-31 15:34:43 +01:00
Johan Tibell
f11d9311f4 Fix erroneous count in docs
Fixes #34.
2015-05-08 06:27:09 +02:00
Johan Tibell
86febd09a7 Re-raise exceptions in the main thread 2015-05-08 06:10:08 +02:00
Jan-Philip Loos
605f4d4bb3 wrapped forkIO with Network.Socket.withSocketsDo
see: tibbe/ekg#12
tested with windows32
2015-02-12 07:33:29 +01:00
Johan Tibell
4eca4f008b forkServerWith shouldn't register GC metrics
Fixes #32.
2014-10-20 10:18:37 +02:00
Johan Tibell
c8831e5a23 Small documentation clarifications 2014-04-30 22:34:55 +02:00
Johan Tibell
b02310ea1e Try to link to ekg-core instead of re-exports in docs 2014-04-30 22:24:44 +02:00
Johan Tibell
3897d1485c Don't re-export Distribution as a new module
We want to encourage users to use the ekg-core package instead.
2014-04-30 22:17:02 +02:00
Johan Tibell
340fe7005d Add deprecation notice to metrics modules
Users should import these modules from the ekg-core package instead.
2014-04-30 22:12:47 +02:00
Johan Tibell
6418f45ab0 Some haddock improvements 2014-04-24 15:20:44 +02:00
Johan Tibell
f8d7f01ce7 Only expose Distribution write API
This is consistent with other metrics.
2014-04-21 22:33:07 +02:00
Johan Tibell
e74133eb70 Add distribution event type 2014-04-21 15:53:30 +02:00
Johan Tibell
404c891610 Follow Int to Int64 changes in ekg-core 2014-04-21 11:42:14 +02:00
Johan Tibell
0f8352cff3 Break out core metric tracking into a new package
The new package, ekg-core, contains the metrics store, modules for
defining metrics, and functions for sampling the metrics.

The counter naming is also changed to include a namespace part. For
example "myapp.requests".

Finally the JSON format has been changed to be more self-descriptive.
2014-04-20 10:18:13 +02:00
Johan Tibell
52bc89f474 Fix memory leak in new counter implementation
Since we're allocating memory for use outside Haskell, we're
responsible for freeing it. Switched to ForeignPtr to automate this.
2014-04-10 15:21:07 +02:00
Johan Tibell
64e6ba1259 Improve scalability of counters a lot
Counters now scale orders of magnitudes better as the number of
writers to the same counter increases. Here's the results on our
current benchmark on a 6 core machine:

        cores
            1       6
before  1.87s  81.09s
after   0.11s   0.32s

Note how the very heavy contention gives a slowdown rather than a
speedup as the number of cores increases, but the new implementation
slows down much less than the old one and is also generally faster.
2014-04-08 17:25:58 +02:00
Johan Tibell
f487ac6b71 Allow sampling of subsets of all metrics 2013-11-21 21:47:28 +01:00
Johan Tibell
cf16f54193 Don't export S.R.Snap.monitor 2013-11-21 21:46:34 +01:00
Johan Tibell
7c0db01966 Change the API of sampleAll 2013-11-21 21:12:04 +01:00
Johan Tibell
c66c4c97ab Whitespace only 2013-11-05 21:07:14 +01:00
Johan Tibell
bc8955aa30 Move parseHttpAccept to Snap module 2013-11-05 20:52:45 +01:00
Johan Tibell
a2fd56d42c Add a way to get a snapshot of all metrics 2013-05-19 12:14:42 -07:00
Johan Tibell
db950016fc Generalize readAllRefs 2013-05-19 11:57:09 -07:00
Johan Tibell
bb86dce66a Generalize partitionGcStats 2013-05-19 11:53:59 -07:00
Simon Meier
b09050fa6c Factor out and polish counter, gauge, and label serving.
Handlers are no longer triggered by a prefix of their path.
2013-04-10 08:54:14 +02:00
Johan Tibell
cd08cac490 Whitespace only 2013-02-22 09:45:19 -08:00
Johan Tibell
050c472410 Correctly bind the server to the right host name
This allows you to e.g. only listen for connections to localhost. This
fixes #11.
2013-02-21 16:50:42 -08:00
Johan Tibell
19e54b8fbc Add a note on security 2013-02-21 09:51:53 -08:00
Johan Tibell
f66b0ede98 Removing warning on base < 4.6 2013-02-20 09:22:33 -08:00
Johan Tibell
d9368753c5 Remove conditional export of GC counter
Previously par_tot_bytes_copied was only exported if base-6.4 or later
was used to compile ekg. Now it's always exported and uses
parAvgBytesCopied (which has the same meaning as parTotBytesCopied) when
ekg is compiled against older versions of base.
2013-02-20 09:14:00 -08:00
Johan Tibell
30ec8af91b Shorten complicated sentence in documentation 2013-02-20 08:27:19 -08:00
Johan Tibell
dc3adf4dd9 Small documentation tweaks 2013-02-20 08:25:26 -08:00
Johan Tibell
60e28182e9 Move documentation of user-defined counters
It was mistakenly moved to an internal module as part of a refactoring.
2013-02-20 08:23:50 -08:00
Conrad Parker
1bf10844ce Split out Common and Snap modules
Move the Snap-specific code to a single module, to allow backends
using other webservers.
2013-01-03 17:17:10 +08:00
Conrad Parker
d782506466 Extract content builders as IO actions 2013-01-03 16:16:20 +08:00
Johan Tibell
d1e8628204 If GC stats aren't available, just return 0 for all values 2012-09-18 23:11:34 +02:00
Johan Tibell
8ec7f79c6c Check getGcStatsEnabled on 7.6.1 2012-09-18 22:55:07 +02:00
Johan Tibell
27467a61b3 parAvgBytesCopied was renamed in GHC 7.6.1 2012-09-18 22:30:23 +02:00
Johan Tibell
38f4966ada Fix documentation error 2012-04-17 18:33:34 -07:00
Johan Tibell
132a6d1618 Documentation improvements 2012-04-17 18:28:16 -07:00
Iustin Pop
72bd777355 Integrate the Label type into Monitoring.hs
This adds the framework for being able to actually store and retrieve
labels as part of the server. They are exported in the json objects,
but the client-side files will be updated in a separate patch.
2012-04-17 22:25:24 +02:00
Iustin Pop
42357a50ea Add a Label metric type
This is used to hold Text values, which are free-form and can be used
for (e.g.) hostname, command line, etc.

I've used Text, but I'm not sure whether String would make more sense
for (what are supposed to be) such small values.
2012-04-17 22:21:30 +02:00
Iustin Pop
a3879e049e Use FunctionalDependencies for internal 'Ref' class
This is needed for reference types which don't necessarily have an Int
type (for example, they could be Text, or Double, etc.).
2012-04-17 22:07:42 +02:00
Iustin Pop
3700fcdfac Fix a simple typo 2012-04-17 21:17:21 +02:00
Johan Tibell
2a77b569c5 Mention that counters are non-negative 2011-12-31 18:39:14 -08:00
Johan Tibell
ac517faa31 Minor doc tweak 2011-12-31 18:29:41 -08:00
Johan Tibell
89ffba4b2a Doc tweaks 2011-12-31 18:27:11 -08:00
Johan Tibell
c817bdfb5b Fix doc typo 2011-12-31 18:15:09 -08:00
Johan Tibell
3f26e64280 Actual return the server time in the REST API 2011-12-31 18:10:36 -08:00
Johan Tibell
034ffee2eb Improve REST API docs 2011-12-31 11:35:44 -08:00