Команда профилировщика Firebase Realtime Database
Чтобы создать отчет о скорости и использовании пропускной способности для операций в экземпляре Realtime Database, используйте следующую команду:
firebase database:profile
| Параметры пометки | Описание |
|---|---|
-h, --help |
Вывод информации об использовании. |
-o, --output FILENAME |
Сохраните выходные данные в указанном файле. |
-i, --input FILENAME |
Создать отчет на основе указанного файла, а не журналов потоков с сервера. |
-d, --duration SECONDS |
Собирает информацию об использовании базы данных в течение указанного количества секунд. |
--raw |
Вывести собранную статистику в виде JSON-файла с символом перевода строки в качестве разделителя. |
Типы операций
concurrent-connect
Эта операция отражает подключения к базе данных в реальном времени (например, когда новый клиент подключается через SDK). RESTful-подключения не отражаются в операциях concurrent-connect.
{ "name": "concurrent-connect", "timestamp": 1484776334900 }
concurrent-disconnect
Одновременные отключения отражают подключение, которое было отключено от базы данных (например, когда клиент отключается или выходит из системы).
{ "name": "concurrent-disconnect", "timestamp": 1484776341844 }
realtime-write
Записывать запросы из подключений в реальном времени. Например, операции set() и push() для веб-клиентов. Запросы на удаление также считаются операциями realtime-write и отражают запись 0 байт.
{ "allowed": true, // If security rules allow the operation "bytes": 1, "millis": 2, "name": "realtime-write", "path": [ "foo" ], "timestamp": 1484776538763 }
realtime-transaction
Этот тип операций включает транзакции, выполненные через подключения в реальном времени. Повторные транзакции могут быть результатом неудачных попыток и повторных запросов.
{ "allowed": true, "bytes": 20, "millis": 2, "name": "realtime-transaction", "path": [ "foo" ], "timestamp": 1484776854610 }
realtime-update
Эти операции обновления в реальном времени перезаписывают определенные данные, а не выполняют более общие операции записи, описанные в разделе realtime-write.
{ "allowed": true, "bytes": 5, "millis": 2, "name": "realtime-update", "path": [ "foo" ], "timestamp": 1484776538769 }
listener-listen
Эти операции отражают исходный запрос данных в определенном местоположении от клиента. Например, методы on() или once() для веб-клиентов.
{ "allowed": true, "bytes": 0, "millis": 26, "name": "listener-listen", "path": [ "foo" ], "querySet": [], "timestamp": 1484776335024, "unIndexed": false }
listener-broadcast
Эта операция охватывает данные, отправляемые с сервера всем клиентам, которые прослушивают определенное местоположение после каждой операции записи и обновления. Изменение данных приводит к операции трансляции. Однако если нет клиентов, которые прослушивают обновления, вы можете увидеть 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 }
listener-unlisten
Эти операции отражают клиентов, которые отключаются или перестают слушать с помощью методов detach (например, off() для сайта или removeAllObservers для iOS).
{ "name": "listener-unlisten", "path": [ "foo" ], "timestamp": 1484776335044 }
rest-read
GET через REST API.
{ "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-write
PUT и POST через REST API.
Запросы DELETE отражают операции rest-write размером 0 байт.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-write", "path": [], "timestamp": 1484775917216 }
rest-transaction
Для действий, похожих на транзакции, используйте условные запросы.
Операция rest-transaction принимает запросы с заголовками Etag или if-match.
{ "allowed": true, "bytes": 13, "millis": 116, "name": "rest-transaction", "path": [], "timestamp": 1484775917216 }
rest-update
Обновления через REST API отражают PATCH запросов.
{ "allowed": true, "bytes": 5, "millis": 11, "name": "rest-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-put
Эти операции отражают добавление onDisconnect слушателей для операций записи. Например, когда вы используете onDisconnect().setValue().
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-put", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-update
Эти операции отражают добавление слушателей onDisconnect в операции обновления. Например, когда вы используете onDisconnect().updateChildren().
{ "allowed": true, "bytes": 4, "millis": 2, "name": "on-disconnect-update", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
on-disconnect-cancel
Эти операции отражают удаление прослушивателей onDisconnect.
Например, когда вы используете onDisconnect().set().cancel().
{ "millis": 2, "name": "on-disconnect-cancel", "path": [ "baz", "mar" ], "timestamp": 1484775969930 }
run-on-disconnect
Эти операции отражают запуск прослушивателей onDisconnect.
Когда клиент в реальном времени отключается после добавления хотя бы одного прослушивателя onDisconnect, профилировщик записывает одну операцию run-on-disconnect, чтобы отразить агрегированные байты и время всех активированных прослушивателей onDisconnect.
{ "bytes": 4, "millis": 2, "name": "run-on-disconnect", "timestamp": 1484775969930 }