मेट्रिक एपीआई का इस्तेमाल करना

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

Apigee Edge, कई तरह का ऑपरेशनल और कारोबार से जुड़ा डेटा रिकॉर्ड करता है, जो सभी एपीआई पर काम करता है. इस डेटा से मिली मेट्रिक, कारोबार पर नज़र रखने और कारोबार पर नज़र रखने में मदद करती हैं. उदाहरण के लिए, Edge API के Analytics का इस्तेमाल करके यह पता लगाया जा सकता है कि कौनसे एपीआई अच्छा या खराब परफ़ॉर्म कर रहे हैं, कौनसे डेवलपर सबसे ज़्यादा ट्रैफ़िक दे रहे हैं, और किन ऐप्लिकेशन की वजह से आपकी बैकएंड सेवाओं में सबसे ज़्यादा समस्याएं आ रही हैं.

इस मेट्रिक के डेटा को आसानी से ऐक्सेस करने के लिए, Edge एक RESTful API को दिखाता है. जब आपको Analytics के कुछ फ़ंक्शन के लिए अपने-आप काम करने की ज़रूरत पड़ती है, तो आंकड़ों के एपीआई का इस्तेमाल किया जा सकता है. जैसे- ऑटोमेशन क्लाइंट या स्क्रिप्ट का इस्तेमाल करके, समय-समय पर मेट्रिक वापस पाना. इस एपीआई का इस्तेमाल करके, कस्टम विजेट के तौर पर अपने विज़ुअलाइज़ेशन बनाए जा सकते हैं. इन विजेट को पोर्टल या कस्टम ऐप्लिकेशन में एम्बेड किया जा सकता है.

एपीआई Edge मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में Analytics इस्तेमाल करने का तरीका जानने के लिए, एपीआई Analytics की खास जानकारी देखें.

मेट्रिक एपीआई के बारे में जानकारी

Edge दो मेट्रिक एपीआई उपलब्ध कराता है:

  • मेट्रिक पाएं सुविधा की मदद से, किसी संगठन और संगठन के लिए, कुछ समयावधि में मेट्रिक की जानकारी मिलती है, जैसे कि एक घंटे, दिन या हफ़्ते के लिए.

    उदाहरण के लिए, पिछले हफ़्ते के लिए आपको ये सुविधाएं चाहिए:

    • नीति से जुड़ी गड़बड़ियों की संख्या
    • जवाब देने में लगने वाला औसत समय
    • कुल ट्रैफ़िक
  • डाइमेंशन के हिसाब से व्यवस्थित मेट्रिक पाएं इससे एक तय अवधि में, संगठन और एनवायरमेंट के लिए डाइमेंशन के हिसाब से ग्रुप में बांटे गए मेट्रिक दिखते हैं.

    उदाहरण के लिए, एपीआई प्रॉडक्ट, एपीआई प्रॉक्सी, और डेवलपर ईमेल के हिसाब से मेट्रिक का ग्रुप बनाने के लिए, पिछले हफ़्ते डाइमेंशन का इस्तेमाल करके ये काम किए गए हैं:

    • हर एपीआई प्रॉडक्ट से जुड़ी नीति की गड़बड़ियों की संख्या
    • हर एपीआई प्रॉक्सी से जवाब देने में लगने वाला औसत समय
    • हर डेवलपर ईमेल के हिसाब से कुल ट्रैफ़िक

    मेट्रिक को डाइमेंशन के हिसाब से व्यवस्थित करें एपीआई में, ऐसी अतिरिक्त सुविधाएं भी मिलती हैं जो मेट्रिक पाएं एपीआई के साथ काम नहीं करतीं. इनमें ये शामिल हैं:

मेट्रिक एपीआई कोटा के बारे में जानकारी

Edge इन कॉल पर ये कोटे लागू करता है. यह कोटा, कॉल को मैनेज करने वाले बैकएंड सिस्टम पर आधारित होता है:

  • पोस्टग्रे: हर मिनट 40 कॉल
  • BigQuery: हर मिनट 12 कॉल

रिस्पॉन्स ऑब्जेक्ट की जांच करके, कॉल मैनेज करने वाला बैकएंड सिस्टम तय करें. हर रिस्पॉन्स ऑब्जेक्ट में एक metaData प्रॉपर्टी होती है. इसमें, उस सेवा की सूची होती है जो Source प्रॉपर्टी में कॉल मैनेज करती है. उदाहरण के लिए, Postgres के लिए:

