You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
spring-boot/spring-boot-samples/spring-boot-sample-metrics-...
Phillip Webb 2e51b48cd9 Refactor actuator package locations
Restructure actuator packages to improve structure. The following
changes have been made:

 - Separate actuator and actuator auto-configuration into different
   modules.
 - Move endpoint code into `spring-boot-actuator`.
 - Move `Endpoint` implementations from a single package into
   technology specific packages.
 - Move `HealthIndicator` implementations from a single package into
   technology specific packages.
 - As much as possible attempt to mirror the `spring-boot` package
   structure and class naming in `spring-boot-actuator` and
   `spring-boot-actuator-autoconfigure`.
 - Move `DataSourceBuilder` and DataSource meta-data support from
   `spring-boot-actuator` to `spring-boot`.

Fixes gh-10261
7 years ago
..
src Refactor actuator package locations 7 years ago
README.adoc Polish updated metrics code 10 years ago
docker-compose.yml Add sample for Redis metric exporter 10 years ago
pom.xml Merge branch '1.5.x' 8 years ago

README.adoc

= Spring Boot sample with Redis export for metrics.

Start redis, e.g. with [Docker Compose]()

[source,indent=0]
----
	$ docker-compose up
----

Run the app and ping the home page (http://localhost:8080) a few times. Go and look at
the result in Redis, e.g.

[source,indent=0]
----
	$ redis-cli
	127.0.0.1:6379> keys *
	1) "keys.spring.metrics"
	2) "spring.metrics.counter.status.200.root"
	3) "spring.metrics.gauge.response.root"
	127.0.0.1:6379> zrange keys.spring.metrics 0 0 WITHSCORES
	1) "spring.metrics.counter.status.200.root"
	2) "4"
----

There is also an `AggregateMetricReader` with public metrics in the application context,
and you can see the result in the "/metrics" (metrics with names in "aggregate.*").
The way the Redis repository was set up (with a random key in the metric names) makes the
aggregates work across restarts of the same application, or across a scaled up application
running in multiple processes. E.g.

[source,indent=0]
----
	$ curl localhost:8080/metrics
	{
		...
		"aggregate.application.counter.status.200.metrics": 12,
		"aggregate.application.counter.status.200.root": 29,
		"aggregate.application.gauge.response.metrics": 43,
		"aggregate.application.gauge.response.root": 5,
		"counter.status.200.root": 2,
		"counter.status.200.metrics": 1,
		"gauge.response.metrics": 43,
		"gauge.response.root": 5
	}
----