Repository: tomee
Updated Branches:
  refs/heads/master 113644b66 -> b489fca7a


Add files via upload

Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/197b44fa
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/197b44fa
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/197b44fa

Branch: refs/heads/master
Commit: 197b44fa88a6c207e9cba093d21c16b7a607665f
Parents: 16052e0
Author: puneethps <[email protected]>
Authored: Mon Dec 24 23:17:08 2018 +0530
Committer: GitHub <[email protected]>
Committed: Mon Dec 24 23:17:08 2018 +0530

----------------------------------------------------------------------
 examples/mp-metrics-metered/README.md | 130 +++++++++++++++++++++++++++++
 1 file changed, 130 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/197b44fa/examples/mp-metrics-metered/README.md
----------------------------------------------------------------------
diff --git a/examples/mp-metrics-metered/README.md 
b/examples/mp-metrics-metered/README.md
new file mode 100644
index 0000000..8008fbe
--- /dev/null
+++ b/examples/mp-metrics-metered/README.md
@@ -0,0 +1,130 @@
+index-group=Unrevised
+type=page
+status=published
+~~~~~~
+# Microprofile Metrics
+This is an example on how to use microprofile metrics in TomEE.
+
+##### Run the application:
+
+    mvn clean install tomee:run 
+
+Within the application, there is an enpoint that will give you a weather 
weather status for the day and week.
+
+##### For the day status call:
+
+    GET http://localhost:8080/mp-metrics-metered/weather/day/status
+    
+##### Response:
+
+    Hi, today is a sunny day!
+
+#### Metered Feature
+MicroProfile metrics has a feature that can be used to find the rate of 
requests to a service.
+
+To use this feature you need to annotate the JAX-RS resource method with 
@Metered.
+
+    @Path("/weather")
+    @Produces(MediaType.APPLICATION_JSON)
+    @Consumes(MediaType.APPLICATION_JSON)
+    @ApplicationScoped
+    public class WeatherService {
+
+        @Path("/day/status")
+        @Metered(name = "dailyStatus", unit = MetricUnits.MINUTES, description 
= "Metrics to daily weather status method", absolute = true)
+        @GET
+        @Produces(MediaType.TEXT_PLAIN)
+        public String dayStatus() {
+            return "Hi, today is a sunny day!";
+        }
+    ...
+    }
+
+There are some configurations, as part of @Metered, that you need to know:
+
+**String name**
+Optional. Sets the name of the metric. If not explicitly given the name of the 
annotated object is used.
+
+**boolean absolute**
+If true, uses the given name as the absolute name of the metric. If false, 
prepends the package name and class name before the given name. Default value 
is false.
+
+**String displayName**
+Optional. A human-readable display name for metadata.
+
+**String description**
+Optional. A description of the metric.
+
+**String[] tags**
+Optional. Array of Strings in the <key>=<value> format to supply special tags 
to a metric.
+
+**boolean reusable**
+Denotes if a metric with a certain name can be registered in more than one 
place. Does not apply to gauges.
+
+**String unit**
+Unit of the metric. Default for @Metered is nanoseconds.
+
+#### Metric data
+
+Check the Metered metric doing a _GET_ request:
+
+##### Prometheus format:
+
+    GET 
http://localhost:8080/mp-metrics-metered/metrics/application/dailyStatus
+    
+##### Response:
+     
+       # TYPE application:daily_status_seconds_count meter
+       application:daily_status_seconds_count 1.2E-7
+       # TYPE application:daily_status_rate_per_second meter
+       application:daily_status_rate_per_second 0.0
+       # TYPE application:daily_status_one_min_rate_per_second meter
+       application:daily_status_one_min_rate_per_second 1.3376002644204984E-19
+       # TYPE application:daily_status_five_min_rate_per_second meter
+       application:daily_status_five_min_rate_per_second 3.5942838529305413E-20
+       # TYPE application:daily_status_fifteen_min_rate_per_second meter
+       application:daily_status_fifteen_min_rate_per_second 
3.4665766454142955E-21
+    
+  
+##### JSON Format:
+
+For json format add the header _Accept=application/json_ to the request. 
+  
+       {
+               "dailyStatus": {
+                       "count": 2,
+                       "fifteenMinRate": 5.77762774235716e-14,
+                       "fiveMinRate": 5.990473088217569e-13,
+                       "meanRate": 0,
+                       "oneMinRate": 2.229333774034164e-12,
+                       "unit": "minutes"
+               }
+       }
+   
+#### Metric metadata
+A metric will have a metadata so you can know more information about it, like 
displayName, description, tags  etc.
+
+Check the metric metadata doing a _OPTIONS_ request:
+
+##### Request
+
+    OPTIONS 
http://localhost:8080/mp-metrics-metered/metrics/application/dailyStatus
+
+##### Response:
+
+       {
+               "dailyStatus": {
+                       "description": "Metrics to daily weather status method",
+                       "displayName": "",
+                       "name": "dailyStatus",
+                       "reusable": false,
+                       "tags": "",
+                       "type": "meter",
+                       "typeRaw": "METERED",
+                       "unit": "minutes"
+               }
+       }
+
+
+##### Test the application:
+
+    mvn test

Reply via email to