Skip to content

Commit

Permalink
Improved Graphite reporting
Browse files Browse the repository at this point in the history
  • Loading branch information
FieldFlux committed Jun 18, 2015
1 parent 7b3cb64 commit 40a57e4
Show file tree
Hide file tree
Showing 9 changed files with 37 additions and 28 deletions.
3 changes: 1 addition & 2 deletions actors/metrics/pom.xml
Expand Up @@ -44,7 +44,7 @@
<version>0.3.2-SNAPSHOT</version>

<properties>
<metrics.version>3.1.0</metrics.version>
<metrics.version>3.1.2</metrics.version>
</properties>

<dependencies>
Expand All @@ -65,7 +65,6 @@
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-graphite</artifactId>
<version>${metrics.version}</version>
<optional>true</optional>
</dependency>

<dependency>
Expand Down
Expand Up @@ -61,7 +61,7 @@ public class MetricsManager

public synchronized void initializeMetrics(String uniqueId)
{
if (!isInitialized)
if (!isInitialized && reporterConfigs != null)
{
for (ReporterConfig reporterConfig : reporterConfigs)
{
Expand Down
Expand Up @@ -68,20 +68,15 @@ public void setPort(final int port)
}

@Override
public void enableReporter(MetricRegistry registry, String uniqueId)
public void enableReporter(MetricRegistry registry, String runtimeId)
{
if (getPrefix() == null || getPrefix().isEmpty())
{
setPrefix(uniqueId);
}

try
{
final GMetric ganglia = new GMetric(host, port, GMetric.UDPAddressingMode.MULTICAST,1);
final GangliaReporter reporter = GangliaReporter.forRegistry(registry)
.convertRatesTo(getRateTimeUnit())
.convertDurationsTo(getDurationTimeUnit())
.prefixedWith(getPrefix())
.prefixedWith(buildUniquePrefix(runtimeId))
.build(ganglia);

reporter.start(getPeriod(), getPeriodTimeUnit());
Expand Down
Expand Up @@ -28,6 +28,9 @@

package com.ea.orbit.actors.metrics.config.reporters;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.graphite.Graphite;
import com.codahale.metrics.graphite.GraphiteReporter;
Expand All @@ -36,7 +39,7 @@

public class GraphiteReporterConfig extends ReporterConfig
{

private static final Logger logger = LoggerFactory.getLogger(GraphiteReporterConfig.class);
private String host;
private int port;

Expand All @@ -61,18 +64,15 @@ public void setPort(final int port)
}

@Override
public void enableReporter(MetricRegistry registry, String uniqueId)
public void enableReporter(MetricRegistry registry, String runtimeId)
{
if (getPrefix() == null || getPrefix().isEmpty())
{
setPrefix(uniqueId);
}

String uniquePrefix = buildUniquePrefix(runtimeId);
logger.info("Registering with Graphite under prefix: " + uniquePrefix);
final Graphite graphite = new Graphite(new InetSocketAddress(host, port));
final GraphiteReporter reporter = GraphiteReporter.forRegistry(registry)
.convertRatesTo(getRateTimeUnit())
.convertDurationsTo(getDurationTimeUnit())
.prefixedWith(getPrefix())
.prefixedWith(uniquePrefix)
.build(graphite);

reporter.start(getPeriod(), getPeriodTimeUnit());
Expand Down
Expand Up @@ -108,5 +108,18 @@ protected TimeUnit getPeriodTimeUnit()
return TimeUnit.valueOf(getRateUnit());
}

public void enableReporter(MetricRegistry registry, String uniqueId) {};
public void enableReporter(MetricRegistry registry, String runtimeId) {};

protected String buildUniquePrefix(String runtimeId)
{
StringBuilder uniquePrefix = new StringBuilder();
if (getPrefix() != null && !getPrefix().isEmpty())
{
uniquePrefix.append(getPrefix());
uniquePrefix.append(".");
}
uniquePrefix.append(runtimeId);

return uniquePrefix.toString();
}
}
Expand Up @@ -46,13 +46,8 @@ public void setLoggerName(final String loggerName)
}

@Override
public void enableReporter(MetricRegistry registry, String uniqueId)
public void enableReporter(MetricRegistry registry, String runtimeId)
{
if (getPrefix() == null || getPrefix().isEmpty())
{
setPrefix(uniqueId);
}

final Slf4jReporter reporter = Slf4jReporter.forRegistry(registry)
.convertRatesTo(getRateTimeUnit())
.convertDurationsTo(getDurationTimeUnit())
Expand Down
5 changes: 4 additions & 1 deletion actors/stage/src/main/java/com/ea/orbit/actors/Stage.java
Expand Up @@ -248,7 +248,10 @@ public Task<?> start()

if (metricsManager != null)
{
metricsManager.initializeMetrics(runtimeIdentity());
String cleanRuntimeId = runtimeIdentity().replaceAll("[\\[\\]\\.\\\\/]", ""); //strip illegal characters
cleanRuntimeId = cleanRuntimeId.replace("Orbit","");
cleanRuntimeId = getClusterName() + "." + getNodeName() + "." + cleanRuntimeId;
metricsManager.initializeMetrics(cleanRuntimeId);
metricsManager.registerExportedMetrics(execution);
}

Expand Down
6 changes: 5 additions & 1 deletion samples/chat/chat-actors/src/main/resources/conf/orbit.yaml
Expand Up @@ -41,7 +41,11 @@ orbit.components:
- com.ea.orbit.actors.server.ServerModule

orbit.metrics.reporters:
- !!com.ea.orbit.actors.metrics.config.reporters.GraphiteReporterConfig
period: 1
periodUnit: 'SECONDS'
host: graphite-int.fieldflux.ca
port: 2003
- !!com.ea.orbit.actors.metrics.config.reporters.Slf4jReporterConfig
period: 1
periodUnit: 'SECONDS'
loggerName: metrics
2 changes: 1 addition & 1 deletion samples/chat/chat-actors/src/main/resources/logback.xml
Expand Up @@ -6,7 +6,7 @@
</encoder>
</appender>

<root level="info">
<root level="debug">
<appender-ref ref="STDOUT"/>
</root>
</configuration>

0 comments on commit 40a57e4

Please sign in to comment.