2015-09-03 12 views
5

हमारे पास उत्पादन में वसंत आवेदन है। यह वसंत-बूट नहीं है। मुझे गैर-वसंत-बूट एप्लिकेशन में वसंत-बूट-एक्ट्यूएटर का उपयोग करने के तरीके पर this post मिला।प्रोग्राम-स्प्रिंग-बूट-एक्ट्यूएटर से मेट्रिक्स कैसे प्राप्त करें?

हालांकि, हमारे लिए आवश्यकता है/मेट्रिक्स एंडपॉइंट से डेटा एकत्र करना और उस पर कुछ विश्लेषण करना और स्थिति संकेतक की रिपोर्ट करना।

उदाहरण के लिए, हम आवेदन की स्थिति को इंगित करने के लिए {"heap.committed":480768,"heap.init":262144,"heap.used":294461,"heap":3728384,"threads.peak":37} जैसे हीप पैरामीटर का उपयोग कर सकते हैं - FATAL, WARN या HEALTHY।

यह सिर्फ एक उदाहरण है। हमारी आवश्यकता अधिक जटिल है। असल में, हमारे पास पहले से status endpoint है जहां हम और /healthspring-boot-actuator के अंत बिंदुओं के आधार पर अधिक जानकारी (डेटा के आधार पर) जोड़ना चाहते हैं।

एक तरह से मैं इस को प्राप्त करने की सोच रहा हूँ /metrics और /health को REST कॉल बनाने के साथ-में आवेदन, डेटा एकत्र उन्हें कुल और प्रतिक्रिया वापस है। मुझे नहीं लगता कि यह एक अनुशंसित तरीका है।

यदि कोई बीन है जहां मैं इन पैरामीटर को सीधे निकाल सकता हूं, तो मैं इसे ऑटोवायर कर दूंगा और जब आवश्यक हो तब फ्लाई पर उनकी गणना करूंगा। (वास्तव में, मैं समय-समय पर गणना करने के लिए शेड्यूल करूँगा)।

मुझे /metrics से लौटाई गई सभी विशेषताओं में रुचि है। जबकि मुझे निम्नलिखित में /health से भी रूचि है।

{"diskSpace":{"status":"UP","free":386186194944,"threshold":10485760}} 

मुझे किस बीन्स को ऑटोवायर करना चाहिए और इन विशेषताओं को मुफ्त में प्राप्त करना चाहिए!

धन्यवाद

संपादित

यह post@Autowired MetricRepository है। लेकिन किसी कारण से, यह केवल कस्टम काउंटर गुणों को लौट रहा है। यह ढेर नहीं लौटा रहा है, स्मृति की जानकारी आदि उदाहरण के लिए: Reporting metric counter.calls.get_greeting=4 Reporting metric counter.calls.get_greeting.1=1 Reporting metric counter.calls.get_greeting.2=1 Reporting metric counter.calls.get_greeting.3=1 Reporting metric counter.calls.get_greeting.4=1 Reporting metric counter.status.200.greeting.number=4 Reporting metric counter.status.404.star-star=1

उत्तर

13

/metrics से उत्पादन MetricsEndpoint द्वारा निर्मित है। यह एक बीन के रूप में उपलब्ध है कि आपके पास @Autowired हो सकता है। invoke पर कॉल करने से आपको वह डेटा देना चाहिए जो आप चाहते हैं।

आप HealthEndpoint के साथ /health के लिए ऐसा ही कर सकते हैं।

+0

क्या आप इन पर अपनी अंतर्दृष्टि प्रदान कर सकते हैं: https://stackoverflow.com/questions/32464629/spring-boot-actuator-returns-empty-response-for-metrics-endpoint और https://stackoverflow.com/questions/32407403/मीट्रिक-endpoint में वसंत-बूट-प्रवर्तक-नहीं-लौट-सही मानों –

संबंधित मुद्दे