TOMEE-2405 - created examples/mp-metrics-counted /README.adoc and added index-group MicroProfile
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/81f70620 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/81f70620 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/81f70620 Branch: refs/heads/master Commit: 81f70620628f576ada9718afa31fe382a90e8330 Parents: dcccfc3 Author: CesarHernandezGt <[email protected]> Authored: Wed Dec 19 20:51:24 2018 -0600 Committer: CesarHernandezGt <[email protected]> Committed: Wed Dec 19 20:53:37 2018 -0600 ---------------------------------------------------------------------- examples/mp-metrics-counted/README.adoc | 149 +++++++++++++++++++++++++++ examples/mp-metrics-counted/README.md | 127 ----------------------- 2 files changed, 149 insertions(+), 127 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/81f70620/examples/mp-metrics-counted/README.adoc ---------------------------------------------------------------------- diff --git a/examples/mp-metrics-counted/README.adoc b/examples/mp-metrics-counted/README.adoc new file mode 100644 index 0000000..f5d8c95 --- /dev/null +++ b/examples/mp-metrics-counted/README.adoc @@ -0,0 +1,149 @@ +:index-group: MicroProfile +:jbake-type: page +:jbake-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 endpoint that will give you weather +status for the day and week. + +== For the day status call: + +.... +GET http://localhost:8080/rest-mp-metrics/weather/day/status +.... + +== Response: + +.... +Hi, today is a sunny day! +.... + +== Counted Feature + +MicroProfile metrics has a feature that can be used to count requests to +a service. + +To use this feature you need to annotate the JAX-RS resource method with +@Counted. + +.... +@Path("/weather") +@Produces(MediaType.APPLICATION_JSON) +@Consumes(MediaType.APPLICATION_JSON) +@ApplicationScoped +public class WeatherService { + + @Path("/day/status") + @Counted(monotonic = true, name = "weather_day_status", absolute = true) + @GET + @Produces(MediaType.TEXT_PLAIN) + public String dayStatus() { + return "Hi, today is a sunny day!"; + } +... +} +.... + +There are some configurations, as part of @Counted, 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 = 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. + +== Metric data + +Check the counter metric doing a _GET_ request: + +=== Prometheus format: + +.... +GET http://localhost:8080/mp-metrics-counted/metrics/application/weather_day_status +.... + +=== Response: + +.... +# TYPE application:weather_day_status counter +application:weather_day_status 1.0 +.... + +=== JSON Format: + +For json format add the header _Accept=application/json_ to the request. + +.... +{ + "weather_day_status": { + "delegate": {}, + "unit": "none", + "count": 1 + } +} +.... + +== Metric metadata + +A metric will have a metadata so you can know more information about it, +like displayName, description, tags e etc. + +Check the metric metadata doing a _OPTIONS_ request: + +=== Request + +.... +OPTIONS http://localhost:8080/mp-metrics-counted/metrics/application/weather_day_status +.... + +=== Response: + +.... +{ + "weather_day_status": { + "unit": "none", + "displayName": "Weather Day Status", + "name": "weather_day_status", + "typeRaw": "COUNTER", + "description": "This metric shows the weather status of the day.", + "type": "counter", + "value": { + "unit": "none", + "displayName": "Weather Day Status", + "name": "weather_day_status", + "tagsAsString": "", + "typeRaw": "COUNTER", + "description": "This metric shows the weather status of the day.", + "type": "counter", + "reusable": false, + "tags": {} + }, + "reusable": false, + "tags": "" + } +} +.... + +You can also try it out using the WeatherServiceTest.java available in +the project. http://git-wip-us.apache.org/repos/asf/tomee/blob/81f70620/examples/mp-metrics-counted/README.md ---------------------------------------------------------------------- diff --git a/examples/mp-metrics-counted/README.md b/examples/mp-metrics-counted/README.md deleted file mode 100644 index eb6c2fd..0000000 --- a/examples/mp-metrics-counted/README.md +++ /dev/null @@ -1,127 +0,0 @@ -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 endpoint that will give you weather status for the day and week. - -##### For the day status call: - - GET http://localhost:8080/rest-mp-metrics/weather/day/status - -##### Response: - - Hi, today is a sunny day! - - -#### Counted Feature -MicroProfile metrics has a feature that can be used to count requests to a service. - -To use this feature you need to annotate the JAX-RS resource method with @Counted. - - @Path("/weather") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - @ApplicationScoped - public class WeatherService { - - @Path("/day/status") - @Counted(monotonic = true, name = "weather_day_status", absolute = true) - @GET - @Produces(MediaType.TEXT_PLAIN) - public String dayStatus() { - return "Hi, today is a sunny day!"; - } - ... - } - -There are some configurations, as part of @Counted, 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. - -#### Metric data - -Check the counter metric doing a _GET_ request: - -##### Prometheus format: - - GET http://localhost:8080/mp-metrics-counted/metrics/application/weather_day_status - -##### Response: - - # TYPE application:weather_day_status counter - application:weather_day_status 1.0 - - -##### JSON Format: - -For json format add the header _Accept=application/json_ to the request. - - { - "weather_day_status": { - "delegate": {}, - "unit": "none", - "count": 1 - } - } - -#### Metric metadata -A metric will have a metadata so you can know more information about it, like displayName, description, tags e etc. - -Check the metric metadata doing a _OPTIONS_ request: - -##### Request - - OPTIONS http://localhost:8080/mp-metrics-counted/metrics/application/weather_day_status - -##### Response: - - { - "weather_day_status": { - "unit": "none", - "displayName": "Weather Day Status", - "name": "weather_day_status", - "typeRaw": "COUNTER", - "description": "This metric shows the weather status of the day.", - "type": "counter", - "value": { - "unit": "none", - "displayName": "Weather Day Status", - "name": "weather_day_status", - "tagsAsString": "", - "typeRaw": "COUNTER", - "description": "This metric shows the weather status of the day.", - "type": "counter", - "reusable": false, - "tags": {} - }, - "reusable": false, - "tags": "" - } - } - -You can also try it out using the WeatherServiceTest.java available in the project. -
