Типы операций в Firebase Realtime Database

Команда профилировщика 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
}