JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 60
  • Score
    100M100P100Q94966F

Redis based RPC tracking counters

Package Exports

  • redis-tracker
  • redis-tracker/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (redis-tracker) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

redis-tracker

Install

npm:

npm install redis-tracker

yarn:

yarn add redis-tracker

API

Exports:

  • statis
  • trackAction
  • searchKeys
  • statRedis

Call statis.redis.standalone(...), statis.redis.cluster(...), or statis.redis.object(...) once. After that use trackAction, searchKeys, and statRedis anywhere.

Connection

Standalone:

import { statis } from "redis-tracker";

statis.redis.standalone({
  host: "127.0.0.1",
  port: 6379,
});

Secure standalone:

import { statis } from "redis-tracker";

statis.redis.standalone({
  host: "127.0.0.1",
  port: 6379,
  username: "default",
  password: "secret",
});

Cluster:

import { statis } from "redis-tracker";

statis.redis.cluster({
  nodes: [
    { host: "127.0.0.1", port: 7000 },
    { host: "127.0.0.1", port: 7001 },
    { host: "127.0.0.1", port: 7002 },
  ],
});

Secure cluster:

import { statis } from "redis-tracker";

statis.redis.cluster({
  nodes: [
    { host: "127.0.0.1", port: 7000 },
    { host: "127.0.0.1", port: 7001 },
    { host: "127.0.0.1", port: 7002 },
  ],
  username: "default",
  password: "secret",
});

Existing standalone object:

import Redis from "ioredis";
import { statis } from "redis-tracker";

const redis = new Redis({
  host: "127.0.0.1",
  port: 6379,
});

statis.redis.object(redis, "standalone");

Existing cluster object:

import Redis from "ioredis";
import { statis } from "redis-tracker";

const redis = new Redis.Cluster([
  { host: "127.0.0.1", port: 7000 },
  { host: "127.0.0.1", port: 7001 },
  { host: "127.0.0.1", port: 7002 },
]);

statis.redis.object(redis, "cluster");

Usage

Track:

import { trackAction } from "redis-tracker";

trackAction({
  server: "qa",
  module_name: "swap-tx-rpc",
});

Details:

import { searchKeys, statRedis } from "redis-tracker";

async function getTrackedDetails() {
  const keys = await searchKeys("qa:swap-tx-rpc:*");

  return Promise.all(
    keys.map(async (key) => ({
      key,
      value: Number((await statRedis.get(key)) || 0),
    })),
  );
}

Redis Key Pattern

Module-specific:

{server}:{module_name}:{type}:{bucket_id}

Example:

qa:swap-tx-rpc:sec:2026-04-15-10-30-45
qa:swap-tx-rpc:min:2026-04-15-10-30
qa:swap-tx-rpc:hour:2026-04-15-10
qa:swap-tx-rpc:day:2026-04-15
qa:swap-tx-rpc:month:2026-04
qa:swap-tx-rpc:year:2026

Global:

{server}:global:{type}:{bucket_id}

Example:

qa:global:sec:2026-04-15-10-30-45
qa:global:min:2026-04-15-10-30
qa:global:hour:2026-04-15-10
qa:global:day:2026-04-15
qa:global:month:2026-04
qa:global:year:2026

Supported type values:

sec
min
hour
day
month
year

Demo

Build Package

npm run build

Local Testing

npm link

In microservice:

npm link redis-tracker