{
  ...
  "metaData": {
    "errors": [],
    "notices": [
      "Source:Postgres",
      "Table used: xxxxxx.yyyyy",
      "query served by:111-222-333"
    ]
  }
}

BigQuery के लिए, Source प्रॉपर्टी है:

"Source:Big Query"

कॉल कोटा पार होने पर एपीआई, एचटीटीपी 429 रिस्पॉन्स भेजता है.

मैनेजमेंट एपीआई की मदद से मेट्रिक पाना

दोनों एपीआई के बीच मुख्य अंतर यह है कि मेट्रिक पाएं विकल्प, पूरे संगठन और एनवायरमेंट के लिए रॉ मेट्रिक दिखाता है. वहीं, डाइमेंशन के हिसाब से व्यवस्थित मेट्रिक पाएं की मदद से, एपीआई प्रॉडक्ट, डेवलपर, और ऐप्लिकेशन जैसी अलग-अलग इकाई के हिसाब से मेट्रिक का ग्रुप बनाया जा सकता है.

मेट्रिक पाएं एपीआई के लिए, अनुरोध करने का यूआरएल यह है:

https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats

डाइमेंशन के हिसाब से व्यवस्थित मेट्रिक पाएं एपीआई के लिए, /stats के बाद यूआरएल में एक और संसाधन शामिल किया जा सकता है, जो पसंद के डाइमेंशन की जानकारी देता है:

https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/dimension

उदाहरण के लिए, एपीआई प्रॉक्सी के हिसाब से मेट्रिक को ग्रुप में बांटने के लिए, आपको management API को कॉल करने के लिए इस यूआरएल का इस्तेमाल करना होगा:

https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/apiproxy

नतीजे के लिए मेट्रिक तय करना

मेट्रिक पाएं और डाइमेंशन के हिसाब से व्यवस्थित मेट्रिक पाएं एपीआई, दोनों के लिए, select क्वेरी पैरामीटर का इस्तेमाल करके, metrics को फिर से पाने के लिए बताया जाता है. साथ ही, एक वैकल्पिक एग्रीगेशन फ़ंक्शन के बारे में भी बताया जाता है, जो इस फ़ॉर्म में होता है:

?select=metric

या:

?select=aggFunction(metric)

जगह:

  • metric वह डेटा दिखाता है जिसे आप दिखाना चाहते हैं. उदाहरण के लिए, एपीआई अनुरोधों की संख्या, कैश हिट या नीति की गड़बड़ियां. उस टेबल के लिए metrics देखें जिसमें select क्वेरी पैरामीटर के साथ इस्तेमाल किए जाने वाले मेट्रिक के नाम की जानकारी दी जाती है.
  • aggFunction मेट्रिक के लिए, चलने वाले वैकल्पिक एग्रीगेशन फ़ंक्शन की जानकारी देता है. उदाहरण के लिए, प्रोसेसिंग के इंतज़ार के समय की मेट्रिक के साथ ये एग्रीगेशन फ़ंक्शन इस्तेमाल किए जा सकते हैं:

    • avg: यह फ़ंक्शन, वीडियो प्रोसेस होने में लगने वाले औसत समय को दिखाता है.
    • min: यह फ़ंक्शन, प्रोसेस होने में लगने वाले कम से कम समय की जानकारी देता है.
    • max: प्रोसेस होने में लगने वाले ज़्यादा से ज़्यादा समय की जानकारी देता है.
    • sum: प्रोसेस होने में लगने वाले सभी समय का कुल योग दिखाता है.

    सभी मेट्रिक, सभी एग्रीगेशन फ़ंक्शन के साथ काम नहीं करती हैं. metrics के दस्तावेज़ में एक टेबल होती है, जिसमें मेट्रिक का नाम और मेट्रिक के साथ काम करने वाले फ़ंक्शन (sum, avg, min, max) की जानकारी होती है.

उदाहरण के लिए, हर सेकंड में लेन-देन की औसत संख्या, यानी एपीआई प्रॉक्सी अनुरोध, लौटाने के लिए:

?select=tps

ध्यान दें कि इस उदाहरण में एग्रीगेशन फ़ंक्शन की ज़रूरत नहीं है. अगले उदाहरण में, कैश हिट का कुल योग दिखाने के लिए एग्रीगेशन फ़ंक्शन का इस्तेमाल किया गया है:

