Skip to content

Commit 9507881

Browse files
Add custom tags to MicrometerCapability (#2305)
* #1456 | Add custom tags to MicrometerCapability * Update MicrometerCapability.java license year --------- Co-authored-by: Marvin <[email protected]>
1 parent 5dea9d1 commit 9507881

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

micrometer/src/main/java/feign/micrometer/MicrometerCapability.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 The Feign Authors
2+
* Copyright 2012-2024 The Feign Authors
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
55
* in compliance with the License. You may obtain a copy of the License at
@@ -22,9 +22,14 @@
2222
import io.micrometer.core.instrument.Clock;
2323
import io.micrometer.core.instrument.MeterRegistry;
2424
import io.micrometer.core.instrument.Metrics;
25+
import io.micrometer.core.instrument.Tag;
2526
import io.micrometer.core.instrument.simple.SimpleConfig;
2627
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
2728

29+
import java.util.List;
30+
import java.util.Map;
31+
import java.util.stream.Collectors;
32+
2833
public class MicrometerCapability implements Capability {
2934

3035
private final MeterRegistry meterRegistry;
@@ -38,6 +43,17 @@ public MicrometerCapability(MeterRegistry meterRegistry) {
3843
this.meterRegistry = meterRegistry;
3944
}
4045

46+
public MicrometerCapability(MeterRegistry meterRegistry, List<Tag> tagsList) {
47+
meterRegistry.config().commonTags(tagsList);
48+
this.meterRegistry = meterRegistry;
49+
}
50+
51+
public MicrometerCapability(MeterRegistry meterRegistry, Map<String, String> tagsMap) {
52+
List<Tag> tagsList = mapTags(tagsMap);
53+
meterRegistry.config().commonTags(tagsList);
54+
this.meterRegistry = meterRegistry;
55+
}
56+
4157
@Override
4258
public Client enrich(Client client) {
4359
return new MeteredClient(client, meterRegistry);
@@ -62,4 +78,10 @@ public Decoder enrich(Decoder decoder) {
6278
public InvocationHandlerFactory enrich(InvocationHandlerFactory invocationHandlerFactory) {
6379
return new MeteredInvocationHandleFactory(invocationHandlerFactory, meterRegistry);
6480
}
81+
82+
private List<Tag> mapTags(Map<String, String> tags) {
83+
return tags.keySet().stream()
84+
.map(tagKey -> Tag.of(tagKey, tags.get(tagKey)))
85+
.collect(Collectors.toList());
86+
}
6587
}

0 commit comments

Comments
 (0)