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 6, 2015
1 parent fa2beab commit 913d96d
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> <version>0.3.2-SNAPSHOT</version>


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


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


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


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


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

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


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


package com.ea.orbit.actors.metrics.config.reporters; 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.MetricRegistry;
import com.codahale.metrics.graphite.Graphite; import com.codahale.metrics.graphite.Graphite;
import com.codahale.metrics.graphite.GraphiteReporter; import com.codahale.metrics.graphite.GraphiteReporter;
Expand All @@ -36,7 +39,7 @@


public class GraphiteReporterConfig extends ReporterConfig public class GraphiteReporterConfig extends ReporterConfig
{ {

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


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


@Override @Override
public void enableReporter(MetricRegistry registry, String uniqueId) public void enableReporter(MetricRegistry registry, String runtimeId)
{ {
if (getPrefix() == null || getPrefix().isEmpty()) String uniquePrefix = buildUniquePrefix(runtimeId);
{ logger.info("Registering with Graphite under prefix: " + uniquePrefix);
setPrefix(uniqueId);
}

final Graphite graphite = new Graphite(new InetSocketAddress(host, port)); final Graphite graphite = new Graphite(new InetSocketAddress(host, port));
final GraphiteReporter reporter = GraphiteReporter.forRegistry(registry) final GraphiteReporter reporter = GraphiteReporter.forRegistry(registry)
.convertRatesTo(getRateTimeUnit()) .convertRatesTo(getRateTimeUnit())
.convertDurationsTo(getDurationTimeUnit()) .convertDurationsTo(getDurationTimeUnit())
.prefixedWith(getPrefix()) .prefixedWith(uniquePrefix)
.build(graphite); .build(graphite);


reporter.start(getPeriod(), getPeriodTimeUnit()); reporter.start(getPeriod(), getPeriodTimeUnit());
Expand Down
Expand Up @@ -108,5 +108,18 @@ protected TimeUnit getPeriodTimeUnit()
return TimeUnit.valueOf(getRateUnit()); 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 @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) final Slf4jReporter reporter = Slf4jReporter.forRegistry(registry)
.convertRatesTo(getRateTimeUnit()) .convertRatesTo(getRateTimeUnit())
.convertDurationsTo(getDurationTimeUnit()) .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) 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); 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 - com.ea.orbit.actors.server.ServerModule


orbit.metrics.reporters: 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 - !!com.ea.orbit.actors.metrics.config.reporters.Slf4jReporterConfig
period: 1 period: 1
periodUnit: 'SECONDS' 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> </encoder>
</appender> </appender>


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

0 comments on commit 913d96d

Please sign in to comment.