Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
9cb64de5
Commit
9cb64de5
authored
Dec 12, 2017
by
Brian Clozel
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #11319 from @alex859
* pr/11319: Apply configurers on MeterRegistry before injection
parents
04068ee7
e1def637
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
4 deletions
+24
-4
MetricsAutoConfiguration.java
...tuate/autoconfigure/metrics/MetricsAutoConfiguration.java
+4
-4
MeterRegistryConfigurerTests.java
...e/autoconfigure/metrics/MeterRegistryConfigurerTests.java
+20
-0
No files found.
spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/MetricsAutoConfiguration.java
View file @
9cb64de5
...
@@ -79,8 +79,11 @@ public class MetricsAutoConfiguration {
...
@@ -79,8 +79,11 @@ public class MetricsAutoConfiguration {
@Bean
@Bean
@ConditionalOnMissingBean
(
MeterRegistry
.
class
)
@ConditionalOnMissingBean
(
MeterRegistry
.
class
)
public
CompositeMeterRegistry
compositeMeterRegistry
(
public
CompositeMeterRegistry
compositeMeterRegistry
(
ObjectProvider
<
Collection
<
MetricsExporter
>>
exporters
)
{
ObjectProvider
<
Collection
<
MetricsExporter
>>
exporters
,
ObjectProvider
<
Collection
<
MeterRegistryConfigurer
>>
configurers
)
{
CompositeMeterRegistry
composite
=
new
CompositeMeterRegistry
();
CompositeMeterRegistry
composite
=
new
CompositeMeterRegistry
();
configurers
.
getIfAvailable
(
Collections:
:
emptyList
)
.
forEach
((
configurer
)
->
configurer
.
configureRegistry
(
composite
));
exporters
.
getIfAvailable
(
Collections:
:
emptyList
).
stream
()
exporters
.
getIfAvailable
(
Collections:
:
emptyList
).
stream
()
.
map
(
MetricsExporter:
:
registry
).
forEach
(
composite:
:
add
);
.
map
(
MetricsExporter:
:
registry
).
forEach
(
composite:
:
add
);
return
composite
;
return
composite
;
...
@@ -119,11 +122,8 @@ public class MetricsAutoConfiguration {
...
@@ -119,11 +122,8 @@ public class MetricsAutoConfiguration {
static
class
MeterRegistryConfigurationSupport
{
static
class
MeterRegistryConfigurationSupport
{
MeterRegistryConfigurationSupport
(
MeterRegistry
registry
,
MeterRegistryConfigurationSupport
(
MeterRegistry
registry
,
ObjectProvider
<
Collection
<
MeterRegistryConfigurer
>>
configurers
,
MetricsProperties
config
,
MetricsProperties
config
,
ObjectProvider
<
Collection
<
MeterBinder
>>
binders
)
{
ObjectProvider
<
Collection
<
MeterBinder
>>
binders
)
{
configurers
.
getIfAvailable
(
Collections:
:
emptyList
)
.
forEach
((
configurer
)
->
configurer
.
configureRegistry
(
registry
));
binders
.
getIfAvailable
(
Collections:
:
emptyList
)
binders
.
getIfAvailable
(
Collections:
:
emptyList
)
.
forEach
((
binder
)
->
binder
.
bindTo
(
registry
));
.
forEach
((
binder
)
->
binder
.
bindTo
(
registry
));
if
(
config
.
isUseGlobalRegistry
())
{
if
(
config
.
isUseGlobalRegistry
())
{
...
...
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/MeterRegistryConfigurerTests.java
View file @
9cb64de5
...
@@ -46,6 +46,18 @@ public class MeterRegistryConfigurerTests {
...
@@ -46,6 +46,18 @@ public class MeterRegistryConfigurerTests {
.
isPresent
());
.
isPresent
());
}
}
@Test
public
void
commonTagsAreAppliedBeforeRegistryIsInjectableElsewhere
()
{
new
ApplicationContextRunner
()
.
withConfiguration
(
AutoConfigurations
.
of
(
MetricsAutoConfiguration
.
class
))
.
withConfiguration
(
UserConfigurations
.
of
(
MeterRegistryConfigurerConfiguration
.
class
))
.
withPropertyValues
(
"metrics.use-global-registry=false"
)
.
run
((
context
)
->
assertThat
(
context
.
getBean
(
MeterRegistry
.
class
)
.
find
(
"my.thing"
).
tags
(
"region"
,
"us-east-1"
).
gauge
())
.
isPresent
());
}
static
class
MeterRegistryConfigurerConfiguration
{
static
class
MeterRegistryConfigurerConfiguration
{
@Bean
@Bean
...
@@ -53,6 +65,14 @@ public class MeterRegistryConfigurerTests {
...
@@ -53,6 +65,14 @@ public class MeterRegistryConfigurerTests {
return
(
registry
)
->
registry
.
config
().
commonTags
(
"region"
,
"us-east-1"
);
return
(
registry
)
->
registry
.
config
().
commonTags
(
"region"
,
"us-east-1"
);
}
}
private
class
MyThing
{}
@Bean
public
MyThing
myThing
(
MeterRegistry
registry
)
{
registry
.
gauge
(
"my.thing"
,
0
);
return
new
MyThing
();
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment