Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

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

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

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

  2. 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 युग से टाइमस्टैम्प जब क्लाइंट डिवाइस पर इवेंट शुरू हुआ (ट्रेस स्टार्ट, नेटवर्क स्टार्ट, आदि)
app_display_version डोरी एप्लिकेशन का प्रदर्शन संस्करण (उदाहरण के लिए, "4.1.7")
  • Android के लिए - VersionName
  • आईओएस के लिए - CFBundleShortVersionString
app_build_version डोरी एप्लिकेशन का निर्माण संस्करण (उदाहरण के लिए, "1523456")
  • Android के लिए - VersionCode
  • आईओएस के लिए - CFBundleVersion
os_version डोरी क्लाइंट डिवाइस का OS संस्करण
  • Android के लिए — Android API स्तर (उदाहरण के लिए "26")
  • आईओएस के लिए - आईओएस संस्करण (उदाहरण के लिए "11.4")
डिवाइस का नाम डोरी क्लाइंट डिवाइस का नाम (उदाहरण के लिए, "Google पिक्सेल")
देश डोरी उस देश का दो-अक्षर वाला देश कोड जहां से घटना हुई (उदाहरण के लिए, अज्ञात देश के लिए "US", या "ZZ")
वाहक डोरी क्लाइंट डिवाइस का वाहक
Radio_type डोरी घटना होने पर सक्रिय रेडियो प्रकार (उदाहरण के लिए, "वाईफ़ाई")
Custom_attributes ऐरे <रिकॉर्ड> इस इवेंट से जुड़ी सभी कस्टम विशेषताएं
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 के लिए मौजूद है
trace_info अभिलेख केवल DURATION_TRACE , SCREEN_TRACE , और TRACE_METRIC के लिए मौजूद है
trace_info.duration_us int64
  • 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 के लिए मौजूद है
trace_info.metric_info.metric_value int64 ट्रेस मीट्रिक का मान
नेटवर्क जानकारी अभिलेख केवल NETWORK_REQUEST के लिए उपस्थित
network_info.response_code int64 नेटवर्क प्रतिक्रिया के लिए HTTP प्रतिक्रिया कोड (उदाहरण के लिए, 200, 404)
network_info.response_mime_type डोरी नेटवर्क प्रतिसाद का MIME प्रकार (उदाहरण के लिए, "पाठ/html")
network_info.request_http_method डोरी नेटवर्क अनुरोध की HTTP विधि (उदाहरण के लिए, "GET" या "POST")
network_info.request_payload_बाइट्स int64 नेटवर्क अनुरोध पेलोड का आकार
यूनिट: बाइट
network_info.response_payload_बाइट्स 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 के बाद माइक्रोसेकंड
यूनिट: माइक्रोसेकंड

आप निर्यात किए गए डेटा के साथ क्या कर सकते हैं?

निम्न अनुभाग उन क्वेरी के उदाहरण प्रस्तुत करते हैं जिन्हें आप अपने निर्यात किए गए प्रदर्शन निगरानी डेटा के विरुद्ध 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 पर सेट है।

उदाहरण के लिए, आप डिस्क से पीएनजी फाइलों को लोड करने के लिए कैशे हिट दर की गणना कर सकते हैं:

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 सैंडबॉक्स देखें।