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

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

BigQuery को एक्सपोर्ट करने की सुविधा चालू करें

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

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

    Performance Monitoring के लिए BigQuery एक्सपोर्ट की सुविधा चालू करने पर, ये बदलाव होते हैं:

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

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

    • 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")
  • 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 के लिए — पैरंट ट्रेस के शुरू से लेकर आखिर तक का समय ("duration")
यूनिट: माइक्रोसेकंड
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 सैंडबॉक्स हो.