Apple और Android ऐप्लिकेशन से Performance Monitoring का डेटा, आगे के लिए BigQuery विश्लेषण करें. BigQuery की मदद से, डेटा का विश्लेषण करने के लिए BigQuery एसक्यूएल, इसे किसी दूसरी क्लाउड सेवा पर एक्सपोर्ट करें. साथ ही, आपके कस्टम एमएल मॉडल का डेटा.
BigQuery को एक्सपोर्ट करने की सुविधा चालू करें
YouTube Studio के इंटिग्रेशन Firebase कंसोल में पेज के आइकॉन पर क्लिक करें. इसके बाद, BigQuery में लिंक करें पर क्लिक करें कार्ड.
BigQuery को चालू करने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.
अगर Performance Monitoring के लिए BigQuery को एक्सपोर्ट करने की सुविधा चालू की जाती है, तो ये कार्रवाइयां की जाएंगी होता है:
Firebase, यहां आपके मौजूदा डेटा की कॉपी एक्सपोर्ट करता है BigQuery. एक्सपोर्ट के लिए डेटा को शुरुआती तौर पर प्रोसेस होने में ज़्यादा समय लग सकता है पूरा होने में 48 घंटे लग सकते हैं.
- आप डेटा बैकफ़िल को मैन्युअल तरीके से शेड्यूल करना पिछले 30 दिनों के लिए या फिर BigQuery को चालू करने की हाल ही की तारीख निर्यात करें (जो भी सबसे हाल का हो).
डेटासेट बनाने के बाद, बदला नहीं जा सकता, लेकिन डेटासेट को किसी दूसरी जगह पर कॉपी किया जा सकता है या मैन्युअल तौर पर, डेटासेट को किसी दूसरी जगह पर ले जाएं (फिर से बनाएं). सीखने में ज़्यादा जानने के लिए, डेटासेट की जगह बदलना देखें.
Firebase, आपके Firebase प्रोजेक्ट से आपके डेटा को नियमित तौर पर सिंक करता है, ताकि BigQuery. रोज़ाना होने वाले ये एक्सपोर्ट, आम तौर पर 24 घंटों में पूरे हो जाते हैं उन्हें शेड्यूल किए जाने के बाद.
डिफ़ॉल्ट रूप से, आपके प्रोजेक्ट के सभी ऐप्लिकेशन BigQuery से लिंक होते हैं. कोई भी जिन ऐप्लिकेशन को बाद में प्रोजेक्ट में जोड़ा जाता है वे अपने-आप लिंक हो जाते हैं BigQuery. आप मैनेज करें कि कौनसे ऐप्लिकेशन डेटा भेजेंगे.
BigQuery एक्सपोर्ट की सुविधा बंद करने के लिए, अपना प्रोजेक्ट अनलिंक करना 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 के बाद माइक्रोसेकंड
पूरा हो गया हैयूनिट: माइक्रोसेकंड |
एक्सपोर्ट किए गए डेटा का इस्तेमाल करके क्या किया जा सकता है?
नीचे दिए सेक्शन में, उन क्वेरी के उदाहरण दिए गए हैं जिन्हें चलाया जा सकता है आपके एक्सपोर्ट किए गए Performance Monitoring डेटा के मुकाबले 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
नाम की कस्टम एट्रिब्यूट और एक कस्टम मेट्रिक (a
TRACE_METRIC
) का नाम cache-hit
है, जो कैश मेमोरी के हिट होने पर 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;
अपने Performance Monitoring के डेटा को कहीं भी ऐक्सेस करें
कभी-कभी आपको अपने Performance Monitoring के डेटा को सर्वर-साइड ऐक्सेस करना होता है या उसे तीसरे पक्ष का कोई अन्य समाधान. फ़िलहाल, डेटा एक्सपोर्ट करने के लिए कोई शुल्क नहीं लिया जाता.
अपना डेटा इन तरीकों से एक्सपोर्ट किया जा सकता है:
BigQuery वेब यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करना
सीएलआई कमांड को चलाया जा रहा है
bq extract
सबमिट किया जा रहा है एक्सट्रैक्ट जॉब का इस्तेमाल किया जा सकता है.
कीमत
Performance Monitoring और BigQuery से डेटा एक्सपोर्ट करने पर कोई शुल्क नहीं लगता बिना कोई शुल्क दिए इस्तेमाल करने की बहुत ज़्यादा सीमाएं हैं. ज़्यादा जानकारी के लिए, इसे देखें BigQuery की कीमत या BigQuery सैंडबॉक्स हो.