Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

प्रदर्शन निगरानी डेटा को BigQuery में निर्यात करें

आप iOS से प्रदर्शन की निगरानी डेटा निर्यात कर सकते हैं और Android में एप्लिकेशन BigQuery आगे के विश्लेषण के लिए। BigQuery आपको BigQuery SQL का उपयोग करके डेटा का विश्लेषण करने, उसे किसी अन्य क्लाउड प्रदाता को निर्यात करने और यहां तक ​​कि अपने कस्टम ML मॉडल के लिए डेटा का उपयोग करने की अनुमति देता है।

BigQuery निर्यात सक्षम करें

  1. पर जाएं एकीकरण Firebase कंसोल में पेज, तो BigQuery कार्ड में लिंक पर क्लिक करें।

  2. BigQuery को सक्षम करने के लिए ऑन-स्क्रीन निर्देशों का पालन करें।

जब आप अपने प्रोजेक्ट को BiqQuery से लिंक करते हैं:

  • Firebase अपने मौजूदा डेटा की एक प्रतिलिपि निर्यात BigQuery में।

    • आरंभिक लिंकिंग के समय, Firebase आपकी BigQuery तालिकाओं को पिछले 7 दिनों के डेटा को बैकफ़िल करने के लिए स्वचालित रूप से शेड्यूल करता है ताकि आप तुरंत प्रयोग शुरू कर सकें। BigQuery में आरंभिक डेटा उपलब्ध होने के लिए कुछ घंटों का समय दें.

    • आप भी कर सकते हैं मैन्युअल रूप से शेड्यूल डेटा बैकफ़िल पिछले 30 दिनों तक के लिए।

  • Firebase आपके डेटा के दैनिक समन्वयन को आपके Firebase प्रोजेक्ट से BigQuery में सेट करता है।

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

BigQuery निर्यात को निष्क्रिय करने के लिए, अपनी परियोजना को अनलिंक Firebase कंसोल में।

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

प्रोजेक्ट में प्रत्येक ऐप के लिए, निर्यात एक तालिका बनाता है जिसमें सभी कैप्चर किए गए प्रदर्शन ईवेंट शामिल होते हैं। तालिका में प्रत्येक पंक्ति एक एकल प्रदर्शन घटना है जो निम्न में से एक हो सकती है:

  • अवधि का पता लगाने - निशान कि एकत्रित करते हैं, डिफ़ॉल्ट रूप से, "अवधि" मीट्रिक है, जो एप्लिकेशन शुरू, एप्लिकेशन में अग्रभूमि, और एप्लिकेशन में पृष्ठभूमि, साथ ही किसी भी डेवलपर-instrumented कस्टम कोड निशान शामिल

    • event_type है DURATION_TRACE
    • event_name ट्रेस नाम के समान है
  • मीट्रिक ट्रेस - कि डेवलपर-instrumented कस्टम कोड निशान के साथ जुड़े रहे कस्टम मीट्रिक

    • event_type है TRACE_METRIC
    • event_name मीट्रिक का नाम है
    • parent_trace_name ट्रेस ऐसा नाम है जो इस मीट्रिक होता है
  • स्क्रीन का पता लगाने - एक स्क्रीन के जीवनकाल में फैले निशान (स्क्रीन प्रतिपादन निशान)

    • event_type है SCREEN_TRACE
    • event_name है उपसर्ग _st_ प्लस वास्तविक स्क्रीन नाम
  • नेटवर्क अनुरोध - किसी नेटवर्क अनुरोध के जीवन भर में फैले निशान (HTTP नेटवर्क अनुरोध निशान)

    • event_type है NETWORK_REQUEST
    • event_name नेटवर्क अनुरोध URL का वर्गीकृत किया पैटर्न है

प्रत्येक प्रदर्शन ईवेंट में ईवेंट की विशेषताएं (जैसे देश और क्लाइंट डिवाइस का वाहक), साथ ही ईवेंट-विशिष्ट जानकारी शामिल होती है:

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

विस्तृत डेटा स्कीमा

