Commit f2b804b8 authored by 王亮's avatar 王亮

add ip and escape influxdb line data.

parent 62c1c0dd
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- <maven.test.skip>true</maven.test.skip>--> <!-- <maven.test.skip>true</maven.test.skip>-->
<maven.javadoc.skip>true</maven.javadoc.skip> <maven.javadoc.skip>true</maven.javadoc.skip>
<revision>2.6.3.1</revision> <revision>2.6.3.2</revision>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven-source-plugin.version>3.2.1</maven-source-plugin.version> <maven-source-plugin.version>3.2.1</maven-source-plugin.version>
<maven-javadoc-plugin.version>3.3.1</maven-javadoc-plugin.version> <maven-javadoc-plugin.version>3.3.1</maven-javadoc-plugin.version>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<packaging>pom</packaging> <packaging>pom</packaging>
<properties> <properties>
<revision>2.6.3.1</revision> <revision>2.6.3.2</revision>
<spring-boot.version>2.6.3</spring-boot.version> <spring-boot.version>2.6.3</spring-boot.version>
<spring-cloud.version>2021.0.1</spring-cloud.version> <spring-cloud.version>2021.0.1</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version> <spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version>
......
...@@ -17,6 +17,10 @@ ...@@ -17,6 +17,10 @@
<artifactId>spring-boot</artifactId> <artifactId>spring-boot</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency> <dependency>
<groupId>io.micrometer</groupId> <groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId> <artifactId>micrometer-core</artifactId>
......
...@@ -14,6 +14,7 @@ import io.micrometer.core.instrument.util.DoubleFormat; ...@@ -14,6 +14,7 @@ import io.micrometer.core.instrument.util.DoubleFormat;
import io.micrometer.core.instrument.util.MeterPartition; import io.micrometer.core.instrument.util.MeterPartition;
import io.micrometer.core.instrument.util.NamedThreadFactory; import io.micrometer.core.instrument.util.NamedThreadFactory;
import io.micrometer.core.instrument.util.StringUtils; import io.micrometer.core.instrument.util.StringUtils;
import java.time.Instant;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Properties; import java.util.Properties;
...@@ -94,9 +95,10 @@ public class KafkaMeterRegistry extends StepMeterRegistry { ...@@ -94,9 +95,10 @@ public class KafkaMeterRegistry extends StepMeterRegistry {
private String influxLineProtocol(Meter.Id id, String metricType, Stream<Field> fields) { private String influxLineProtocol(Meter.Id id, String metricType, Stream<Field> fields) {
String tags = getConventionTags(id).stream() String tags = getConventionTags(id).stream()
.filter(t -> StringUtils.isNotBlank(t.getValue())) .filter(t -> StringUtils.isNotBlank(t.getValue()))
.map(t -> "," + t.getKey() + "=" + t.getValue()) .map(t -> "," + escapeField(t.getKey()) + "=" + escapeField(t.getValue()))
.collect(joining("")); .collect(joining(""));
Instant.now().getNano();
return getConventionName(id) return getConventionName(id)
+ tags + ",metric_type=" + metricType + " " + tags + ",metric_type=" + metricType + " "
+ fields.map(Field::toString).collect(joining(",")) + fields.map(Field::toString).collect(joining(","))
...@@ -116,10 +118,9 @@ public class KafkaMeterRegistry extends StepMeterRegistry { ...@@ -116,10 +118,9 @@ public class KafkaMeterRegistry extends StepMeterRegistry {
this.key = key; this.key = key;
this.value = value; this.value = value;
} }
@Override @Override
public String toString() { public String toString() {
return key + "=" + DoubleFormat.decimalOrNan(value); return escapeField(key) + "=" + DoubleFormat.decimalOrNan(value);
} }
} }
...@@ -192,5 +193,10 @@ public class KafkaMeterRegistry extends StepMeterRegistry { ...@@ -192,5 +193,10 @@ public class KafkaMeterRegistry extends StepMeterRegistry {
Meter.Id id = m.getId(); Meter.Id id = m.getId();
return Stream.of(influxLineProtocol(id, id.getType().name().toLowerCase(), fields.stream())); return Stream.of(influxLineProtocol(id, id.getType().name().toLowerCase(), fields.stream()));
} }
private static String escapeField(String names){
return names.replace(" ","\\ ").replace(",","\\,");
}
} }
package cn.quantgroup.boot.micrometer.register.kafka; package cn.quantgroup.boot.micrometer.register.kafka;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.nacos.endpoint.NacosDiscoveryEndpoint;
import io.micrometer.core.instrument.Clock; import io.micrometer.core.instrument.Clock;
import io.micrometer.core.instrument.Tag; import io.micrometer.core.instrument.Tag;
import java.util.Arrays; import java.util.Arrays;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
...@@ -20,6 +23,9 @@ public class MicroMeterKafkaAutoConfiguration { ...@@ -20,6 +23,9 @@ public class MicroMeterKafkaAutoConfiguration {
@Value("${spring.application.name}") @Value("${spring.application.name}")
private String applicationName; private String applicationName;
@Autowired
private NacosDiscoveryEndpoint nacosDiscoveryEndpoint;
public MicroMeterKafkaAutoConfiguration( public MicroMeterKafkaAutoConfiguration(
EnochAgentProperties enochAgentProperties) { EnochAgentProperties enochAgentProperties) {
this.enochAgentProperties = enochAgentProperties; this.enochAgentProperties = enochAgentProperties;
...@@ -58,9 +64,12 @@ public class MicroMeterKafkaAutoConfiguration { ...@@ -58,9 +64,12 @@ public class MicroMeterKafkaAutoConfiguration {
} else { } else {
env = System.getProperty("NAMESPACE"); env = System.getProperty("NAMESPACE");
} }
//通过nacos注册服务获取服务地址
String appName = ((NacosDiscoveryProperties)nacosDiscoveryEndpoint.nacosDiscovery().get("NacosDiscoveryProperties")).getService();
String ip = ((NacosDiscoveryProperties)nacosDiscoveryEndpoint.nacosDiscovery().get("NacosDiscoveryProperties")).getIp();
KafkaMeterRegistry kafkaMeterRegistry = new KafkaMeterRegistry(kafkaConfig, Clock.SYSTEM); KafkaMeterRegistry kafkaMeterRegistry = new KafkaMeterRegistry(kafkaConfig, Clock.SYSTEM);
kafkaMeterRegistry.config().commonTags( Arrays.asList( kafkaMeterRegistry.config().commonTags( Arrays.asList(
Tag.of("env", env), Tag.of("application",kafkaConfig.applicationName()))); Tag.of("env", env), Tag.of("application",appName),Tag.of("ip",ip)));
return kafkaMeterRegistry; return kafkaMeterRegistry;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment