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
51dddc2d
Commit
51dddc2d
authored
May 08, 2014
by
Christian Dupuis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add gc information to /metrics endpoint
parent
c38f9bcd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
1 deletion
+29
-1
VanillaPublicMetrics.java
...framework/boot/actuate/endpoint/VanillaPublicMetrics.java
+29
-1
No files found.
spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/VanillaPublicMetrics.java
View file @
51dddc2d
...
...
@@ -17,20 +17,23 @@
package
org
.
springframework
.
boot
.
actuate
.
endpoint
;
import
java.lang.management.ClassLoadingMXBean
;
import
java.lang.management.GarbageCollectorMXBean
;
import
java.lang.management.ManagementFactory
;
import
java.lang.management.MemoryUsage
;
import
java.lang.management.ThreadMXBean
;
import
java.util.Collection
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
import
org.springframework.boot.actuate.metrics.Metric
;
import
org.springframework.boot.actuate.metrics.reader.MetricReader
;
import
org.springframework.util.Assert
;
import
org.springframework.util.StringUtils
;
/**
* Default implementation of {@link PublicMetrics} that exposes all metrics from a
* {@link MetricReader} along with memory information.
*
*
* @author Dave Syer
* @author Christian Dupuis
*/
...
...
@@ -54,6 +57,7 @@ public class VanillaPublicMetrics implements PublicMetrics {
addHeapMetrics
(
result
);
addThreadMetrics
(
result
);
addClassLoadingMetrics
(
result
);
addGarbageCollecitonMetrics
(
result
);
return
result
;
}
...
...
@@ -110,4 +114,28 @@ public class VanillaPublicMetrics implements PublicMetrics {
.
getUnloadedClassCount
())));
}
/**
* Add garbage collection metrics.
*/
protected
void
addGarbageCollecitonMetrics
(
Collection
<
Metric
<?>>
result
)
{
List
<
GarbageCollectorMXBean
>
garbageCollectorMxBeans
=
ManagementFactory
.
getGarbageCollectorMXBeans
();
for
(
int
i
=
0
;
i
<
garbageCollectorMxBeans
.
size
();
i
++)
{
GarbageCollectorMXBean
garbageCollectorMXBean
=
garbageCollectorMxBeans
.
get
(
i
);
String
name
=
beautifyGcName
(
garbageCollectorMXBean
.
getName
());
result
.
add
(
new
Metric
<
Long
>(
"gc."
+
name
+
".count"
,
new
Long
(
garbageCollectorMXBean
.
getCollectionCount
())));
result
.
add
(
new
Metric
<
Long
>(
"gc."
+
name
+
".time"
,
new
Long
(
garbageCollectorMXBean
.
getCollectionTime
())));
}
}
/**
* Turn GC names like 'PS Scavenge' or 'PS MarkSweep' into something that is more
* metrics friendly.
*/
private
String
beautifyGcName
(
String
name
)
{
return
StringUtils
.
replace
(
name
,
" "
,
"_"
).
toLowerCase
();
}
}
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