Updates in Metrics documentation, and changed doc sample to use a closure instead of anonymous class.
Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/28f2e974 Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/28f2e974 Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/28f2e974 Branch: refs/heads/serialization-3.0 Commit: 28f2e9748a259539092256698babf93b82564c8a Parents: c71f1b2 Author: niclas <[email protected]> Authored: Sat Feb 25 12:45:08 2017 +0800 Committer: niclas <[email protected]> Committed: Sat Feb 25 12:45:08 2017 +0800 ---------------------------------------------------------------------- core/api/src/docs/metrics.txt | 17 ++++++++++++- .../api/metrics/DocumentationSupport.java | 26 +++++--------------- 2 files changed, 22 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/28f2e974/core/api/src/docs/metrics.txt ---------------------------------------------------------------------- diff --git a/core/api/src/docs/metrics.txt b/core/api/src/docs/metrics.txt index af3529e..766ed3a 100644 --- a/core/api/src/docs/metrics.txt +++ b/core/api/src/docs/metrics.txt @@ -39,7 +39,7 @@ handling. A Gauge can represent anything, for instance, thread pool levels, queue sizes and other resource allocations. It is useful to have separate gauges for percentage (%) and absolute numbers of the same resource. Operations are mainly -interested in being alerted when threshold are reach as a percentage, as it is otherwise too many numbers to keep +interested in being alerted when threshold are reached as a percentage, as it is otherwise too many numbers to keep track of. To create a Gauge, you do something like; @@ -51,6 +51,10 @@ tag=gauge -------------- == Counter == +Often we want to track the many counters in a system. This might be "number of HTTP requests" or +"filesystem access frequency". By creating a _Counter_ metrics, it is simply a matter of calling the _increment_ +or _decrement_ on that metric. This will track both number of counts/steps as well as the rate (per second), and +many visualization platforms. such as Kibana, Graphite and Grafana, are made to handle this particular metric very well. [snippet,java] -------------- @@ -59,6 +63,9 @@ tag=counter -------------- == Histogram == +Histograms is about computing the running standard deviations and variances. Please see +http://www.johndcook.com/standard_deviation.html["Accurately computing running variance"] for more detailed information. + [snippet,java] -------------- source=core/api/src/test/java/org/apache/polygene/api/metrics/DocumentationSupport.java @@ -66,6 +73,12 @@ tag=histogram -------------- == Meter == +The _Meter_ is a more advanced _Counter_, which measures mean throughput and one-, five-, and fifteen-minute +exponentially-weighted moving average throughputs. + +Wikipedia has a section +http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average["Exponential moving average"] in the +"Moving Average" article. [snippet,java] -------------- @@ -84,6 +97,8 @@ tag=timer -------------- == HealthCheck == +HealthCheck is a metric to report the health of a system or component. The HealthCheck metric will be called upon +regularly to report its status, which is then forwarded to the monitoring system. [snippet,java] -------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/28f2e974/core/api/src/test/java/org/apache/polygene/api/metrics/DocumentationSupport.java ---------------------------------------------------------------------- diff --git a/core/api/src/test/java/org/apache/polygene/api/metrics/DocumentationSupport.java b/core/api/src/test/java/org/apache/polygene/api/metrics/DocumentationSupport.java index 654bd5d..78f9b43 100644 --- a/core/api/src/test/java/org/apache/polygene/api/metrics/DocumentationSupport.java +++ b/core/api/src/test/java/org/apache/polygene/api/metrics/DocumentationSupport.java @@ -38,14 +38,7 @@ public class DocumentationSupport // END SNIPPET: gauge // START SNIPPET: gauge MetricsGaugeFactory gaugeFactory = provider.createFactory( MetricsGaugeFactory.class ); - MetricsGauge<Integer> gauge = gaugeFactory.registerGauge( "Sample Gauge", new MetricsGauge<Integer>() - { - @Override - public Integer value() - { - return queue.size(); - } - } ); + MetricsGauge<Integer> gauge = gaugeFactory.registerGauge( "Sample Gauge", () -> queue.size() ); // END SNIPPET: gauge // START SNIPPET: counter @@ -70,18 +63,11 @@ public class DocumentationSupport // START SNIPPET: healthcheck MetricsHealthCheckFactory healthFactory = provider.createFactory( MetricsHealthCheckFactory.class ); - MetricsHealthCheck healthCheck = healthFactory.registerHealthCheck( - "Sample Healthcheck", - new MetricsHealthCheck() - { - @Override - public Result check() - throws Exception - { - ServiceStatus status = pingMyService(); - return new Result( status.isOk(), status.getErrorMessage(), status.getException() ); - } - } ); + MetricsHealthCheck healthCheck = healthFactory.registerHealthCheck( "Sample Healthcheck", () -> + { + ServiceStatus status = pingMyService(); + return new MetricsHealthCheck.Result( status.isOk(), status.getErrorMessage(), status.getException() ); + } ); // END SNIPPET: healthcheck }