क्षेत्र का नाम प्रकार विवरण
event_timestamp TIMESTAMP क्लाइंट डिवाइस (ट्रेस प्रारंभ, नेटवर्क प्रारंभ, आदि) पर ईवेंट प्रारंभ होने पर युग के बाद से टाइमस्टैम्प
ऐप_डिस्प्ले_संस्करण डोरी एप्लिकेशन का प्रदर्शन संस्करण (उदाहरण के लिए, "4.1.7")
  • एंड्रॉयड के लिए - VersionName
  • आईओएस के लिए - CFBundleShortVersionString
ऐप_बिल्ड_संस्करण डोरी एप्लिकेशन का संस्करण बनाएं (उदाहरण के लिए, "1523456")
  • एंड्रॉयड के लिए - VersionCode
  • आईओएस के लिए - CFBundleVersion
ओएस_संस्करण डोरी क्लाइंट डिवाइस का OS संस्करण
  • Android के लिए — Android API स्तर (उदाहरण के लिए "26")
  • आईओएस के लिए - आईओएस संस्करण (उदाहरण के लिए "11.4")
डिवाइस का नाम डोरी क्लाइंट डिवाइस का नाम (उदाहरण के लिए, "Google Pixel")
देश डोरी उस देश का दो-अक्षर वाला देश कोड जहां से ईवेंट हुआ था (उदाहरण के लिए, "US", या "ZZ" अज्ञात देश के लिए)
वाहक डोरी क्लाइंट डिवाइस का वाहक
रेडियो_प्रकार डोरी घटना होने पर सक्रिय रेडियो प्रकार (उदाहरण के लिए, "वाईफ़ाई")
कस्टम_विशेषताएं ऐरे <रिकॉर्ड> इस ईवेंट से जुड़ी सभी कस्टम विशेषताएं
custom_attributes.key डोरी कस्टम विशेषता की कुंजी
custom_attributes.value डोरी कस्टम विशेषता का मान
घटना प्रकार डोरी घटना का प्रकार; संभावित मान:
  • DURATION_TRACE - निशान कि एकत्रित करते हैं, डिफ़ॉल्ट रूप से, "अवधि" मीट्रिक है, जो एप्लिकेशन शुरू, एप्लिकेशन में अग्रभूमि, और एप्लिकेशन में पृष्ठभूमि, साथ ही किसी भी डेवलपर-instrumented कस्टम कोड निशान शामिल
  • SCREEN_TRACE - निशान एक स्क्रीन के जीवनकाल में फैले (स्क्रीन प्रतिपादन निशान)
  • TRACE_METRIC - कि डेवलपर-instrumented कस्टम कोड निशान के साथ जुड़े रहे कस्टम मीट्रिक
  • NETWORK_REQUEST - निशान किसी नेटवर्क अनुरोध के जीवन भर में फैले (HTTP नेटवर्क अनुरोध निशान)
कार्यक्रम नाम डोरी घटना का नाम
  • के लिए DURATION_TRACE ट्रेस नाम -
  • के लिए TRACE_METRIC कस्टम मीट्रिक नाम -
  • के लिए SCREEN_TRACE - _st_ ट्रेस नाम और उसके बाद
  • के लिए NETWORK_REQUEST नेटवर्क अनुरोध URL पैटर्न -
जनक_ट्रेस_नाम डोरी मूल ट्रेस का नाम जो ट्रेस मीट्रिक को वहन करता है
केवल के लिए वर्तमान TRACE_METRIC
ट्रेस_जानकारी अभिलेख केवल के लिए वर्तमान DURATION_TRACE , SCREEN_TRACE , और TRACE_METRIC
ट्रेस_इन्फो.ड्यूरेशन_यूएस इंट64
  • के लिए DURATION_TRACE और SCREEN_TRACE - का पता लगाने के अंत में शुरू से ही समय की लंबाई ( "अवधि")
  • के लिए TRACE_METRIC - माता-पिता का पता लगाने के अंत में शुरू से ही समय ( "अवधि") की लंबाई
