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
5c9aa41c
Commit
5c9aa41c
authored
Jan 17, 2017
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update InMemoryRichGaugeRepository to support increments
Closes gh-2902
parent
cb7ae2e6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
39 additions
and
7 deletions
+39
-7
InMemoryRichGaugeRepository.java
...oot/actuate/metrics/rich/InMemoryRichGaugeRepository.java
+19
-6
InMemoryRichGaugeRepositoryTests.java
...ctuate/metrics/rich/InMemoryRichGaugeRepositoryTests.java
+20
-1
No files found.
spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/rich/InMemoryRichGaugeRepository.java
View file @
5c9aa41c
/*
* Copyright 2012-201
6
the original author or authors.
* Copyright 2012-201
7
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -24,19 +24,32 @@ import org.springframework.boot.actuate.metrics.writer.MetricWriter;
/**
* In memory implementation of {@link MetricWriter} and {@link RichGaugeReader}. When you
*
set a metric value (using {@link MetricWriter#set(Metric)}) it is used to update a rich
*
gauge (increment is a no-op). Gauge values can then be read out using the reader
* operations.
*
{@link MetricWriter#set(Metric) set} or {@link MetricWriter#increment(Delta) increment}
*
a metric value it is used to update a {@link RichGauge}. Gauge values can then be read
* o
ut using the reader o
perations.
*
* @author Dave Syer
* @author Andy Wilkinson
*/
public
class
InMemoryRichGaugeRepository
implements
RichGaugeRepository
{
private
final
SimpleInMemoryRepository
<
RichGauge
>
repository
=
new
SimpleInMemoryRepository
<
RichGauge
>();
@Override
public
void
increment
(
Delta
<?>
delta
)
{
// No-op
public
void
increment
(
final
Delta
<?>
delta
)
{
this
.
repository
.
update
(
delta
.
getName
(),
new
Callback
<
RichGauge
>()
{
@Override
public
RichGauge
modify
(
RichGauge
current
)
{
double
value
=
((
Number
)
delta
.
getValue
()).
doubleValue
();
if
(
current
==
null
)
{
return
new
RichGauge
(
delta
.
getName
(),
value
);
}
current
.
set
(
current
.
getValue
()
+
value
);
return
current
;
}
});
}
@Override
...
...
spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/rich/InMemoryRichGaugeRepositoryTests.java
View file @
5c9aa41c
/*
* Copyright 2012-201
6
the original author or authors.
* Copyright 2012-201
7
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -19,12 +19,16 @@ package org.springframework.boot.actuate.metrics.rich;
import
org.junit.Test
;
import
org.springframework.boot.actuate.metrics.Metric
;
import
org.springframework.boot.actuate.metrics.writer.Delta
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
offset
;
/**
* Tests for {@link InMemoryRichGaugeRepository}.
*
* @author Dave Syer
* @author Andy Wilkinson
*/
public
class
InMemoryRichGaugeRepositoryTests
{
...
...
@@ -38,4 +42,19 @@ public class InMemoryRichGaugeRepositoryTests {
assertThat
(
this
.
repository
.
findOne
(
"foo"
).
getValue
()).
isEqualTo
(
2
d
,
offset
(
0.01
));
}
@Test
public
void
incrementExisting
()
{
this
.
repository
.
set
(
new
Metric
<
Double
>(
"foo"
,
1
d
));
this
.
repository
.
increment
(
new
Delta
<
Double
>(
"foo"
,
2
d
));
assertThat
(
this
.
repository
.
findOne
(
"foo"
).
getCount
()).
isEqualTo
(
2L
);
assertThat
(
this
.
repository
.
findOne
(
"foo"
).
getValue
()).
isEqualTo
(
3
d
,
offset
(
0.01
));
}
@Test
public
void
incrementNew
()
{
this
.
repository
.
increment
(
new
Delta
<
Double
>(
"foo"
,
2
d
));
assertThat
(
this
.
repository
.
findOne
(
"foo"
).
getCount
()).
isEqualTo
(
1L
);
assertThat
(
this
.
repository
.
findOne
(
"foo"
).
getValue
()).
isEqualTo
(
2
d
,
offset
(
0.01
));
}
}
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