APISIX के साथ Prometheus को एकीकृत करने की सर्वोत्तम प्रथाएं

January 13, 2024

Technology

आज के क्लाउड-नेटिव आर्किटेक्चर में, अपने API गेटवे के मेट्रिक्स की निगरानी करना महत्वपूर्ण है। Apache APISIX, एक उच्च-प्रदर्शन API गेटवे के रूप में, न केवल व्यापक कार्यक्षमता प्रदान करता है बल्कि Prometheus के साथ सहज एकीकरण का समर्थन करके प्रमुख API ट्रैफ़िक मेट्रिक्स को एकत्रित और मॉनिटर करने में भी सक्षम है। यह लेख Apache APISIX में Prometheus को कैसे कॉन्फ़िगर और उपयोग करें, इसकी खोज करता है, आवश्यक विचारों को उजागर करता है और सामान्य मेट्रिक कॉन्फ़िगरेशन की सिफारिश करता है।

Prometheus के बारे में

Prometheus एक ओपन-सोर्स मॉनिटरिंग सिस्टम है जो समय-श्रृंखला डेटा को एकत्रित और संग्रहीत करता है, जिससे सिस्टम प्रदर्शन की वास्तविक समय में निगरानी और विश्लेषण संभव होता है। Apache APISIX के साथ एकीकृत होने पर, Prometheus API ट्रैफ़िक से संबंधित सूक्ष्म मेट्रिक्स को कैप्चर करने में महत्वपूर्ण भूमिका निभाता है।

Apache APISIX में Prometheus प्लगइन सक्षम करना

  1. Apache APISIX में Prometheus मेट्रिक्स सक्षम करने के लिए, config.yaml फ़ाइल में Prometheus प्लगइन को कॉन्फ़िगर करके शुरू करें:

    plugins: - prometheus
  2. एकत्रित किए जाने वाले वांछित सेवा या API पर Prometheus प्लगइन को कॉन्फ़िगर करें। वैकल्पिक रूप से, इसे वैश्विक रूप से कॉन्फ़िगर करें। यहां cURL कमांड का उपयोग करके प्लगइन को कॉन्फ़िगर करने का एक उदाहरण दिया गया है:

    curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/hello", "plugins": { "prometheus":{} }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:80": 1 } } }'

    अधिक जटिल कॉन्फ़िगरेशन के लिए, देखें: Prometheus प्लगइन दस्तावेज़ीकरण

Prometheus में संग्रहण रणनीति कॉन्फ़िगर करना

Prometheus में, prometheus.yml फ़ाइल को कॉन्फ़िगर करके APISIX को एक नए मॉनिटरिंग लक्ष्य के रूप में जोड़ें:

scrape_configs: - job_name: 'apisix' static_configs: - targets: ['<APISIX_IP>:<APISIX_PORT>']

Apache APISIX में सामान्य मेट्रिक्स

उद्योग-विशिष्ट मेट्रिक्स भिन्न हो सकते हैं, लेकिन यहां Apache APISIX में कुछ प्रमुख मेट्रिक्स दिए गए हैं, जो सिस्टम मॉनिटरिंग और विश्लेषण के लिए समृद्ध जानकारी प्रदान करते हैं:

  • HTTP अनुरोध और प्रतिक्रिया मेट्रिक्स:

    • apisix_http_request_total: APISIX के माध्यम से किए गए कुल HTTP अनुरोधों को रिकॉर्ड करता है, जो सिस्टम ट्रैफ़िक का एक सिंहावलोकन प्रदान करता है।
    • apisix_http_request_duration_seconds: HTTP अनुरोध प्रसंस्करण समय को मापता है, जो प्रदर्शन बाधाओं की पहचान करने में सहायक होता है।
    • apisix_http_request_size_bytes: HTTP अनुरोधों के आकार को कैप्चर करता है, जो डेटा विश्लेषण के लिए उपयोगी होता है।
    • apisix_http_response_size_bytes: HTTP प्रतिक्रियाओं के आकार की निगरानी करता है, जो प्रतिक्रिया डेटा की मात्रा को ट्रैक करने में मदद करता है।
  • अपस्ट्रीम सेवा मेट्रिक्स:

    • apisix_upstream_latency: अपस्ट्रीम सेवाओं की प्रतिक्रिया विलंबता को दर्शाता है।
    • apisix_upstream_health: अपस्ट्रीम सेवाओं की स्वास्थ्य स्थिति को इंगित करता है।
  • सिस्टम प्रदर्शन मेट्रिक्स:

    • apisix_node_cpu_usage: APISIX नोड के CPU उपयोग की रिपोर्ट करता है।
    • apisix_node_memory_usage: मेमोरी उपयोग के बारे में जानकारी प्रदान करता है।
  • ट्रैफ़िक मेट्रिक्स:

    • apisix_bandwidth: अपस्ट्रीम और डाउनस्ट्रीम ट्रैफ़िक के लिए बैंडविड्थ उपयोग का विवरण देता है।
  • त्रुटि और अपवाद मेट्रिक्स:

    • apisix_http_status_code: HTTP प्रतिक्रिया स्थिति कोडों का वितरण करता है, विशेष रूप से 4xx और 5xx त्रुटियों पर ध्यान केंद्रित करता है।

