/ / फ्रेमवर्क के रूप में ड्रॉपफॉइल का उपयोग करके रेस्टफुल एपीआई कॉल के प्रदर्शन परिणाम को कैसे लॉग किया जाए? - जावा, आराम, ड्रॉपवॉइड

ढांचे के रूप में ड्रॉपविज़ार्ड का उपयोग कर Restful API कॉल के प्रदर्शन परिणाम को लॉग कैसे करें? - जावा, आराम, ड्रॉपविज़ार्ड

मैंने लिंक का अनुसरण किया पहला REST API एक आराम एपीआई बनाने के लिए।

मैं url मारने पर प्रतिक्रिया देख सकता हूं: http://localhost:8080/hello-world?name=XXX.

अब मैं पूरी तरह से सेवा और मानव पठनीय प्रारूप में प्रत्येक हिट के लिए प्रतिक्रिया समय का उपयोग करके इस एपीआई के प्रदर्शन का परीक्षण करना चाहता हूं।

इसे कैसे प्राप्त किया जा सकता है?

उत्तर:

उत्तर № 1 के लिए 1

यह करना काफी आसान है। उसके लिए 2 विधियाँ हैं:

  1. इसे स्वयं मेट्रिक्स या लॉगिंग से करें। अपने संसाधन में, आप बस बनाए गए मेट्रिक्स का उपयोग कर सकते हैं और जो चाहें लिख सकते हैं, जैसे:

     @GET
    public String hello() {
    
    Timer timer = service.timer("test");
    
    try(Context t = timer.time()) {
    return "Hello World";
    }
    
    }
    

वैकल्पिक रूप से बस समय को मापें और कहीं लॉग करें,

    @GET
public String hello() {
long currentTimeMillis = System.currentTimeMillis();
try {
return "Hello World";
} finally {
log.info("Request took: " + (System.currentTimeMillis() - currentTimeMillis) + " ms");
}
}

करने का DW विकल्प है कि समयबद्ध एनोटेशन का उपयोग करना है, जैसे:

@GET
@Timed(name="wohoho")
public String hello() {
return "Hello World";
}

यह मैन्युअल दृष्टिकोण के बराबर है (मीट्रिक का नाम "वोहोहो" होगा)।

इसके अतिरिक्त आपको मैट्रिक्स पर रिपोर्ट करने की आवश्यकता है, उदाहरण के लिए इस तरह:

ConsoleReporter.forRegistry(environment.metrics()).build().start(10, TimeUnit.SECONDS);

यह हर दस सेकंड में रिपोर्ट करेगा, और परिणाम जैसा दिखता है:

-- Timers --------------------------------------------
dw.HelloResource.wohoho
count = 9
mean rate = 0.13 calls/second
1-minute rate = 0.11 calls/second
5-minute rate = 0.03 calls/second
15-minute rate = 0.01 calls/second
min = 0.16 milliseconds
max = 5.41 milliseconds
mean = 0.90 milliseconds
stddev = 1.43 milliseconds
median = 0.46 milliseconds
75% <= 0.59 milliseconds
95% <= 5.41 milliseconds
98% <= 5.41 milliseconds
99% <= 5.41 milliseconds
99.9% <= 5.41 milliseconds

और यह आपको करना है।

मीट्रिक का उपयोग करना पसंदीदा तरीका होगा, क्योंकि आप उदा। इसे ग्रेफाइट में सबमिट करें और फिर अन्य चीजों के बीच समय के साथ अपने प्रदर्शन को साजिश करें।

उम्मीद है की वो मदद करदे,

Artur


जवाब के लिए 0 № 2

आमतौर पर कई एप्लिकेशन में हम मेट्रिक्स के लिए ग्रेफाइट का उपयोग करते हैं।

ड्राप्वॉयर में ग्रेहाइट की रिपोर्टिंग यहां दिखाई गई है

http://metrics.dropwizard.io/3.1.0/manual/graphite/