इकाई: माइक्रोसेकंड
ट्रेस_इन्फो.स्क्रीन_इन्फो अभिलेख केवल के लिए वर्तमान SCREEN_TRACE
ट्रेस_इन्फो.स्क्रीन_इन्फो.slow_frame_ratio फ्लोट64 इस स्क्रीन ट्रेस के लिए धीमे फ़्रेम का अनुपात, 0 और 1 के बीच (उदाहरण के लिए, 0.05 के मान का अर्थ है कि इस स्क्रीन इंस्टेंस के लिए 5% फ़्रेम को रेंडर होने में 16ms से अधिक समय लगा)
ट्रेस_इन्फो.स्क्रीन_इन्फो.फ्रोजन_फ्रेम_अनुपात फ्लोट64 इस स्क्रीन ट्रेस के लिए फ़्रीज़ किए गए फ़्रेम का अनुपात, 0 और 1 के बीच (उदाहरण के लिए, 0.05 के मान का अर्थ है कि इस स्क्रीन इंस्टेंस के लिए 5% फ़्रेम को रेंडर करने में 700ms से अधिक समय लगा)
ट्रेस_इन्फो.मेट्रिक_इन्फो अभिलेख केवल के लिए वर्तमान TRACE_METRIC
ट्रेस_इन्फो.मेट्रिक_इन्फो.मेट्रिक_वैल्यू इंट64 ट्रेस मीट्रिक का मान
नेटवर्क जानकारी अभिलेख केवल के लिए वर्तमान NETWORK_REQUEST
network_info.response_code इंट64 नेटवर्क प्रतिक्रिया के लिए HTTP प्रतिक्रिया कोड (उदाहरण के लिए, 200, 404)
network_info.response_mime_type डोरी नेटवर्क प्रतिक्रिया का MIME प्रकार (उदाहरण के लिए, "टेक्स्ट/एचटीएमएल")
network_info.request_http_method डोरी नेटवर्क अनुरोध की HTTP विधि (उदाहरण के लिए, "GET" या "POST")
network_info.request_payload_bytes इंट64 नेटवर्क अनुरोध पेलोड का आकार
इकाई: बाइट
network_info.response_payload_bytes इंट64 नेटवर्क प्रतिक्रिया पेलोड का आकार
इकाई: बाइट
network_info.request_completed_time_us इंट64 बाद माइक्रोसेकंड event_timestamp जब नेटवर्क अनुरोध भेजने के पूरा हो गया है
इकाई: माइक्रोसेकंड
network_info.response_initiated_time_us इंट64 बाद माइक्रोसेकंड event_timestamp जब नेटवर्क प्रतिक्रिया शुरू किया जाता है
इकाई: माइक्रोसेकंड
network_info.response_completed_time_us इंट64 बाद माइक्रोसेकंड 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;

विभिन्न परिस्थितियों में जमे हुए फ़्रेमों के अनुपात की जाँच करें

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

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;

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

इस विश्लेषण मानता है कि आप एक कस्टम विशेषता नामित साथ डिस्क से लोड करने के लिए एक कस्टम कोड का पता लगाने instrumented file-extension तथा एक कस्टम मीट्रिक (एक 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;

अपना प्रदर्शन निगरानी डेटा कहीं भी ले जाएं

कभी-कभी आप अपने प्रदर्शन निगरानी डेटा सर्वर-साइड तक पहुंचना चाहते हैं या इसे किसी अन्य तृतीय-पक्ष समाधान पर धकेलना चाहते हैं। डेटा निर्यात करने के लिए वर्तमान में कोई शुल्क नहीं है।

आप अपना डेटा निर्यात कर सकते हैं:

  • BigQuery वेब UI का उपयोग करना

  • CLI आदेश चलाकर bq extract

  • एक भेजने से निकालने का कार्य एपीआई या क्लाइंट लाइब्रेरी के माध्यम से।

मूल्य निर्धारण

प्रदर्शन निगरानी से डेटा निर्यात करने के लिए कोई शुल्क नहीं है, और BigQuery उदार मुफ़्त उपयोग सीमाएँ प्रदान करता है। विस्तृत जानकारी के लिए, का उल्लेख BigQuery मूल्य निर्धारण या BigQuery सैंडबॉक्स