Types d'opérations Firebase Realtime Database

Commande du profileur Firebase Realtime Database

Pour générer un rapport sur l'utilisation de la vitesse et de la bande passante pour les opérations de votre instance Realtime Database, utilisez la commande suivante:

firebase database:profile
Options d'indicateur Description
-h, --help Générez des informations sur l'utilisation.
-o, --output FILENAME Enregistrez le résultat dans le fichier spécifié.
-i, --input FILENAME Générez le rapport en fonction du fichier spécifié au lieu de diffuser les journaux à partir du serveur.
-d, --duration SECONDS Collectez les informations sur l'utilisation de la base de données pendant le nombre de secondes spécifié.
--raw Générez les statistiques brutes collectées au format JSON délimité par un retour à la ligne.

Types d'opération

connexion simultanée

Cette opération reflète les connexions en temps réel à la base de données (par exemple, lorsqu'un nouveau client se connecte via un SDK). Les connexions RESTful ne sont pas reflétées dans les opérations de connexion simultanée.

{
    "name": "concurrent-connect",
    "timestamp": 1484776334900
}

déconnexion simultanée

Les déconnexions simultanées reflètent une connexion qui s'est déconnectée de la base de données (par exemple, lorsqu'un client se déconnecte ou se connecte.

{
    "name": "concurrent-disconnect",
    "timestamp": 1484776341844
}

realtime-write

Requêtes d'écriture provenant de connexions en temps réel Par exemple, les opérations set() et push() pour les clients Web. Les requêtes de suppression sont également comptabilisées comme des opérations realtime-write et reflètent les écritures de 0 octet.

{
    "allowed": true, // If security rules allow the operation
    "bytes": 1,
    "millis": 2,
    "name": "realtime-write",
    "path": [
        "foo"
    ],
    "timestamp": 1484776538763
}

realtime-transaction

Ce type d'opération inclut les transactions effectuées via des connexions en temps réel. Les transactions répétées peuvent être le résultat d'échecs et de nouvelles tentatives.

{
    "allowed": true,
    "bytes": 20,
    "millis": 2,
    "name": "realtime-transaction",
    "path": [
        "foo"
    ],
    "timestamp": 1484776854610
}

mise à jour en temps réel

Ces opérations de mise à jour en temps réel reflètent la surcharge de données spécifiques, et non les opérations d'écriture plus générales dans realtime-write.

{
    "allowed": true,
    "bytes": 5,
    "millis": 2,
    "name": "realtime-update",
    "path": [
        "foo"
    ],
    "timestamp": 1484776538769
}

listener-listen

Ces opérations reflètent la demande initiale de données d'un client à un emplacement spécifique. Par exemple, les méthodes on() ou once() pour les clients Web.

{
    "allowed": true,
    "bytes": 0,
    "millis": 26,
    "name": "listener-listen",
    "path": [
        "foo"
    ],
    "querySet": [],
    "timestamp": 1484776335024,
    "unIndexed": false
}

diffusion-auditeur

Cette opération couvre les données envoyées par le serveur à tous les clients qui écoutent à un emplacement donné après chaque opération d'écriture et de mise à jour. La modification des données entraîne une opération de diffusion. Toutefois, vous pouvez voir 0 mise à jour si aucun client ne vous écoute.

{
    "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

Ces opérations reflètent les clients d'écoute qui se terminent ou arrêtent l'écoute via les méthodes de dissociation (par exemple, off() pour le Web ou removeAllObservers pour iOS).

{
    "name": "listener-unlisten",
    "path": [
        "foo"
    ],
    "timestamp": 1484776335044
}

reste lu

Requêtes GET via l'API REST

{
    "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
}

écriture-reste

Requêtes PUT et POST via l'API REST. Les requêtes DELETE reflètent les opérations rest-write de 0 octet.

{
    "allowed": true,
    "bytes": 13,
    "millis": 116,
    "name": "rest-write",
    "path": [],
    "timestamp": 1484775917216
}

transaction au repos

Pour un comportement de type transaction, utilisez des requêtes conditionnelles. L'opération rest-transaction capture les requêtes à l'aide des en-têtes Etag ou if-match.

{
    "allowed": true,
    "bytes": 13,
    "millis": 116,
    "name": "rest-transaction",
    "path": [],
    "timestamp": 1484775917216
}

mise à jour REST

Les mises à jour effectuées via l'API REST reflètent les requêtes PATCH.

{
    "allowed": true,
    "bytes": 5,
    "millis": 11,
    "name": "rest-update",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

on-disconnect-put

Ces opérations reflètent l'ajout d'écouteurs onDisconnect pour les opérations d'écriture. Par exemple, lorsque vous utilisez onDisconnect().setValue().

{
    "allowed": true,
    "bytes": 4,
    "millis": 2,
    "name": "on-disconnect-put",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

on-disconnect-update

Ces opérations reflètent l'ajout d'écouteurs onDisconnect pour mettre à jour les opérations. Par exemple, lorsque vous utilisez onDisconnect().updateChildren().

{
    "allowed": true,
    "bytes": 4,
    "millis": 2,
    "name": "on-disconnect-update",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

Annulation de la déconnexion

Ces opérations reflètent la suppression des écouteurs onDéconnecter. Par exemple, lorsque vous utilisez onDisconnect().set().cancel().

{
    "millis": 2,
    "name": "on-disconnect-cancel",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

run-on-disconnect

Ces opérations reflètent le déclenchement des écouteurs onDisconnect. Lorsqu'un client en temps réel se déconnecte après avoir ajouté au moins un écouteur onDisconnect, le profileur enregistre une seule opération run-on-disconnect pour refléter les octets et l'heure agrégés de tous les écouteurs onDisconnect déclenchés.

{
    "bytes": 4,
    "millis": 2,
    "name": "run-on-disconnect",
    "timestamp": 1484775969930
}