Contents

testingGetPerformanceStatsread-only#

Get a list of performance stats for diagnostics. Requires observability events to be enabled; performance tables for the current running wallet instance are generated from observability events and stored in memory. Under each table, different types of duration for each operation (e.g. a getBalances wallet request) are included.

Request:

The request must be a GetPerformanceStatsRequest object.

Response:

On success, the result is a GetPerformanceStatsResponse object.

interface GetPerformanceStatsRequest {
  // Limit to N largest average performance stats of each table.
  // When undefined, all performance stats will be returned.
  limit?: number;
}
interface GetPerformanceStatsResponse {
  stats: PerformanceTable;
}
type PerformanceTable = {
  [key in PerformanceStatType]?: PerformanceStat[];
};
type PerformanceStatType =
  | "http-fetch"
  | "db-query"
  | "crypto"
  | "wallet-request"
  | "wallet-task";
type PerformanceStat =
  | {
      type: "http-fetch";
      url: string;
      avgDurationMs: number;
      maxDurationMs: number;
      minDurationMs: number;
      totalDurationMs: number;
      count: number;
    }
  | {
      type: "db-query";
      name: string;
      location: string;
      avgDurationMs: number;
      maxDurationMs: number;
      minDurationMs: number;
      totalDurationMs: number;
      count: number;
    }
  | {
      type: "crypto";
      operation: string;
      avgDurationMs: number;
      maxDurationMs: number;
      minDurationMs: number;
      totalDurationMs: number;
      count: number;
    }
  | {
      type: "wallet-request";
      operation: string;
      avgDurationMs: number;
      maxDurationMs: number;
      minDurationMs: number;
      totalDurationMs: number;
      count: number;
    }
  | {
      type: "wallet-task";
      taskId: string;
      avgDurationMs: number;
      maxDurationMs: number;
      minDurationMs: number;
      totalDurationMs: number;
      count: number;
    };