विज़ुअलाइज़ेशन और अलर्ट्स

इन मेट्रिक्स को विज़ुअलाइज़ करने के लिए Grafana और Prometheus एकीकरण का उपयोग करें। इसके अलावा, Prometheus अलर्टिंग नियमों को विशिष्ट शर्तों के आधार पर अलर्ट सेट करने के लिए कॉन्फ़िगर किया जा सकता है।

Grafana डैशबोर्ड उदाहरण: Grafana में विभिन्न चार्ट्स, जैसे समय श्रृंखला, बार ग्राफ़, या पाई चार्ट्स बनाएं, जो APISIX के प्रदर्शन मेट्रिक्स को प्रदर्शित करते हैं। उदाहरण के लिए, HTTP अनुरोध गणना और औसत प्रतिक्रिया समय प्रदर्शित करने वाला एक डैशबोर्ड वास्तविक समय ट्रैफ़िक और प्रदर्शन की जानकारी प्रदान करता है।

Prometheus अलर्टिंग उदाहरण: Prometheus में अलर्टिंग नियमों को विभिन्न शर्तों के लिए कॉन्फ़िगर किया जा सकता है। उदाहरण के लिए, यदि apisix_http_request_duration_seconds की औसत अवधि एक पूर्वनिर्धारित सीमा से अधिक हो जाती है, तो Prometheus को महत्वपूर्ण अलर्ट भेजने के लिए कॉन्फ़िगर किया जा सकता है।

अनुकूलन विचार

जबकि व्यापक Prometheus मेट्रिक्स मॉनिटरिंग और अलर्टिंग आयामों को बढ़ाते हैं, यह स्वीकार करना महत्वपूर्ण है कि ये मेट्रिक्स कम्प्यूटेशनल संसाधनों का उपयोग करते हैं। अधिक मेट्रिक्स का अर्थ है उच्च संसाधन मांग, जो व्यावसायिक सिस्टम को प्रभावित कर सकता है।

संस्करण 3.0 से, Apache APISIX ने Prometheus प्लगइन को महत्वपूर्ण रूप से अनुकूलित किया है, जिसमें मेट्रिक्स सांख्यिकी और पुनर्प्राप्ति के लिए एक समर्पित प्रक्रिया शामिल है। यह सुधार व्यापक Prometheus मेट्रिक्स सांख्यिकी के कारण व्यावसायिक ट्रैफ़िक पर प्रभाव को कम करता है, जो API7.ai द्वारा योगदान किया गया था।

निष्कर्ष

Prometheus को Apache APISIX के साथ एकीकृत करके, उद्योग अपने API बुनियादी ढांचे में गहरी अंतर्दृष्टि प्राप्त करते हैं, जिससे कुशल और सुरक्षित संचालन सुनिश्चित होता है। API ट्रैफ़िक मॉनिटरिंग धीरे-धीरे समस्याओं को प्रोएक्टिव रूप से रोकने, प्रदर्शन को अनुकूलित करने और सुरक्षा सुनिश्चित करने के लिए एक आवश्यक उपकरण बन जाता है।

Tags: