Closed greglook closed 6 years ago
Merging #19 into develop will increase coverage by
0.76%
. The diff coverage is99.31%
.
@@ Coverage Diff @@
## develop #19 +/- ##
===========================================
+ Coverage 92.1% 92.86% +0.76%
===========================================
Files 10 11 +1
Lines 861 967 +106
Branches 49 50 +1
===========================================
+ Hits 793 898 +105
Misses 19 19
- Partials 49 50 +1
Impacted Files | Coverage Δ | |
---|---|---|
src/blocks/data.clj | 100% <100%> (ø) |
:arrow_up: |
src/blocks/store/cache.clj | 100% <100%> (ø) |
:arrow_up: |
src/blocks/store/buffer.clj | 100% <100%> (ø) |
:arrow_up: |
src/blocks/core.clj | 98.39% <100%> (+0.24%) |
:arrow_up: |
src/blocks/store/replica.clj | 96.15% <100%> (ø) |
:arrow_up: |
src/blocks/meter.clj | 98.66% <98.66%> (ø) |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 3bf530c...61a66bb. Read the comment docs.
WIP - add metrics instrumentation to the block storage methods and block IO.
I decided to take a more general approach here; initially the plan was to use a concrete
MeteredBlockStore
type which would proxy all methods to some underlying store. This turned out to be a bad approach because certain methods use the extension of a protocol (such asBatchingStore
) as a test for when an efficient implementation is available. The metering store would necessarily have to implement these protocols to measure them, which would lead to some code assuming efficient methods were available when in fact they were not.The current approach instead looks for a
:blocks.meter/recorder
function on each store, and uses that to report metric events similar to the ones used by Riemann. It is up to the function how to interpret and record the events received.