Skip to content

Commit

Permalink
Reference doc update for system (#4598)
Browse files Browse the repository at this point in the history
Co-authored-by: Jonatan Ivanov <jonatan.ivanov@gmail.com>
  • Loading branch information
marcingrzejszczak and jonatan-ivanov committed Jan 19, 2024
1 parent afccf81 commit be6743f
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
** xref:reference/mongodb.adoc[MongoDB]
** xref:reference/netty.adoc[Netty]
** xref:reference/okhttpclient.adoc[OkHttpClient]
** xref:reference/system.adoc[System]
** xref:reference/tomcat.adoc[Tomcat]
* xref:guides.adoc[Guides]
** xref:guides/console-reporter.adoc[Passing through to Dropwizard's console reporter]
Expand Down
48 changes: 48 additions & 0 deletions docs/modules/ROOT/pages/reference/system.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
[[overview]]
= System Metrics

Micrometer provides several binders for system monitoring:

* <<system-disk, Disk Space Metrics>>
* <<system-file, File Descriptor Metrics>>
* <<system-processor, Processor Metrics>>
* <<system-uptime, Uptime Metrics>>

[[system-disk]]
== System Disk Space Metrics

[source,java,subs=+attributes]
-----
// Usage example
include::{include-core-test-java}/io/micrometer/core/instrument/binder/system/DiskSpaceMetricsTest.java[tags=example, indent=0]
-----

[[system-file]]
== System File Descriptor Metrics

[source,java,subs=+attributes]
-----
// Usage example
include::{include-core-test-java}/io/micrometer/core/instrument/binder/system/FileDescriptorMetricsTest.java[tags=example, indent=0]
-----

[[system-processor]]
== System Processor Metrics

[source,java,subs=+attributes]
-----
// Instrumentation setup
include::{include-core-test-java}/io/micrometer/core/instrument/binder/system/ProcessorMetricsTest.java[tags=setup, indent=0]
// Usage example
include::{include-core-test-java}/io/micrometer/core/instrument/binder/system/ProcessorMetricsTest.java[tags=example, indent=0]
-----

[[system-uptime]]
== System Uptime Metrics

[source,java,subs=+attributes]
-----
// Usage example
include::{include-core-test-java}/io/micrometer/core/instrument/binder/system/UptimeMetricsTest.java[tags=example, indent=0]
-----
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,12 @@ class DiskSpaceMetricsTest {

@Test
void diskSpaceMetrics() {
// tag::example[]
new DiskSpaceMetrics(new File(System.getProperty("user.dir"))).bindTo(registry);

assertThat(registry.get("disk.free").gauge().value()).isNotNaN().isGreaterThan(0);
assertThat(registry.get("disk.total").gauge().value()).isNotNaN().isGreaterThan(0);
// end::example[]
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,12 @@ void fileDescriptorMetricsUnsupportedOsBeanMock() {
void unixFileDescriptorMetrics() {
assumeFalse(System.getProperty("os.name").toLowerCase().contains("win"));

// tag::example[]
new FileDescriptorMetrics(Tags.of("some", "tag")).bindTo(registry);

assertThat(registry.get("process.files.open").tags("some", "tag").gauge().value()).isGreaterThan(0);
assertThat(registry.get("process.files.max").tags("some", "tag").gauge().value()).isGreaterThan(0);
// end::example[]
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@ class ProcessorMetricsTest {

@BeforeEach
void setup() {
// tag::setup[]
new ProcessorMetrics().bindTo(registry);
// end::setup[]
}

@Test
Expand All @@ -59,8 +61,10 @@ void cpuMetrics() {
void hotspotCpuMetrics() {
assumeTrue(!isOpenJ9());

// tag::example[]
assertThat(registry.get("system.cpu.usage").gauge().value()).isNotNegative();
assertThat(registry.get("process.cpu.usage").gauge().value()).isNotNegative();
// end::example[]
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,16 @@ void uptimeMetricsRuntime() {

@Test
void uptimeMetricsMock() {
MeterRegistry registry = new SimpleMeterRegistry(SimpleConfig.DEFAULT, new MockClock());
RuntimeMXBean runtimeMXBean = mock(RuntimeMXBean.class);
when(runtimeMXBean.getUptime()).thenReturn(1337L);
when(runtimeMXBean.getStartTime()).thenReturn(4711L);
// tag::example[]
MeterRegistry registry = new SimpleMeterRegistry(SimpleConfig.DEFAULT, new MockClock());
new UptimeMetrics(runtimeMXBean, emptyList()).bindTo(registry);

assertThat(registry.get("process.uptime").timeGauge().value()).isEqualTo(1.337);
assertThat(registry.get("process.start.time").timeGauge().value()).isEqualTo(4.711);
// end::example[]
}

}

0 comments on commit be6743f

Please sign in to comment.