Commit Graph

913 Commits

Author SHA1 Message Date
Peter Paul Bakker
fb3f3c52cf Tweak performance for Prometheus scraping endpoint
Reduce the number of times capacity growth is needed inside the StringWriter.
A typical default SpringBoot Prometheus page has more than 11k characters.
Best performance results when no capacity growth is needed at all, so base
it on previous metrics page size plus some room for possible extra metric info.

See gh-30085
2022-03-09 12:08:26 +01:00
Stephane Nicoll
1bb3f906a7 Polish
See gh-28836
2021-11-29 09:35:51 +01:00
Stephane Nicoll
667bca05ec Polish "Add package info for Spring Data metrics support"
See gh-28756
2021-11-20 17:29:52 +01:00
charissathomas
42ae5114ef Create package-info.java
Closes #28731
2021-11-20 17:29:22 +01:00
Andy Wilkinson
b375f9fac0 Ignore parameters when checking if */* is accepted
Previously the parameters were not ignored so */*;q=0.8 was not
identified as accepting */*. As a result, the most recent producible
content type was returned rather than the default.

This commit updates the argument resolver to ignore parameters.
The default content type is now produced in response to a request
that accepts */*, irrespective of its parameters.

Fixes gh-28446
2021-10-28 12:27:34 +01:00
Andy Wilkinson
50d4eaad63 Merge branch '2.4.x' into 2.5.x
Closes gh-28439
2021-10-22 15:23:07 +01:00
Leo Li
1586232761 Polish
See gh-28367
2021-10-22 15:11:57 +01:00
Phillip Webb
cf8a1b8b04 Merge branch '2.4.x' into 2.5.x
Closes gh-28353
2021-10-14 12:24:04 -07:00
Phillip Webb
b68b3737d7 Sanitize flattened VCAP_SERVICES properties
Update `Sanitizer` to also include flattened `vcap.services.*`
properties.

Fixes gh-28085
2021-10-14 12:22:57 -07:00
Phillip Webb
2430d8a41a Merge branch '2.4.x' into 2.5.x
Closes gh-28347
2021-10-14 11:27:17 -07:00
Phillip Webb
4dc5142128 Prevent cache from consuming too much memory
Change the cache in `CachingOperationInvoker` to be a reference based
map and also clean stale entries when a specific threshold is met.

Fixes gh-28313
2021-10-14 11:23:56 -07:00
Andy Wilkinson
1931104d13 Merge branch '2.4.x' into 2.5.x
Closes gh-28206
2021-10-06 09:57:19 +01:00
Andy Wilkinson
9c9fbf400e Upgrade to Spring Java Format 0.0.29
Closes gh-28205
2021-10-06 09:52:45 +01:00
Andy Wilkinson
437a1601ef Fix broken content negotiation for Prometheus with OpenMetrics
Update Prometheus `TextOutputFormat` so that OpenMetrics is used in
preference to text output when an appropriate accept header is found.

If the accept header contains `*/*` or is missing then the text format
will be used.

See gh-28130
2021-10-05 11:11:52 +01:00
Phillip Webb
d8141e6a8d Allow Producible enums to indicate a default value
Add an `isDefault()` method to `Producible` which can be used to
indicate which of the enum values should be used when the accept header
is `*/*` or `null`.

Prior to this commit, the last enum value was always used as the
default.

See gh-28130
2021-10-05 09:39:28 +01:00
Phillip Webb
a862ebc254 Merge branch '2.4.x' into 2.5.x
Closes gh-28081
2021-09-21 15:20:19 -07:00
Phillip Webb
bbb4ac1542 Sanitize SPRING_APPLICATION_JSON by default
Update `Sanitizer` default keys to include `SPRING_APPLICATION_JSON`.

