নির্দিষ্ট নেটওয়ার্ক অনুরোধের জন্য কাস্টম মনিটরিং যোগ করুন (অ্যাপল এবং অ্যান্ড্রয়েড অ্যাপস)

পারফরম্যান্স মনিটরিং আপনাকে আপনার অ্যাপের কর্মক্ষমতা নিরীক্ষণ করতে সাহায্য করার জন্য ট্রেস সংগ্রহ করে। একটি ট্রেস হল আপনার অ্যাপে সময়ের মধ্যে দুটি পয়েন্টের মধ্যে ক্যাপচার করা কর্মক্ষমতা ডেটার একটি প্রতিবেদন।

পারফরম্যান্স মনিটরিং দ্বারা স্বয়ংক্রিয়ভাবে সংগ্রহ করা নেটওয়ার্ক অনুরোধের ট্রেসগুলির মধ্যে আপনার অ্যাপের জন্য বেশিরভাগ নেটওয়ার্ক অনুরোধ অন্তর্ভুক্ত থাকে। যাইহোক, কিছু অনুরোধ রিপোর্ট করা নাও হতে পারে বা আপনি নেটওয়ার্ক অনুরোধ করতে একটি ভিন্ন লাইব্রেরি ব্যবহার করতে পারেন। এই ক্ষেত্রে, আপনি কাস্টম নেটওয়ার্ক অনুরোধ ট্রেসগুলিকে ম্যানুয়ালি ইনস্ট্রুমেন্ট করতে পারফরম্যান্স মনিটরিং API ব্যবহার করতে পারেন৷ কাস্টম নেটওয়ার্ক অনুরোধ ট্রেস শুধুমাত্র Apple এবং Android অ্যাপের জন্য সমর্থিত।

একটি কাস্টম নেটওয়ার্ক অনুরোধ ট্রেসের জন্য ডিফল্ট মেট্রিকগুলি পারফরম্যান্স মনিটরিং দ্বারা স্বয়ংক্রিয়ভাবে সংগ্রহ করা নেটওয়ার্ক অনুরোধের ট্রেসের মতোই, বিশেষ করে প্রতিক্রিয়ার সময়, প্রতিক্রিয়া এবং অনুরোধের পেলোডের আকার এবং সাফল্যের হার। কাস্টম নেটওয়ার্ক অনুরোধ ট্রেস কাস্টম মেট্রিক্স যোগ করা সমর্থন করে না।

আপনার কোডে, আপনি পারফরম্যান্স মনিটরিং SDK দ্বারা প্রদত্ত API ব্যবহার করে একটি কাস্টম নেটওয়ার্ক অনুরোধ ট্রেসের শুরু এবং শেষ সংজ্ঞায়িত করুন৷

কাস্টম নেটওয়ার্ক অনুরোধের ট্রেসগুলি Firebase কনসোলে নেটওয়ার্ক অনুরোধগুলির পাশাপাশি প্রদর্শিত হয় যা পারফরম্যান্স মনিটরিং স্বয়ংক্রিয়ভাবে ক্যাপচার করে (ট্রেস টেবিলের নেটওয়ার্ক অনুরোধ সাবট্যাবে)।

কাস্টম নেটওয়ার্ক অনুরোধ ট্রেস যোগ করুন

নির্দিষ্ট নেটওয়ার্ক অনুরোধ নিরীক্ষণ করতে কাস্টম নেটওয়ার্ক অনুরোধ ট্রেস যোগ করতে পারফরম্যান্স মনিটরিং HttpMetric API ব্যবহার করুন।

পারফরম্যান্স মনিটরিং-এ ম্যানুয়ালি কাস্টম নেটওয়ার্ক অনুরোধের জন্য, নিম্নলিখিত অনুরূপ কোড যোগ করুন:

Kotlin+KTX

val url = URL("https://www.google.com")
val metric = Firebase.performance.newHttpMetric(
    "https://www.google.com",
    FirebasePerformance.HttpMethod.GET,
)
metric.trace {
    val conn = url.openConnection() as HttpURLConnection
    conn.doOutput = true
    conn.setRequestProperty("Content-Type", "application/json")
    try {
        val outputStream = DataOutputStream(conn.outputStream)
        outputStream.write(data)
    } catch (ignored: IOException) {
    }

    // Set HttpMetric attributes
    setRequestPayloadSize(data.size.toLong())
    setHttpResponseCode(conn.responseCode)

    printStreamContent(conn.inputStream)

    conn.disconnect()
}

Java

HttpMetric metric =
        FirebasePerformance.getInstance().newHttpMetric("https://www.google.com",
                FirebasePerformance.HttpMethod.GET);
final URL url = new URL("https://www.google.com");
metric.start();
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/json");
try {
    DataOutputStream outputStream = new DataOutputStream(conn.getOutputStream());
    outputStream.write(data);
} catch (IOException ignored) {
}
metric.setRequestPayloadSize(data.length);
metric.setHttpResponseCode(conn.getResponseCode());
printStreamContent(conn.getInputStream());

conn.disconnect();
metric.stop();

কাস্টম নেটওয়ার্ক রিকোয়েস্ট ট্রেস কাস্টম অ্যাট্রিবিউট যোগ করতেও সমর্থন করে কিন্তু কাস্টম মেট্রিক্স নয়।

পরবর্তী পদক্ষেপ

  • নেটওয়ার্ক অনুরোধের জন্য সতর্কতা সেট আপ করুন যেগুলি আপনার অ্যাপের কর্মক্ষমতা নষ্ট করছে। উদাহরণস্বরূপ, আপনি আপনার দলের জন্য একটি ইমেল সতর্কতা কনফিগার করতে পারেন যদি একটি নির্দিষ্ট URL প্যাটার্নের প্রতিক্রিয়া সময় আপনার সেট করা থ্রেশহোল্ড অতিক্রম করে।