-
Notifications
You must be signed in to change notification settings - Fork 0
/
TimerServiceImpl.java
63 lines (43 loc) · 1.67 KB
/
TimerServiceImpl.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package com.gaolk.micrometer.demo;
import io.micrometer.core.annotation.Timed;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tag;
import io.micrometer.core.instrument.Tags;
import io.micrometer.core.instrument.Timer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;
import java.util.Arrays;
@Service
public class TimerServiceImpl {
@Autowired
private MeterRegistry meterRegistry ;
public String doSomeTask(){
// time start
Timer.Sample sample = Timer.start( meterRegistry ) ;
try {
WebClient webClient = WebClient.create() ;
Mono<String> resp = webClient.get()
.uri("http://www.ifeng.com/")
.retrieve()
.bodyToMono(String.class) ;
return resp.block() ;
} finally {
sample.stop( Timer.builder("com.wehtole.app.timer")
.description("this is a service timer test")
.tags( Arrays.asList(Tag.of("class" , "TimerServiceImpl") , Tag.of("method" , "doSomeTask") ) )
.register(meterRegistry)
) ;
}
}
@Timed(value = "com.wehtole.timed",extraTags = {"timed","anotions"})
public String doWorkAntions(){
WebClient webClient = WebClient.create() ;
Mono<String> resp = webClient.get()
.uri("https://xueqiu.com/")
.retrieve()
.bodyToMono(String.class) ;
return resp.block() ;
}
}