परफ़ॉर्मेंस मॉनिटर करने से जुड़े डेटा को BigQuery में एक्सपोर्ट करें

बेहतर विश्लेषण के लिए, Apple और Android ऐप्लिकेशन से परफ़ॉर्मेंस मॉनिटर करने से जुड़े डेटा को BigQuery में एक्सपोर्ट किया जा सकता है. BigQuery की मदद से, BigQuery SQL का इस्तेमाल करके डेटा का विश्लेषण किया जा सकता है. साथ ही, इसे किसी अन्य क्लाउड सेवा पर एक्सपोर्ट किया जा सकता है. इसके अलावा, कस्टम एमएल मॉडल के लिए भी डेटा का इस्तेमाल किया जा सकता है.

BigQuery Export चालू करें

  1. Firebase कंसोल में, इंटिग्रेशन पेज पर जाएं. इसके बाद, BigQuery कार्ड में लिंक करें पर क्लिक करें.

  2. BigQuery को चालू करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.

    परफ़ॉर्मेंस मॉनिटर करने की सुविधा के लिए BigQuery Export चालू करने पर, ये चीज़ें होती हैं:

    • Firebase आपके मौजूदा डेटा की एक कॉपी BigQuery में एक्सपोर्ट करता है. एक्सपोर्ट के लिए डेटा को शुरुआती तौर पर लागू होने में 48 घंटे लग सकते हैं.

    • डेटासेट बनाने के बाद, उसकी जगह को बदला नहीं जा सकता. हालांकि, डेटासेट को किसी दूसरी जगह पर कॉपी किया जा सकता है या मैन्युअल तरीके से डेटासेट को किसी दूसरी जगह पर ले जाया (फिर से बनाया) जा सकता है. ज़्यादा जानने के लिए, डेटासेट की जगह बदलना लेख पढ़ें.

    • Firebase, आपके डेटा को Firebase प्रोजेक्ट से BigQuery में नियमित तौर पर सिंक करता है. रोज़ाना एक्सपोर्ट होने की ये कार्रवाइयां, शेड्यूल किए जाने के बाद आम तौर पर 24 घंटे में पूरी हो जाती हैं.

    • आपके प्रोजेक्ट के सभी ऐप्लिकेशन डिफ़ॉल्ट रूप से, BigQuery से लिंक होते हैं. बाद में प्रोजेक्ट में जोड़े जाने वाले सभी ऐप्लिकेशन, BigQuery से अपने-आप लिंक हो जाते हैं. आपके पास BigQuery में डेटा भेजने वाले ऐप्लिकेशन चुनने का विकल्प होता है.

BigQuery Export को बंद करने के लिए, Firebase कंसोल में अपना प्रोजेक्ट अनलिंक करें.

BigQuery में कौनसा डेटा एक्सपोर्ट किया जाता है?

प्रोजेक्ट में मौजूद हर ऐप्लिकेशन के लिए, एक्सपोर्ट एक टेबल बनाता है. इस टेबल में, कैप्चर किए गए सभी परफ़ॉर्मेंस इवेंट शामिल होते हैं. टेबल की हर पंक्ति सिंगल परफ़ॉर्मेंस इवेंट होती है. यह इनमें से कोई एक हो सकती है:

  • अवधि ट्रेस — ऐसे ट्रेस जो डिफ़ॉल्ट रूप से "अवधि" की मेट्रिक इकट्ठा करते हैं. इनमें ऐप्लिकेशन शुरू होने की अवधि, ऐप्लिकेशन में फ़ोरग्राउंड, और ऐप्लिकेशन में बैकग्राउंड के साथ-साथ डेवलपर की ओर से इस्तेमाल किए गए कस्टम कोड ट्रेस शामिल होते हैं

    • event_type DURATION_TRACE है
    • event_name और ट्रेस का नाम एक जैसे हैं
  • ट्रेस मेट्रिक — ऐसी कस्टम मेट्रिक जो डेवलपर के टूल से जुड़े कस्टम कोड ट्रेस से जुड़ी होती हैं

    • event_type TRACE_METRIC है
    • event_name मेट्रिक का नाम है
    • parent_trace_name वह ट्रेस नाम है जिसमें यह मेट्रिक शामिल है
  • स्क्रीन ट्रेस — यह किसी स्क्रीन के कुल समय तक का ट्रेस दिखाता है (स्क्रीन रेंडरिंग ट्रेस)

    • event_type SCREEN_TRACE है
    • event_name, प्रीफ़िक्स _st_ और स्क्रीन का असल नाम है
  • नेटवर्क अनुरोध — यह पता लगाता है कि नेटवर्क अनुरोध कितने समय तक चल रहा है (एचटीटीपी नेटवर्क अनुरोध ट्रेस करता है)

    • event_type NETWORK_REQUEST है
    • event_name, नेटवर्क अनुरोध यूआरएल का कैटगरी पैटर्न है

