Check out what’s new from Firebase at Google I/O 2022. Learn more

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

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

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

  1. Firebase कंसोल में इंटीग्रेशन पेज पर जाएं, फिर BigQuery कार्ड में लिंक पर क्लिक करें.

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

जब आप प्रदर्शन निगरानी के लिए BigQuery निर्यात सक्षम करते हैं:

  • Firebase आपके मौजूदा डेटा की एक कॉपी BigQuery को एक्सपोर्ट करता है .

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

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

  • डेटासेट बनने के बाद, स्थान बदला नहीं जा सकता है, लेकिन आप डेटासेट को किसी भिन्न स्थान पर कॉपी कर सकते हैं या मैन्युअल रूप से डेटासेट को किसी भिन्न स्थान पर ले जा सकते हैं (फिर से बना सकते हैं)। अधिक जानने के लिए, डेटासेट स्थान बदलें देखें।

  • Firebase आपके Firebase प्रोजेक्ट से BigQuery में आपके डेटा का नियमित समन्वयन सेट करता है. ये दैनिक निर्यात संचालन 4:00 AM प्रशांत समय से शुरू होते हैं और आमतौर पर 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_ प्लस वास्तविक स्क्रीन नाम है
  • नेटवर्क अनुरोध - नेटवर्क अनुरोध के जीवनकाल में फैले निशान (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")
  • Android के लिए — VersionName
  • आईओएस के लिए - CFBundleShortVersionString
ऐप_बिल्ड_संस्करण डोरी एप्लिकेशन का संस्करण बनाएं (उदाहरण के लिए, "1523456")
  • Android के लिए — VersionCode
  • आईओएस के लिए - CFBundleVersion
ओएस_संस्करण डोरी क्लाइंट डिवाइस का OS संस्करण
  • Android के लिए — Android API स्तर (उदाहरण के लिए "26")
  • आईओएस के लिए - आईओएस संस्करण (उदाहरण के लिए "11.4")
यन्त्र का नाम डोरी क्लाइंट डिवाइस का नाम (उदाहरण के लिए, "Google Pixel")
देश डोरी उस देश का दो-अक्षर वाला देश कोड जहां से ईवेंट हुआ था (उदाहरण के लिए, "US", या अज्ञात देश के लिए "ZZ")
वाहक डोरी क्लाइंट डिवाइस का वाहक
रेडियो_प्रकार डोरी घटना होने पर सक्रिय रेडियो प्रकार (उदाहरण के लिए, "वाईफ़ाई")
कस्टम_विशेषताएं ऐरे <रिकॉर्ड> इस ईवेंट से जुड़ी सभी कस्टम विशेषताएं
custom_attributes.key डोरी कस्टम विशेषता की कुंजी
custom_attributes.value डोरी कस्टम विशेषता का मान
घटना प्रकार डोरी घटना का प्रकार; संभावित मान:
  • DURATION_TRACE — डिफ़ॉल्ट रूप से, "अवधि" के मीट्रिक को एकत्रित करने वाले ट्रेस, जिसमें ऐप प्रारंभ, ऐप-इन-अग्रभूमि, और ऐप-इन-बैकग्राउंड, साथ ही कोई भी डेवलपर-इंस्ट्रूमेंटेड कस्टम कोड ट्रेस शामिल हैं
  • SCREEN_TRACE - एक स्क्रीन के जीवनकाल में फैले निशान (स्क्रीन रेंडरिंग ट्रेस)
  • TRACE_METRIC — कस्टम मेट्रिक्स जो डेवलपर-इंस्ट्रूमेंटेड कस्टम कोड ट्रेस से संबद्ध हैं
  • 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;

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

यह विश्लेषण मानता है कि आपने 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 वेब UI का उपयोग करना

  • सीएलआई कमांड bq extract चलाना

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

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

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