com.flozano.metrics:metrics-core

A metrics engine with different backends (eg: statsd-netty)

License

License

Categories

Categories

Metrics Application Testing & Monitoring Monitoring
GroupId

GroupId

com.flozano.metrics
ArtifactId

ArtifactId

metrics-core
Last Version

Last Version

0.3.0
Release Date

Release Date

Type

Type

jar
Description

Description

A metrics engine with different backends (eg: statsd-netty)

Download metrics-core

How to add to project

<!-- https://jarcasting.com/artifacts/com.flozano.metrics/metrics-core/ -->
<dependency>
    <groupId>com.flozano.metrics</groupId>
    <artifactId>metrics-core</artifactId>
    <version>0.3.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.flozano.metrics/metrics-core/
implementation 'com.flozano.metrics:metrics-core:0.3.0'
// https://jarcasting.com/artifacts/com.flozano.metrics/metrics-core/
implementation ("com.flozano.metrics:metrics-core:0.3.0")
'com.flozano.metrics:metrics-core:jar:0.3.0'
<dependency org="com.flozano.metrics" name="metrics-core" rev="0.3.0">
  <artifact name="metrics-core" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.flozano.metrics', module='metrics-core', version='0.3.0')
)
libraryDependencies += "com.flozano.metrics" % "metrics-core" % "0.3.0"
[com.flozano.metrics/metrics-core "0.3.0"]

Dependencies

compile (2)

Group / Artifact Type Version
org.slf4j : slf4j-api jar 1.7.14
com.google.guava : guava jar 19.0

test (4)

Group / Artifact Type Version
junit : junit jar 4.12
org.mockito : mockito-all jar 1.10.17
ch.qos.logback : logback-classic jar 1.1.3
com.jayway.awaitility : awaitility jar 1.7.0

Project Modules

There are no modules declared in this project.

statsd-netty

Build Status

A Netty-based statsd client with Apache 2.0 License.

It requires Java 8, netty and SLF4J.

How to use:

Maven dependency:

		<dependency>
			<groupId>com.flozano.statsd-netty</groupId>
			<artifactId>statsd-netty</artifactId>
			<version>0.1.4</version>
		</dependency>

Example code:

		try (Metrics metrics = MetricsBuilder.create()
				.withClient((clientBuilder) -> //
						clientBuilder.withHost("127.0.0.1") //
								.withPort(8125) //
								.withSampleRate(0.5) // send 50% of metrics only
				).withClock(Clock.systemUTC()).build()) {

			// Send a counter metric immediately
			metrics.counter("visitors").hit();

			// Create a batch of metrics that will be sent at the end of the try
			// block.
			try (Metrics batch = metrics.batch()) {
				batch.gauge("activeDatabaseConnections").value(
						getConnectionsFromPool());
				batch.gauge("activeSessions").delta(-1);
			}

			// Schedule a couple of gauges to be reported every 60 seconds
			metrics.gauge("databaseConnectionPool", "activeConnections")
					.supply(60, TimeUnit.SECONDS,
							() -> getConnectionsFromPool());

			metrics.gauge("databaseConnectionPool", "waitingForConnection")
					.supply(1, TimeUnit.MINUTES,
							() -> getWaitingForConnection());

			// Measure the time spent inside the try block
			try (TimeKeeping o = metrics.timer("timeSpentSavingData").time()) {
				saveData();
			}
		}

(note that you should keep the "Metrics" instance open for the whole lifecycle of your application).

Copyright 2014 Francisco A. Lozano López

Bitdeli Badge

Versions

Version
0.3.0
0.2.1