हर परफ़ॉर्मेंस इवेंट में इवेंट के एट्रिब्यूट (जैसे कि क्लाइंट डिवाइस का देश और मोबाइल और इंटरनेट सेवा देने वाली कंपनी) के साथ-साथ इवेंट से जुड़ी खास जानकारी भी शामिल होती है:

  • अवधि ट्रेस, ट्रेस मेट्रिक, और स्क्रीन ट्रेस में trace_info शामिल है
  • ट्रेस मेट्रिक में trace_info.metric_info शामिल है
  • स्क्रीन ट्रेस में trace_info.screen_info शामिल है
  • नेटवर्क ट्रेस में network_info शामिल है

ज़्यादा जानकारी वाला डेटा स्कीमा

फ़ील्ड का नाम टाइप जानकारी
event_timestamp timestamp क्लाइंट डिवाइस पर इवेंट शुरू होने के बाद से टाइमस्टैंप (ट्रेस स्टार्ट, नेटवर्क स्टार्ट वगैरह)
app_display_version स्ट्रिंग ऐप्लिकेशन का डिसप्ले वर्शन (उदाहरण के लिए, "4.1.7")
  • Android के लिए — VersionName
  • iOS के लिए — CFBundleShortVersionString
app_build_version स्ट्रिंग ऐप्लिकेशन का बिल्ड वर्शन (उदाहरण के लिए, "1523456")
  • Android के लिए — VersionCode
  • iOS के लिए — CFBundleVersion
os_version स्ट्रिंग क्लाइंट डिवाइस का ओएस वर्शन
  • Android के लिए — Android API लेवल (उदाहरण के लिए, "26")
  • iOS — iOS वर्शन के लिए (उदाहरण के लिए "11.4")
device_name स्ट्रिंग क्लाइंट के डिवाइस का नाम (उदाहरण के लिए, "Google Pixel")
country स्ट्रिंग उस देश का दो अक्षर वाला देश कोड जहां से इवेंट हुआ है (उदाहरण के लिए, "US" या अज्ञात देश के लिए "ZZ")
शिपिंग की सेवा देने वाली कंपनी स्ट्रिंग क्लाइंट डिवाइस को मोबाइल और इंटरनेट सेवा देने वाली कंपनी
रेडियो टाइप स्ट्रिंग इवेंट के दौरान चालू रेडियो टाइप (उदाहरण के लिए, "वाई-फ़ाई")
कस्टम एट्रिब्यूट आरे<रिकॉर्ड> इस इवेंट से जुड़े सभी कस्टम एट्रिब्यूट
custom_Attributes.key स्ट्रिंग कस्टम एट्रिब्यूट की कुंजी
कस्टम एट्रिब्यूट वैल्यू स्ट्रिंग कस्टम एट्रिब्यूट का मान
event_type स्ट्रिंग इवेंट किस तरह का है; संभावित वैल्यू:
  • DURATION_TRACE — ऐसे ट्रेस जो डिफ़ॉल्ट रूप से "अवधि" की मेट्रिक इकट्ठा करते हैं. इसमें ऐप्लिकेशन को चालू करने की अवधि, ऐप्लिकेशन के फ़ोरग्राउंड, और ऐप्लिकेशन में बैकग्राउंड में चलने की सुविधा शामिल होती है. साथ ही, डेवलपर की ओर से इस्तेमाल किए गए कस्टम कोड ट्रेस भी शामिल होते हैं
  • SCREEN_TRACE — किसी स्क्रीन के लाइफ़टाइम में ट्रेस करता है (स्क्रीन रेंडरिंग ट्रेस)
  • TRACE_METRIC — ऐसी कस्टम मेट्रिक जो डेवलपर के बनाए हुए कस्टम कोड ट्रेस से जुड़ी होती हैं
  • NETWORK_REQUEST — यह किसी नेटवर्क अनुरोध के लाइफ़टाइम ट्रेस करता है (एचटीटीपी नेटवर्क अनुरोध ट्रेस करता है)
event_name स्ट्रिंग इवेंट का नाम
  • DURATION_TRACE के लिए — ट्रेस का नाम
  • TRACE_METRIC के लिए — कस्टम मेट्रिक का नाम
  • SCREEN_TRACE के लिए — _st_ के बाद ट्रेस का नाम
  • NETWORK_REQUEST के लिए — नेटवर्क के अनुरोध का यूआरएल पैटर्न
पैरंट_trace_name स्ट्रिंग ट्रेस मेट्रिक को शामिल करने वाले पैरंट ट्रेस का नाम
सिर्फ़ TRACE_METRIC के लिए मौजूद है
ट्रेस की जानकारी रिकॉर्ड सिर्फ़ DURATION_TRACE, SCREEN_TRACE, और TRACE_METRIC के लिए मौजूद
ट्रेस_info.duration_us int64
  • DURATION_TRACE और SCREEN_TRACE के लिए — ट्रेस की शुरुआत से लेकर आखिर तक, कुल समय ("अवधि")
  • TRACE_METRIC के लिए — पैरंट ट्रेस की शुरुआत से लेकर आखिर तक, कुल समय ("अवधि")
यूनिट: माइक्रोसेकंड
Tres_info.screen_info रिकॉर्ड सिर्फ़ SCREEN_TRACE के लिए मौजूद
ट्रेस_info.screen_info.slow_frame_ratio फ़्लोट64 इस स्क्रीन ट्रेस के लिए रेंडर होने में ज़्यादा समय लेने वाले फ़्रेम का अनुपात, जो 0 और 1 के बीच होता है (उदाहरण के लिए, 0.05 वैल्यू का मतलब है कि इस स्क्रीन इंस्टेंस के 5% फ़्रेम को रेंडर होने में 16 मि॰से॰ से ज़्यादा समय लगा)
Tres_info.screen_info.frozen_frame_ratio फ़्लोट64 इस स्क्रीन ट्रेस के लिए 0 से 1 के बीच के रुके हुए फ़्रेम का अनुपात (उदाहरण के लिए, 0.05 की वैल्यू का मतलब है कि इस स्क्रीन इंस्टेंस के 5% फ़्रेम को रेंडर होने में 700 मि॰से॰ से ज़्यादा समय लगा)
Tres_info.metric_info रिकॉर्ड सिर्फ़ TRACE_METRIC के लिए मौजूद
ट्रेस_info.metric_info.metric_value int64 ट्रेस मेट्रिक की वैल्यू
नेटवर्क की जानकारी रिकॉर्ड सिर्फ़ NETWORK_REQUEST के लिए मौजूद
network_info.response_code int64 नेटवर्क के रिस्पॉन्स के लिए एचटीटीपी रिस्पॉन्स कोड (उदाहरण के लिए, 200, 404)
network_info.response_mime_type स्ट्रिंग नेटवर्क से मिले जवाब का MIME टाइप (उदाहरण के लिए, "text/html")
network_info.request_http_method स्ट्रिंग नेटवर्क अनुरोध का एचटीटीपी तरीका (उदाहरण के लिए, "GET" या "POST")
network_info.request_payload_bytes int64 नेटवर्क अनुरोध के पेलोड का साइज़
यूनिट: बाइट
network_info.response_payload_bytes int64 नेटवर्क रिस्पॉन्स पेलोड का साइज़
यूनिट: बाइट
network_info.request_completed_time_us int64 नेटवर्क का अनुरोध भेजने की प्रोसेस पूरी होने के बाद, event_timestamp के बाद माइक्रोसेकंड
यूनिट: माइक्रोसेकंड
network_info.response_initiated_time_us int64 नेटवर्क रिस्पॉन्स शुरू होने के बाद, event_timestamp के बाद माइक्रोसेकंड
यूनिट: माइक्रोसेकंड
network_info.response_completed_time_us int64 नेटवर्क का रिस्पॉन्स पूरा होने के बाद, event_timestamp के बाद माइक्रोसेकंड
यूनिट: माइक्रोसेकंड

एक्सपोर्ट किए गए डेटा का इस्तेमाल करके क्या किया जा सकता है?

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

देश के हिसाब से, ऐप्लिकेशन शुरू होने में लगने वाले औसत समय का विश्लेषण देखें

SELECT AVG(trace_info.duration_us), country
FROM `TABLE_NAME`
WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD")
AND event_type = "DURATION_TRACE"
AND event_name = "_app_start"
GROUP BY 2;

अलग-अलग स्थितियों में, रुके हुए फ़्रेम के अनुपात की जांच करना

उदाहरण के लिए, अलग-अलग तरह के रेडियो टाइप (वाई-फ़ाई, 4G वगैरह) इस्तेमाल करने पर, आपके ऐप्लिकेशन की हर स्क्रीन पर, उपयोगकर्ताओं ने कितना समय बिताया, इसके साथ-साथ रुके हुए फ़्रेम का अनुपात भी देखा जा सकता है.

SELECT
  AVG(trace_info.duration_us / 1000000) AS seconds_on_screen,
  AVG(trace_info.screen_info.frozen_frame_ratio) AS frozen_frame_ratio,
  event_name,
  radio_type
FROM `TABLE_NAME`
WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD")
AND event_type = "SCREEN_TRACE"
GROUP BY event_name, radio_type
ORDER BY event_name, radio_type;

डिस्क से कुछ खास तरह की फ़ाइलें लोड करने के लिए, कैश मेमोरी के हिट की दर का पता लगाएं

इस विश्लेषण में माना गया है कि आपने डिस्क से लोड करने के लिए, file-extension नाम के कस्टम एट्रिब्यूट और cache-hit नाम की कस्टम मेट्रिक (TRACE_METRIC) का इस्तेमाल करके, कस्टम कोड ट्रेस तैयार किया है. कैश मेमोरी हिट होने पर, इस मेट्रिक को 1 पर और कैश मेमोरी में सेव न होने पर, 0 पर सेट किया जाता है.

उदाहरण के लिए, डिस्क से PNG फ़ाइलें लोड करने के लिए कैश हिट रेट का हिसाब लगाया जा सकता है:

SELECT AVG(trace_info.metric_info.metric_value) AS cache_hit_rate
FROM `TABLE_NAME`
WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD")
AND event_type = "TRACE_METRIC"
AND event_name = "cache-hit"
AND parent_trace_name = "loadFromDisk"
AND STRUCT("file-extension", "png") IN UNNEST(custom_attributes);

देखें कि दिन के किस समय उपयोगकर्ता नेटवर्क अनुरोध करते हैं

उदाहरण के लिए, यह देखा जा सकता है कि अमेरिका के उपयोगकर्ता, दिन के किस समय आपके ऐप्लिकेशन से नेटवर्क अनुरोध जारी करते हैं:

SELECT
  count(1) AS hourly_count,
  EXTRACT(HOUR FROM event_timestamp) AS hour_of_day
FROM `TABLE_NAME`
WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD")
AND event_type = "NETWORK_REQUEST"
AND country = "US"
GROUP BY 2 ORDER BY 2;

परफ़ॉर्मेंस मॉनिटर करने से जुड़े डेटा को कहीं भी ऐक्सेस करें

कभी-कभी आपको परफ़ॉर्मेंस मॉनिटर करने से जुड़े डेटा को सर्वर साइड पर ऐक्सेस करना होता है या उसे तीसरे पक्ष के किसी अन्य समाधान पर भेजना होता है. फ़िलहाल, डेटा एक्सपोर्ट करने के लिए कोई शुल्क नहीं लिया जाता.

अपना डेटा इन तरीकों से एक्सपोर्ट किया जा सकता है:

  • BigQuery वेब यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करना

  • सीएलआई कमांड को चलाया जा रहा है bq extract

  • एपीआई या क्लाइंट लाइब्रेरी के ज़रिए एक्सट्रैक्ट जॉब सबमिट करना.

कीमत

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