anchor.diff:  Vendor specific metrics are not supposed to be portable between different implementations
   of Microprofile
   
  -== Application specific data
  -
  -It is possible for applications to expose their own application metrics on top of the basic set listed above.
  -Application specific metrics are exposed under `/metrics/application`.
  -
  -Application specific metrics are supposed to be portable to other implementations of
  -the Microprofile if the application can run there unmodified.
  -
  -== Security
  -
  -It must be possible to secure the endpoints via the usual means
  -
  -Accessing `/metrics` without valid credentials must return a 401 Unauthorised header
  -
  -Q: should we return 503 Service Unavailable if the server detects an internal bad health state when authorisation is required or stick to a 401 to not expose additional hints to attackers.
  -
  -A server SHOULD implement TLS encryption by default
  -
  -== Setup of metric sources
  -
  -Metrics that are exposed need to be configured in the server.
  -There are two different approaches depending on the scope of the data, which are described next.
  -
  -=== Required + Vendor specific metrics
  -
  -Each vendor of a Microprofile-compliant server can implement setting up the metrics in _base_ and _vendor_ scopes in a
  -vendor-specific way. The metrics can be hard coded into the server or read from a configuration file.
  -The Appendix shows a possible data format for such a configuration.
  -The configuration and set up of  _base_ and _vendor_ scopes  are an implementation detail and are not expected to be portable across vendors.
  -
  -
  -=== Application metrics
  -
  -Application specific metrics can not be backed into the server as they are supposed to be provided by the application at runtime.
  -
  -To access application metrics and its metadata a class `ApplicationMetric` is made available which can be injected
  -via CDI
  -
  -[source]
  -----
  -@Inject
  -ApplicationMetric applicationMetric;
  -----
  -
  -This can then be used to register MetaData
  -
  -[source]
  -----
  -MetadataEntry demoEntry = new MetadataEntry("demo",  // Name, mandatory
  -        null,                                        // display name
  -        "Just a demo value",                         // description
  -        "gauge",                                     // type
  -        "none");                                     // unit
  -demoEntry.setTags("app=demo");
  -applicationMetric.registerMetric("demo", demoEntry);
  -----
  -
  -Registration of a metric is mandatory before it can be used (and is published over the REST api)
  -
  -Writing a value:
  -
  -[source]
  -----
  -applicationMetric.bumpValue("demo",1);  // Increment by 1
  -----
  -
  -or
  -
  -[source]
  -----
  -applicationMetric.setValue("demo",42);   // set to absolute value 42
  -----
  -
  -=== Supplying of Tags
  -
  -Tags can be supplied in two ways
  -
  -* At the level of a metric shown in the above examples
  -* At the application server level by passing the list of tags in an environment variable `MP_METRICS_TAGS`
  -
  -`export MP_METRICS_TAGS=app=shop,tier=integration`
  -
  -Global tags will be appended to the per-metric tags.
  -
  -== Java API classes
  -
  -=== Metadata
  +== 4. Application Metrics Programming Model
  +<paragarph describing what this chapter is about>
  +
  +=== 4.# Annotations
  +<TO DO>
  +
  +=== 4.# Metric Registry
  +<TO DO>
  +
  +=== 4.# Java API Classes
  +
  +==== 4.#.# Metadata
   
   [source]
   ----
  
positive.code: Metrics can also help those scheduling systems to make decisions when to scale the application
  to run on more or less machines depending on the metrical values.
  
  == Format of exposed data (external API)
  
  Data is exposed via REST over http under the `/metrics` base path in two default data formats for `GET` requests:
  
  * Json format.
  
negative.code: ----
  
  
  ==== 2.3.2 Prometheus format
  
  Data is exposed in text format as described in
  https://prometheus.io/docs/instrumenting/exposition_formats/#text-format-details[Prometheus text format] when
  