Apple और Android ऐप्लिकेशन से Performance Monitoring का डेटा, आगे के लिए BigQuery विश्लेषण करें. BigQuery की मदद से, BigQuery SQL का इस्तेमाल करके डेटा का विश्लेषण किया जा सकता है. साथ ही, उसे किसी दूसरे क्लाउड सेवा देने वाली कंपनी के पास एक्सपोर्ट किया जा सकता है. इसके अलावा, अपने कस्टम एमएल मॉडल के लिए भी डेटा का इस्तेमाल किया जा सकता है.
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 के लिए मौजूद है |
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 मि.से. से ज़्यादा समय लगा) |
trace_info.metric_info | रिकॉर्ड | सिर्फ़ TRACE_METRIC के लिए मौजूद |
ट्रेस_info.metric_info.metric_value | int64 | ट्रेस मेट्रिक की वैल्यू |
network_info | रिकॉर्ड | सिर्फ़ 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
नाम के कस्टम एट्रिब्यूट और 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;
अपने Performance Monitoring के डेटा को कहीं भी ऐक्सेस करें
कभी-कभी आपको अपने Performance Monitoring के डेटा को सर्वर-साइड ऐक्सेस करना होता है या उसे तीसरे पक्ष का कोई अन्य समाधान. फ़िलहाल, डेटा एक्सपोर्ट करने के लिए कोई शुल्क नहीं लिया जाता.
अपना डेटा इन तरीकों से एक्सपोर्ट किया जा सकता है:
BigQuery वेब यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करना
सीएलआई कमांड को चलाया जा रहा है
bq extract
सबमिट किया जा रहा है एक्सट्रैक्ट जॉब का इस्तेमाल किया जा सकता है.
कीमत
Performance Monitoring और BigQuery से डेटा एक्सपोर्ट करने पर कोई शुल्क नहीं लगता बिना कोई शुल्क दिए इस्तेमाल करने की बहुत ज़्यादा सीमाएं हैं. ज़्यादा जानकारी के लिए, इसे देखें BigQuery की कीमत या BigQuery सैंडबॉक्स हो.