Fixes gh-28045
2021-09-21 15:18:50 -07:00
Phillip Webb
5ba69634c9 Merge branch '2.4.x' into 2.5.x 2021-09-21 11:17:55 -07:00
Phillip Webb
cfeafee826 Polish 2021-09-21 11:16:46 -07:00
Andy Wilkinson
b2b691b1d0 Merge branch '2.4.x' into 2.5.x
Closes gh-28069
2021-09-20 19:04:48 +01:00
Andy Wilkinson
c2361aeb04 Make WebMvcMetricsFilter set status consistently for all exceptions
Closes gh-27988
2021-09-20 18:07:18 +01:00
Andy Wilkinson
35ea3b234d Prevent repository metrics from causing a circular reference
Fixes gh-27591
2021-08-12 10:26:16 +01:00
Stephane Nicoll
a393c2982c Merge branch '2.4.x' into 2.5.x
Closes gh-27616
2021-08-10 09:58:40 +02:00
Stephane Nicoll
cd0bb969db Fix Potential NPE in TomcatMetricsBinder.findContext()
Closes gh-27576
2021-08-10 09:58:18 +02:00
Andy Wilkinson
a71d19bce7 Merge branch '2.4.x' into 2.5.x
Closes gh-27488
2021-07-26 11:26:08 +01:00
Andy Wilkinson
388068cdff Polish "Sanitize URIs with non-alpha characters in their schemes"
See gh-27482
2021-07-26 11:13:58 +01:00
Billy Tobon
bafa9c4784 Sanitize URIs with non-alpha characters in their schemes
See gh-27482
2021-07-26 11:03:18 +01:00
Andy Wilkinson
d4159130a5 Merge branch '2.4.x' into 2.5.x
Closes gh-27346
2021-07-15 11:50:51 +01:00
Andy Wilkinson
7a23a12ce0 Fix configprops endpoint's handling of config tree values
Fixes gh-27327
2021-07-15 11:50:40 +01:00
Andy Wilkinson
685b78f504 Merge branch '2.4.x' into 2.5.x
Closes gh-27304
2021-07-13 14:56:26 +01:00
Andy Wilkinson
49baacbc1c Polish "Mark Redis as down when cluster_state is fail"
See gh-27300
2021-07-13 14:56:01 +01:00
Hoan Vu Hong
f31141de09 Mark Redis as down when cluster_state is fail
See gh-27300
2021-07-13 14:35:59 +01:00
Andy Wilkinson
d635e1e779 Merge branch '2.4.x' into 2.5.x
Closes gh-26923
2021-06-16 08:28:05 +01:00
Andy Wilkinson
fe078c8afc Avoid capturing URI template when interceptor won't use it
Previously, the URI template handler installed by the client metrics
interceptor would always capture the URI template and push it onto the
deque, irrespective of whether auto timing was enabled. When
auto-timing is disabled the deque is never polled so this led to its
unrestricted growth.

This commit updates the URI template handler so that a URI template is
only pushed onto the deque when the auto timing configuration enables
the interceptor.

Fixes gh-26915
2021-06-16 08:27:51 +01:00
Phillip Webb
850088de32 Merge branch '2.4.x'
Closes gh-26823
2021-06-08 18:17:33 -07:00
Phillip Webb
d5264664e6 Merge branch '2.3.x' into 2.4.x
Closes gh-26822
2021-06-08 18:17:18 -07:00
Phillip Webb
1f6983c4c9 Make CompositeHealth.getDetails() public
Change `CompositeHealth.getDetails()` to public so that it serializes
correctly when `MapperFeature.CAN_OVERRIDE_ACCESS_MODIFIERS` is
disabled.

Fixes gh-26797
2021-06-08 18:17:09 -07:00
Andy Wilkinson
b9abcba778 Merge branch '2.4.x'
Closes gh-26596
2021-05-19 13:38:20 +01:00
Andy Wilkinson
ff45e4c418 Merge branch '2.3.x' into 2.4.x
Closes gh-26595
2021-05-19 13:15:18 +01:00
Andy Wilkinson
936c31c7a7 Prevent metrics failures from adversely affecting web responses
Fixes gh-24151
2021-05-19 13:14:52 +01:00
Stephane Nicoll
367fd64c23 Merge branch '2.4.x'
Closes gh-26325
2021-04-30 13:40:32 +02:00
Stephane Nicoll
c134c38a68 Merge branch '2.3.x' into 2.4.x
Closes gh-26324
2021-04-30 13:40:24 +02:00
Stephane Nicoll
af70da0e92 Update copyright year of changed file
See gh-26321
2021-04-30 13:35:28 +02:00
Matthias Stock
6c8c735027 Fix typo in NamedContributors Javadoc
See gh-26321
2021-04-30 13:35:17 +02:00
Phillip Webb
beaf03a008 Update copyright year of changed files 2021-04-15 12:22:48 -07:00
izeye
e27c85698d Polish
See gh-26135
2021-04-15 16:31:10 +02:00
Phillip Webb
f03f74ff0a Add Spring Data Repository metrics support
Add support for Spring Data Repository metrics by integrating with
Spring Data's new `RepositoryMethodInvocationListener` support.

Closes gh-22217
2021-04-09 23:49:25 -07:00
Phillip Webb
9f16491535 Rework @Timer annotation support
Rework existing `@Timer` annotation support to remove duplicate code
and offer general purpose utilities that can be used in future metrics
support.

See gh-23112
See gh-22217
2021-04-09 23:39:39 -07:00
Phillip Webb
3d7e5e3abd Polish 2021-04-09 23:38:32 -07:00
Phillip Webb
15fe41868e Polish 'Support @Timed annotation for WebFlux'
Extract common method logic to a `HandlerMethodTimedAnnotations`
utility class and also add some caching. Also move the test code
into a single class.

See gh-23112
2021-04-08 23:01:21 -07:00