?select=sum(cache_hit)

किसी एक एपीआई कॉल के लिए, कई मेट्रिक दिखाई जा सकती हैं. नीति से जुड़ी गड़बड़ियों की कुल संख्या और अनुरोध के औसत साइज़ की मेट्रिक पाने के लिए, मेट्रिक की कॉमा-सेपरेटेड लिस्ट का इस्तेमाल करके select क्वेरी पैरामीटर सेट करें:

?select=sum(policy_error),avg(request_size)

समयावधि तय करना

मेट्रिक एपीआई एक तय समयावधि के लिए डेटा दिखाता है. समयावधि की जानकारी देने के लिए, इस फ़ॉर्म में timeRange क्वेरी पैरामीटर का इस्तेमाल करें:

?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM

HH:MM से पहले %20 पर ध्यान दें. timeRange पैरामीटर के लिए, HH:MM से पहले यूआरएल कोड में बदले गए स्पेस वर्ण या + वर्ण की ज़रूरत होती है, जैसे कि MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM.

उदाहरण के लिए:

?timeRange=03/01/2018%2000:00~03/30/2018%2023:59

24:00 को समय के तौर पर इस्तेमाल न करें, क्योंकि यह 00:00 के आस-पास हो जाता है. इसके बजाय, 23:59 का इस्तेमाल करें.

डीलिमिटर का इस्तेमाल करना

किसी एपीआई कॉल में एक से ज़्यादा डाइमेंशन को अलग करने के लिए, डीलिमिटर के तौर पर कॉमा (,) का इस्तेमाल करें. उदाहरण के लिए, एपीआई कॉल में

curl https://api.enterprise.apigee.com/v1/o/myorg/e/prod/stats/apis,apps?select=sum(message_count)&timeRange=9/24/2018%2000:00~10/25/2018%2000:00&timeUnit=day

apis और apps डाइमेंशन को , की मदद से अलग किया गया है.

सैंपल एपीआई कॉल

इस सेक्शन में, मेट्रिक पाएं और डाइमेंशन के हिसाब से व्यवस्थित की गई मेट्रिक पाएं एपीआई का इस्तेमाल करने वाले उदाहरणों के बारे में बताया गया है. और उदाहरणों के लिए मेट्रिक एपीआई के उदाहरण देखें.

अपने एपीआई पर एक महीने में किए गए कॉल की कुल संख्या की जानकारी देना

एक महीने तक अपने संगठन और एनवायरमेंट के सभी एपीआई को किए गए कॉल की कुल संख्या देखने के लिए, मेट्रिक पाएं एपीआई का इस्तेमाल करें:

curl -v "https://api.enterprise.apigee.com/v1/o/{org}/e/{env}/stats/?select=sum(message_count)&timeRange=03/01/2018%2000:00~03/31/2018%2023:59" \
-u email:password

जवाब का उदाहरण:

{
  "environments": [
    {
      "metrics": [
        {
          "name": "sum(message_count)",
          "values": [
            "7.44944088E8"
          ]
        }
      ],
      "name": "prod"
    }
  ],
...
}

दो दिनों के लिए, हर एपीआई प्रॉक्सी सर्वर पर मैसेज की कुल संख्या बताता है

इस उदाहरण में, दो दिनों के दौरान सभी एपीआई प्रॉक्सी से मिले अनुरोधों की संख्या की मेट्रिक दिखाई जाती है. select क्वेरी पैरामीटर, apiproxy डाइमेंशन पर message_count मेट्रिक के लिए एग्रीगेट फ़ंक्शन sum के बारे में बताता है. इस रिपोर्ट में, यूटीसी समय में 6/20/2018 की शुरुआत से 21/6/2018 के बीच मिले ट्रैफ़िक के सभी एपीआई के लिए, अनुरोध के मैसेज का डेटा मिलता है:

curl  https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59" \
-u email:password

जवाब का उदाहरण:

{
  "environments" : [ {
    "dimensions" : [ {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values" : [ {
          "timestamp" : 1498003200000,
          "value" : "1100.0"
        } ]
      } ],
      "name" : "target-reroute"
    } ],
    "name" : "test"
  } ]...
}

इस जवाब से पता चलता है कि 'target-reroute' नाम के एक एपीआई प्रॉक्सी से 1,100 मैसेज मिले जो टेस्ट एनवायरमेंट में 20/6/2018 की शुरुआत से लेकर 21/6/2018 के बीच चल रहे थे.

दूसरे डाइमेंशन की मेट्रिक देखने के लिए, यूआरआई पैरामीटर के तौर पर कोई दूसरा डाइमेंशन डालें. उदाहरण के लिए, आपके पास developer_app डाइमेंशन बनाकर, डेवलपर ऐप्लिकेशन की मेट्रिक को फिर से पाने का विकल्प होता है. नीचे दिया गया एपीआई कॉल, तय समयावधि के दौरान किसी भी ऐप्लिकेशन से मिले कुल मैसेज (मैसेज) की जानकारी दिखाता है:

curl  https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/developer_app?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59&timeUnit=day" \
-u email:password

जवाब का उदाहरण:

{
  "environments": [
    {
      "dimensions": [
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1498003200000,
                  "value": "886.0"
                }
              ]
            }
          ],
          "name": "Test-App"
        },
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1498003200000,
                  "value": "6645.0"
                }
              ]
            }
          ],
          "name": "johndoe_app"
        },
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1498003200000,
                  "value": "1109.0"
                }
              ]
            }
          ],
          "name": "marys_app"
        }
  ]...
}

मिलती-जुलती रैंकिंग के हिसाब से नतीजों को क्रम से लगाना

कई बार, मेट्रिक इकट्ठा करते समय, आपको डेटा के कुल सेट के सिर्फ़ एक सबसेट के लिए ही नतीजे पाने होते हैं. आम तौर पर, आपको "टॉप 10" के लिए नतीजे पाने होते हैं. जैसे, "10 सबसे धीमे एपीआई" और "सबसे ज़्यादा इस्तेमाल होने वाले 10 सबसे लोकप्रिय ऐप्लिकेशन". अनुरोध के तौर पर, topk क्वेरी पैरामीटर का इस्तेमाल करके ऐसा किया जा सकता है.

उदाहरण के लिए, आपको यह जानने में दिलचस्पी हो सकती है कि आपके टॉप डेवलपर कौन हैं, उनकी लागत कितनी है या आपके सबसे खराब परफ़ॉर्मेंस वाले डेवलपर कौनसे हैं (जैसे, 'सबसे धीमे') टारगेट एपीआई, इंतज़ार के समय के हिसाब से होते हैं.

topk (यानी 'टॉप k' इकाइयां), किसी खास मेट्रिक के लिए सबसे ज़्यादा वैल्यू वाली इकाइयों के बारे में रिपोर्टिंग की सुविधा देती हैं. इसकी मदद से, उन इकाइयों की सूची के लिए मेट्रिक फ़िल्टर की जा सकती हैं जो किसी खास शर्त को दिखाती हैं. उदाहरण के लिए, यह पता लगाने के लिए कि पिछले हफ़्ते किस टारगेट यूआरएल में सबसे ज़्यादा गड़बड़ियां हुई हैं, topk पैरामीटर को 1 की वैल्यू के साथ अनुरोध में जोड़ दिया जाता है:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&topk=1" \
  -u email:password
{
  "environments": [
    {
      "dimensions": [
        {
          "metrics": [
            {
              "name": "sum(is_error)",
              "values": [
                {
                  "timestamp": 1494201600000,
                  "value": "12077.0"
                }
              ]
            }
          ],
          "name": "http://api.company.com"
        }
      ]...
}

इस अनुरोध के बाद, मेट्रिक का एक सेट मिलता है. इससे पता चलता है कि सबसे समस्या वाला टारगेट यूआरएल http://api.company.com है.

सबसे ज़्यादा डेटा जनरेट करने वाले एपीआई को क्रम से लगाने के लिए, topk पैरामीटर का भी इस्तेमाल किया जा सकता है. यहां दिया गया उदाहरण, सबसे अच्छी रैंक वाले एपीआई की मेट्रिक के डेटा को इकट्ठा करता है. यह डेटा, पिछले हफ़्ते की सबसे अच्छी रैंकिंग के हिसाब से तय किया जाता है:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=day&sortby=sum(message_count)&sort=DESC&topk=1" \
-u email:password

रिस्पॉन्स का उदाहरण

{
  "environments": [
    {
      "dimensions": [
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                {
                  "timestamp": 1494720000000,
                  "value": "5750.0"
                },
                {
                  "timestamp": 1494633600000,
                  "value": "5752.0"
                },
                {
                  "timestamp": 1494547200000,
                  "value": "5747.0"
                },
                {
                  "timestamp": 1494460800000,
                  "value": "5751.0"
                },
                {
                  "timestamp": 1494374400000,
                  "value": "5753.0"
                },
                {
                  "timestamp": 1494288000000,
                  "value": "5751.0"
                },
                {
                  "timestamp": 1494201600000,
                  "value": "5752.0"
                }
              ]
            }
          ],
          "name": "testCache"
        }
      ],
      "name": "test"
    }
  ]...
}

नतीजे फ़िल्टर किए जा रहे हैं

ज़्यादा जानकारी के लिए, नतीजों को फ़िल्टर किया जा सकता है, ताकि मिलने वाले डेटा को सीमित किया जा सके. फ़िल्टर का इस्तेमाल करते समय, आपको डाइमेंशन को फ़िल्टर प्रॉपर्टी के तौर पर इस्तेमाल करना होगा.

उदाहरण के लिए, मान लें कि आपको अनुरोध की एचटीटीपी वर्ब के हिसाब से फ़िल्टर की गई बैकएंड सेवाओं से मिली गड़बड़ियों की संख्या फिर से हासिल करनी है. आपका लक्ष्य यह पता लगाना है कि हर बैकएंड सेवा के लिए कितने POST और PUT अनुरोध गड़बड़ियां पैदा कर रहे हैं. ऐसा करने के लिए, आपको फ़िल्टर request_verb के साथ target_url डाइमेंशन का इस्तेमाल करना है:

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&filter=(request_verb%20in%20'POST','PUT')" \
-u email:password

रिस्पॉन्स का उदाहरण:

{
  "environments" : [
    {
      "dimensions" : [
        {
          "metrics" : [
            {
              "name" : "sum(is_error)",
              "values" : [
                {
                  "timestamp" : 1519516800000,
                  "value" : "1.0"
                }
              ]
          }
        ],
        "name" : "testCache"
        }
      ],
      "name" : "test"
    }
  ]...
}

पेजों को क्रम में लगाने वाले नतीजे

प्रोडक्शन एनवायरमेंट में, Edge Analytics एपीआई को किए गए कुछ अनुरोध बहुत बड़े डेटा सेट दिखाते हैं. एपीआई, नेटिव तौर पर पेज नंबर की सुविधा देता है, ताकि यूज़र इंटरफ़ेस (यूआई) पर आधारित ऐप्लिकेशन के हिसाब से, बड़े डेटा सेट आसानी से दिखाए जा सकें.

नतीजों को पेजों में बांटने के लिए, sortby के क्रम में लगाने के पैरामीटर के साथ-साथ offset और limit क्वेरी पैरामीटर का इस्तेमाल करें. इससे आइटम का क्रम एक जैसा बना रहेगा.

उदाहरण के लिए, नीचे दिए गए अनुरोध से बड़ा डेटा सेट दिख सकता है. ऐसा इसलिए होता है, क्योंकि इससे प्रॉडक्ट एनवायरमेंट में पिछले हफ़्ते की सभी गड़बड़ियों के लिए मेट्रिक इकट्ठा होती हैं.

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)" \
-u email:password

अगर यूज़र इंटरफ़ेस (यूआई) पर आधारित आपका ऐप्लिकेशन, हर पेज पर 50 नतीजे दिखा सकता है, तो इसकी सीमा 50 पर सेट की जा सकती है. 0 को पहला आइटम माना जाता है, इसलिए नीचे दिया गया कॉल, 0 से 49 तक के आइटम को घटते हुए क्रम में दिखाता है (sort=DESC डिफ़ॉल्ट रूप से सेट होता है).

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=0" \
-u email:password

नतीजों के दूसरे 'पेज' के लिए, नीचे बताए गए तरीके से ऑफ़सेट क्वेरी पैरामीटर का इस्तेमाल करें. ध्यान दें कि सीमा और ऑफ़सेट एक जैसे हैं. ऐसा इसलिए है, क्योंकि 0 को पहला आइटम माना जाता है. 50 की सीमा और 0 के ऑफ़सेट पर, 0 से 49 तक के आइटम लौटाए जाते हैं. 50 के ऑफ़सेट से, 50-99 के आइटम लौटाए जाते हैं.

curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=50" \
-u email:password