Firebase Realtime Database প্রোফাইলার কমান্ড
আপনার Realtime Database ইনস্ট্যান্সে ক্রিয়াকলাপের জন্য গতি এবং ব্যান্ডউইথ ব্যবহারের একটি প্রতিবেদন তৈরি করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
firebase database:profile
| পতাকা বিকল্প | বর্ণনা |
|---|---|
-h, --help | আউটপুট ব্যবহারের তথ্য। |
-o, --output FILENAME | নির্দিষ্ট ফাইলে আউটপুট সংরক্ষণ করুন। |
-i, --input FILENAME | সার্ভার থেকে স্ট্রিম লগের পরিবর্তে নির্দিষ্ট ফাইলের উপর ভিত্তি করে প্রতিবেদন তৈরি করুন। |
-d, --duration SECONDS | নির্দিষ্ট সংখ্যক সেকেন্ডের জন্য ডাটাবেস ব্যবহারের তথ্য সংগ্রহ করুন। |
--raw | নতুন-লাইন সীমাবদ্ধ JSON হিসাবে সংগৃহীত কাঁচা পরিসংখ্যান আউটপুট। |
অপারেশন প্রকার
concurrent- সংযোগ
এই অপারেশনটি ডাটাবেসের সাথে রিয়েলটাইম সংযোগগুলি প্রতিফলিত করে (উদাহরণস্বরূপ, যখন একটি নতুন ক্লায়েন্ট একটি SDK এর মাধ্যমে সংযোগ করে)। সমসাময়িক-সংযোগ ক্রিয়াকলাপে RESTful সংযোগগুলি প্রতিফলিত হয় না।
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
concurrent- disconnect
সমবর্তী-বিচ্ছিন্ন একটি সংযোগ প্রতিফলিত করে যা ডাটাবেস থেকে সংযোগ বিচ্ছিন্ন হয়ে গেছে (উদাহরণস্বরূপ, যখন একটি ক্লায়েন্ট সংযোগ বিচ্ছিন্ন করে বা সাইন অফ করে)।
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
বাস্তব সময় লিখুন
রিয়েলটাইম সংযোগ থেকে অনুরোধ লিখুন. উদাহরণস্বরূপ, ওয়েব ক্লায়েন্টদের জন্য set() এবং push() অপারেশন। মুছে ফেলার অনুরোধগুলিকে realtime-write অপারেশন হিসাবেও গণনা করা হয় এবং 0 বাইটের লেখাগুলিকে প্রতিফলিত করা হয়।
{ "allowed": true, // If security rules allow the operation "bytes": 1, "millis": 2, "name": "realtime-write", "path": [ "foo" ], "timestamp": 1484776538763 }
রিয়েলটাইম-লেনদেন
এই অপারেশন প্রকারের মধ্যে রয়েছে রিয়েলটাইম সংযোগের মাধ্যমে পরিচালিত লেনদেন। পুনরাবৃত্তি লেনদেন ব্যর্থ প্রচেষ্টা এবং পুনরায় চেষ্টার ফলাফল হতে পারে.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
রিয়েলটাইম-আপডেট
আপডেটের জন্য এই রিয়েলটাইম ক্রিয়াকলাপগুলি নির্দিষ্ট ডেটার ওভারওয়াইটগুলিকে প্রতিফলিত করে, realtime-write আরও সাধারণ লেখার ক্রিয়াকলাপগুলি নয়।
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
শ্রোতা-শ্রোতা
এই ক্রিয়াকলাপগুলি একটি ক্লায়েন্টের কাছ থেকে একটি নির্দিষ্ট স্থানে ডেটার জন্য প্রাথমিক জিজ্ঞাসাকে প্রতিফলিত করে। উদাহরণস্বরূপ, ওয়েব ক্লায়েন্টদের জন্য on() বা once() পদ্ধতি।
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
শ্রোতা-সম্প্রচার
এই ক্রিয়াকলাপটি সার্ভার থেকে যে কোনও এবং সমস্ত ক্লায়েন্টের কাছে পাঠানো ডেটা কভার করে যারা প্রতিটি লেখা এবং আপডেট অপারেশনের পরে একটি নির্দিষ্ট স্থানে শুনছে। তথ্য পরিবর্তন একটি সম্প্রচার অপারেশন বাড়ে. যাইহোক, কোনো ক্লায়েন্ট না শুনলে আপনি 0টি আপডেট দেখতে পারেন।
{ "bytes": 56, // Total bytes sent across clients "clientsUpdated": 3, // This may be 0 if no clients are listening "millis": 17, "name": "listener-broadcast", "path": [ "baz", "mar" ], "timestamp": 1484775969928 }
শ্রোতা-অশ্রুতি
এই অপারেশনগুলি শ্রবণকারী ক্লায়েন্টদের প্রতিফলিত করে যারা বিচ্ছিন্ন পদ্ধতির মাধ্যমে সাইন অফ বা শোনা বন্ধ করে (উদাহরণস্বরূপ, ওয়েবের জন্য off() , বা iOS-এর জন্য removeAllObservers ।
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
বিশ্রাম পড়ুন
REST API এর মাধ্যমে অনুরোধ GET ।
{ "allowed": true, "bytes": 348, // This would be 0 if the read data was null "millis": 26, "name": "rest-read", "path": [], "querySet": [ { "default": true, "endIndexValue": "[MAX_NAME]", "equality": false, "index": {}, "limit": null, "range": false, "simpleLimit": false, "startIndexValue": "[MIN_NAME]", "viewFrom": null } ], "timestamp": 1484775747416 }
বিশ্রাম লিখুন
REST API-এর মাধ্যমে অনুরোধ PUT এবং POST । DELETE অনুরোধ 0 বাইটের rest-write অপারেশন প্রতিফলিত করে।
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
বিশ্রাম-লেনদেন
লেনদেনের মতো আচরণের জন্য, শর্তসাপেক্ষ অনুরোধগুলি ব্যবহার করুন। rest-transaction অপারেশন Etag বা if-match হেডার ব্যবহার করে অনুরোধ ক্যাপচার করে।
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
বিশ্রাম-আপডেট
REST API এর মাধ্যমে আপডেটগুলি PATCH অনুরোধগুলি প্রতিফলিত করে৷
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
অন-সংযোগ বিচ্ছিন্ন করা
এই অপারেশনগুলি অপারেশন লেখার জন্য onDisconnect শ্রোতাদের যোগ প্রতিফলিত করে। উদাহরণস্বরূপ, যখন আপনি onDisconnect().setValue() ব্যবহার করেন।
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
অন-সংযোগ-আপডেট
এই অপারেশনগুলি অপারেশন আপডেট করার জন্য onDisconnect শ্রোতাদের যোগ প্রতিফলিত করে। উদাহরণস্বরূপ, যখন আপনি onDisconnect().updateChildren() ব্যবহার করেন।
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
অন-সংযোগ বিচ্ছিন্ন-বাতিল
এই অপারেশনগুলি অনডিসকানেক্ট শ্রোতাদের অপসারণকে প্রতিফলিত করে। উদাহরণস্বরূপ, যখন আপনি onDisconnect().set().cancel() ব্যবহার করেন।
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
রান অন-সংযোগ বিচ্ছিন্ন
এই অপারেশনগুলি onDisconnect শ্রোতাদের ট্রিগারিং প্রতিফলিত করে। যখন একটি রিয়েলটাইম ক্লায়েন্ট কমপক্ষে একটি onDisconnect শ্রোতা যোগ করার পরে সংযোগ বিচ্ছিন্ন করে, তখন প্রোফাইলার সমস্ত অন- onDisconnect শ্রোতাদের সমষ্টিগত বাইট এবং সময় প্রতিফলিত করতে একটি একক run-on-disconnect অপারেশন রেকর্ড করে।
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }