Commit f749a398 authored by 王亮's avatar 王亮

add two tags.

parent 0a2e070d
......@@ -17,4 +17,7 @@ public interface KafkaConfig extends StepRegistryConfig {
return "metrics";
}
default String applicationName(){
return "default";
}
}
......@@ -8,6 +8,7 @@ import io.micrometer.core.instrument.FunctionTimer;
import io.micrometer.core.instrument.LongTaskTimer;
import io.micrometer.core.instrument.Measurement;
import io.micrometer.core.instrument.Meter;
import io.micrometer.core.instrument.Tag;
import io.micrometer.core.instrument.Timer;
import io.micrometer.core.instrument.step.StepMeterRegistry;
import io.micrometer.core.instrument.util.DoubleFormat;
......@@ -33,6 +34,8 @@ public class KafkaMeterRegistry extends StepMeterRegistry {
private KafkaProducer<String, String> kafkaProducer;
private final String key;
private final List<Tag> tags = new ArrayList<>();
public KafkaMeterRegistry(KafkaConfig config, Clock clock) {
......@@ -44,6 +47,31 @@ public class KafkaMeterRegistry extends StepMeterRegistry {
key = System.getProperty("NAMESPACE");
}
tags.add(new Tag() {
@Override
public String getKey() {
return "namespace";
}
@Override
public String getValue() {
return key;
}
});
tags.add(new Tag() {
@Override
public String getKey() {
return "application";
}
@Override
public String getValue() {
return config.applicationName();
}
});
Properties properties = new Properties();
properties.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, config.services());
properties.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,
......@@ -64,7 +92,11 @@ public class KafkaMeterRegistry extends StepMeterRegistry {
protected void publish() {
for (List<Meter> batch : MeterPartition.partition(this, config.batchSize())) {
batch.stream()
batch.stream().map(i->
{
getConventionTags(i.getId()).addAll(tags);
return i;
})
.flatMap(m -> m.match(
gauge -> writeGauge(gauge.getId(), gauge.value()),
counter -> writeCounter(counter.getId(), counter.count()),
......
......@@ -2,6 +2,7 @@ package cn.quantgroup.ext.micrometer.register.kafka;
import io.micrometer.core.instrument.Clock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
......@@ -11,9 +12,11 @@ import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(basePackageClasses = KafkaMeterRegistry.class)
@EnableConfigurationProperties(EnochAgentProperties.class)
@ConditionalOnProperty(prefix = "tech.enoch", name = "enabled", havingValue = "true")
@ConditionalOnProperty(prefix = "tech.metric", name = "enabled", havingValue = "true")
public class MicroMeterKafkaAutoConfiguration {
private final EnochAgentProperties enochAgentProperties;
@Value("${spring.application.name}")
private String applicationName;
public MicroMeterKafkaAutoConfiguration(
EnochAgentProperties enochAgentProperties) {
......@@ -36,6 +39,11 @@ public class MicroMeterKafkaAutoConfiguration {
public String topic(){
return enochAgentProperties.getKafkaTopic();
}
@Override
public String applicationName(){
return applicationName;
}
};
}
......
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