New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

firestore-metrics

Package Overview
Dependencies
Maintainers
0
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firestore-metrics

A library which uses the Cloud Monitoring API v3 to view Firestore metrics.

  • 1.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

Firestore Metrics npm npm

This is a library which uses the Cloud Monitoring API v3 to view Firestore usage metrics.

Pre-requisites

  1. An account with permission to access the API.
    1. Viewer role should suffice.
  2. If you're using a service account, the project the service account belongs to must be billing enabled.
    1. This might be more of a bug as requests that use the bearer token obtained from a service account results in a 403 error when the project is not billing enabled.

How to use

  1. Create a service account.
    1. Follow steps here to create a service account.
    2. Select the Console tab.
    3. When selecting a role, under Quick access > Basic, pick Viewer.
  2. Download the service account keys.
    1. Follow the steps here to download the service account key.
  3. Pass the service-account key file path or service-account credentials to FirestoreMetrics

Method references

Usage metrics
  • getRequestCount() - Get Firestore API calls count
  • getReadCount() - Get Firestore read count metrics
  • getWriteCount() - Get Firestore write count metrics
  • getDeleteCount() - Get Firestore delete count metrics
  • getSnapshotListeners() - Get Firestore snapshot listeners count metrics
  • getActiveConnections() - Get Firestore active connections count metrics
  • getTTLDeletionCount() - Get Firestore documents deleted by TTL services count
  • getRulesEvaluationCount() - Get Firestore Security Rule evaluations count performed in response to write read requests
Misc.
  • getProjectId() - Gets the project ID and sets its value if it is still null
  • generateToken() - Generate an access token to be used to authenticate requests
  • setAccessToken() - Overwrites the access token used to authenticate requests

Get read metrics

import { FirestoreMetrics } from "firestore-metrics";

async function testApi() {
  const firestoreMetrics = new FirestoreMetrics({
    projectId: "PROJECT_ID",
    keyFile: "./service-account.json",
  });
  const readUsage = await firestoreMetrics.getReadCount(
    "2023-07-22T08:00:00Z",
    "2023-07-22T22:42:15Z"
  );

  console.log(JSON.stringify(readUsage, null, 4));
}

testApi();

Output would look like:

[
  {
    "type": "QUERY",
    "interval": {
      "startTime": "2023-08-21T16:15:00Z",
      "endTime": "2023-08-21T16:16:00Z"
    },
    "count": 26
  },
  {
    "type": "QUERY",
    "interval": {
      "startTime": "2023-08-21T16:14:00Z",
      "endTime": "2023-08-21T16:15:00Z"
    },
    "count": 15
  },
  {
    "type": "QUERY",
    "interval": {
      "startTime": "2023-08-21T15:51:00Z",
      "endTime": "2023-08-21T15:52:00Z"
    },
    "count": 11
  }
]

Get write metrics

import { FirestoreMetrics } from "firestore-metrics";

async function testApi() {
  const firestoreMetrics = new FirestoreMetrics({
    projectId: "PROJECT_ID",
    keyFile: "./service-account.json",
  });
  const writeUsage = await firestoreMetrics.getWriteCount(
    "2023-08-21T15:00:00Z",
    "2023-08-21T20:00:00Z"
  );

  console.log(JSON.stringify(writeUsage, null, 4));
}

testApi();

Output would look like:

[
  {
    "op": "CREATE",
    "interval": {
      "startTime": "2023-08-21T16:09:00Z",
      "endTime": "2023-08-21T16:10:00Z"
    },
    "count": 1
  },
  {
    "op": "UPDATE",
    "interval": {
      "startTime": "2023-08-21T16:15:00Z",
      "endTime": "2023-08-21T16:16:00Z"
    },
    "count": 1
  },
  {
    "op": "UPDATE",
    "interval": {
      "startTime": "2023-08-21T16:09:00Z",
      "endTime": "2023-08-21T16:10:00Z"
    },
    "count": 1
  }
]

Ways to authenticate request

Using a service-account file

Just provide the path to your service-account file

const firestoreMetrics = new FirestoreMetrics({
  projectId: "PROJECT_ID",
  keyFile: "./service-account.json",
});

Keywords

FAQs

Package last updated on 17 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc