बेहतर विश्लेषण के लिए, Apple और Android ऐप्लिकेशन से परफ़ॉर्मेंस मॉनिटर करने से जुड़े डेटा को BigQuery में एक्सपोर्ट किया जा सकता है. BigQuery की मदद से, BigQuery SQL का इस्तेमाल करके डेटा का विश्लेषण किया जा सकता है. साथ ही, इसे किसी अन्य क्लाउड सेवा पर एक्सपोर्ट किया जा सकता है. इसके अलावा, कस्टम एमएल मॉडल के लिए भी डेटा का इस्तेमाल किया जा सकता है.
BigQuery Export चालू करें
Firebase कंसोल में, इंटिग्रेशन पेज पर जाएं. इसके बाद, BigQuery कार्ड में लिंक करें पर क्लिक करें.
BigQuery को चालू करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.
परफ़ॉर्मेंस मॉनिटर करने की सुविधा के लिए BigQuery Export चालू करने पर, ये चीज़ें होती हैं:
Firebase आपके मौजूदा डेटा की एक कॉपी BigQuery में एक्सपोर्ट करता है. एक्सपोर्ट के लिए डेटा को शुरुआती तौर पर लागू होने में 48 घंटे लग सकते हैं.
- पिछले 30 दिनों या सबसे हाल की तारीख के लिए, मैन्युअल तरीके से डेटा बैकफ़िल शेड्यूल किया जा सकता है. BigQuery Export चालू करने के बाद की तारीख, इनमें से जो भी सबसे हाल की हो.
डेटासेट बनाने के बाद, उसकी जगह को बदला नहीं जा सकता. हालांकि, डेटासेट को किसी दूसरी जगह पर कॉपी किया जा सकता है या मैन्युअल तरीके से डेटासेट को किसी दूसरी जगह पर ले जाया (फिर से बनाया) जा सकता है. ज़्यादा जानने के लिए, डेटासेट की जगह बदलना लेख पढ़ें.
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")
|
app_build_version | स्ट्रिंग | ऐप्लिकेशन का बिल्ड वर्शन (उदाहरण के लिए, "1523456")
|
os_version | स्ट्रिंग | क्लाइंट डिवाइस का ओएस वर्शन
|
device_name | स्ट्रिंग | क्लाइंट के डिवाइस का नाम (उदाहरण के लिए, "Google Pixel") |
country | स्ट्रिंग | उस देश का दो अक्षर वाला देश कोड जहां से इवेंट हुआ है (उदाहरण के लिए, "US" या अज्ञात देश के लिए "ZZ") |
शिपिंग की सेवा देने वाली कंपनी | स्ट्रिंग | क्लाइंट डिवाइस को मोबाइल और इंटरनेट सेवा देने वाली कंपनी |
रेडियो टाइप | स्ट्रिंग | इवेंट के दौरान चालू रेडियो टाइप (उदाहरण के लिए, "वाई-फ़ाई") |
कस्टम एट्रिब्यूट | आरे<रिकॉर्ड> | इस इवेंट से जुड़े सभी कस्टम एट्रिब्यूट |
custom_Attributes.key | स्ट्रिंग | कस्टम एट्रिब्यूट की कुंजी |
कस्टम एट्रिब्यूट वैल्यू | स्ट्रिंग | कस्टम एट्रिब्यूट का मान |
event_type | स्ट्रिंग | इवेंट किस तरह का है; संभावित वैल्यू:
|
event_name | स्ट्रिंग | इवेंट का नाम
|
पैरंट_trace_name | स्ट्रिंग | ट्रेस मेट्रिक को शामिल करने वाले पैरंट ट्रेस का नाम सिर्फ़ TRACE_METRIC के लिए मौजूद है |
ट्रेस की जानकारी | रिकॉर्ड | सिर्फ़ DURATION_TRACE , SCREEN_TRACE , और TRACE_METRIC के लिए मौजूद |
ट्रेस_info.duration_us | int64 |
|
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 सैंडबॉक्स देखें.