Команда профилировщика Firebase Realtime Database
Чтобы создать отчет о скорости и использовании пропускной способности для операций в вашем экземпляре Realtime Database , используйте следующую команду:
firebase database:profile
Параметры флага | Описание |
---|---|
-h, --help | Вывод информации об использовании. |
-o, --output FILENAME | Сохраните вывод в указанный файл. |
-i, --input FILENAME | Сгенерируйте отчет на основе указанного файла, а не потоковых журналов с сервера. |
-d, --duration SECONDS | Собирать информацию об использовании базы данных в течение указанного количества секунд. |
--raw | Выведите необработанную статистику, собранную в виде JSON с разделителями-новой строкой. |
Типы операций
одновременное подключение
Эта операция отражает подключения к базе данных в реальном времени (например, когда новый клиент подключается через SDK). Соединения RESTful не отражаются в операциях одновременного подключения.
{
"name": "concurrent-connect",
"timestamp": 1484776334900
}
одновременное отключение
Параллельное отключение отражает соединение, которое отключилось от базы данных (например, когда клиент отключается или выходит из системы).
{
"name": "concurrent-disconnect",
"timestamp": 1484776341844
}
запись в реальном времени
Запись запросов от соединений реального времени. Например, операции set()
и push()
для веб-клиентов. Запросы на удаление также считаются операциями realtime-write
и отражают запись нулевых байтов.
{
"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()
для Интернета или removeAllObservers
для iOS).
{
"name": "listener-unlisten",
"path": [
"foo"
],
"timestamp": 1484776335044
}
отдохнуть-прочитать
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
}
отдыхай-пиши
Запросы PUT
и POST
через REST API. Запросы DELETE
отражают операции 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. Например, когда вы используете onDisconnect().set().cancel()
.
{
"millis": 2,
"name": "on-disconnect-cancel",
"path": [
"baz",
"mar"
],
"timestamp": 1484775969930
}
работа при отключении
Эти операции отражают запуск прослушивателей onDisconnect
. Когда клиент реального времени отключается после добавления хотя бы одного прослушивателя onDisconnect
, профилировщик записывает одну операцию run-on-disconnect
чтобы отразить совокупные байты и время всех запущенных прослушивателей onDisconnect
.
{
"bytes": 4,
"millis": 2,
"name": "run-on-disconnect",
"timestamp": 1484775969930
}