Merge branch '1.4.x' into 1.5.x
This commit is contained in:
		
						commit
						6c14420221
					
				| 
						 | 
				
			
			@ -3,7 +3,9 @@ root=true
 | 
			
		|||
[*.java]
 | 
			
		||||
indent_style = tab
 | 
			
		||||
indent_size = 4
 | 
			
		||||
continuation_indent_size = 8
 | 
			
		||||
 | 
			
		||||
[*.xml]
 | 
			
		||||
indent_style = tab
 | 
			
		||||
indent_size = 4
 | 
			
		||||
continuation_indent_size = 8
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,6 +39,7 @@ import org.springframework.util.StringUtils;
 | 
			
		|||
 * a gauge.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Dave Syer
 | 
			
		||||
 * @author Odín del Río
 | 
			
		||||
 * @since 1.3.0
 | 
			
		||||
 */
 | 
			
		||||
public class StatsdMetricWriter implements MetricWriter, Closeable {
 | 
			
		||||
| 
						 | 
				
			
			@ -87,12 +88,13 @@ public class StatsdMetricWriter implements MetricWriter, Closeable {
 | 
			
		|||
 | 
			
		||||
	@Override
 | 
			
		||||
	public void increment(Delta<?> delta) {
 | 
			
		||||
		this.client.count(delta.getName(), delta.getValue().longValue());
 | 
			
		||||
		this.client.count(sanitizeMetricName(delta.getName()),
 | 
			
		||||
				delta.getValue().longValue());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public void set(Metric<?> value) {
 | 
			
		||||
		String name = value.getName();
 | 
			
		||||
		String name = sanitizeMetricName(value.getName());
 | 
			
		||||
		if (name.contains("timer.") && !name.contains("gauge.")
 | 
			
		||||
				&& !name.contains("counter.")) {
 | 
			
		||||
			this.client.recordExecutionTime(name, value.getValue().longValue());
 | 
			
		||||
| 
						 | 
				
			
			@ -117,6 +119,15 @@ public class StatsdMetricWriter implements MetricWriter, Closeable {
 | 
			
		|||
		this.client.stop();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Sanitize the metric name if necessary.
 | 
			
		||||
	 * @param name The metric name
 | 
			
		||||
	 * @return The sanitized metric name
 | 
			
		||||
	 */
 | 
			
		||||
	private String sanitizeMetricName(String name) {
 | 
			
		||||
		return name.replace(":", "-");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private static final class LoggingStatsdErrorHandler
 | 
			
		||||
			implements StatsDClientErrorHandler {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2012-2016 the original author or authors.
 | 
			
		||||
 * Copyright 2012-2017 the original author or authors.
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 | 
			
		|||
 * Tests for {@link StatsdMetricWriter}.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Dave Syer
 | 
			
		||||
 * @author Odín del Río
 | 
			
		||||
 */
 | 
			
		||||
public class StatsdMetricWriterTests {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -97,6 +98,20 @@ public class StatsdMetricWriterTests {
 | 
			
		|||
		assertThat(this.server.messagesReceived().get(0)).isEqualTo("my.gauge.foo:3|g");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void incrementMetricWithInvalidCharsInName() throws Exception {
 | 
			
		||||
		this.writer.increment(new Delta<Long>("counter.fo:o", 3L));
 | 
			
		||||
		this.server.waitForMessage();
 | 
			
		||||
		assertThat(this.server.messagesReceived().get(0)).isEqualTo("me.counter.fo-o:3|c");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void setMetricWithInvalidCharsInName() throws Exception {
 | 
			
		||||
		this.writer.set(new Metric<Long>("gauge.f:o:o", 3L));
 | 
			
		||||
		this.server.waitForMessage();
 | 
			
		||||
		assertThat(this.server.messagesReceived().get(0)).isEqualTo("me.gauge.f-o-o:3|g");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private static final class DummyStatsDServer implements Runnable {
 | 
			
		||||
 | 
			
		||||
		private final List<String> messagesReceived = new ArrayList<String>();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue