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

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

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

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

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

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

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

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

    उदाहरण के लिए, पिछले हफ़्ते के लिए आपको ये जानकारी चाहिए:

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

    उदाहरण के लिए, पिछले हफ़्ते आपने एपीआई प्रॉडक्ट, एपीआई प्रॉक्सी, और डेवलपर ईमेल लिखें:

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

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

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

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

  • Postgres: 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

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

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

दिखाए जाने वाले मेट्रिक के बारे में बताना

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

?select=metric

या:

?select=aggFunction(metric)

कहां:

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

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

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

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

?select=tps

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

?select=sum(cache_hit)

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

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

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

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

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

HH:MM से पहले %20 पर ध्यान दें. timeRange पैरामीटर URL-एनकोडेड स्पेस वर्ण 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 को , से अलग किया गया है.

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

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

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

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

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 क्वेरी पैरामीटर, मेट्रिक के लिए एग्रीगेट फ़ंक्शन sum के बारे में बताता है apiproxy डाइमेंशन पर message_count. इस रिपोर्ट से, अनुरोध वाले मैसेज के थ्रूपुट की जानकारी मिलती है में UTC समय:

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"
  } ]...
}

यह प्रतिक्रिया बताती है कि कॉल किए गए एक API प्रॉक्सी द्वारा 1100 संदेश प्राप्त हुए 'लक्ष्य-रीरूट' टेस्ट एनवायरमेंट में 6/20/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 सबसे धीमा" APIs", "10 सबसे ज़्यादा इस्तेमाल होने वाले ऐप्लिकेशन" हैं. ऐसा करने के लिए, topk क्वेरी पैरामीटर का इस्तेमाल किया जा सकता है अनुरोध में शामिल किया गया है.

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

topk (यानी 'टॉप के' वाली इकाइयां), इससे जुड़ी इकाइयों के बारे में रिपोर्टिंग की सुविधा चालू करती हैं दी गई मेट्रिक की वैल्यू की सबसे ज़्यादा वैल्यू होती है. इससे आपको उन चीज़ों की सूची के लिए मेट्रिक को फ़िल्टर करने में मदद मिलती है किसी खास शर्त को उदाहरण के तौर पर दिखाने वाली इकाइयां. उदाहरण के लिए, यह पता लगाने के लिए कि कौनसा लक्ष्य URL पिछले हफ़्ते हुई सबसे ज़्यादा गड़बड़ी का पता चलने पर, 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"
    }
  ]...
}

परिणाम फ़िल्टर करना

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

उदाहरण के लिए, मान लें कि आपको बैकएंड सेवाओं से गड़बड़ियों की संख्या की जानकारी हासिल करनी है अनुरोध की एचटीटीपी क्रिया के हिसाब से फ़िल्टर की जाती है. आपका लक्ष्य यह पता लगाना है कि कितने पीओएसटी और 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 API के लिए कुछ अनुरोध बहुत बड़ा डेटा दिखाते हैं सेट. यूज़र इंटरफ़ेस (यूआई) पर आधारित ऐप्लिकेशन के हिसाब से, बड़े डेटा सेट को आसानी से दिखाने के लिए, एपीआई, नेटिव तौर पर पेज नंबर के साथ काम करता है.

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

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

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