dynamodb-time-series-manager
Version:
Managing Time Series Statistics with TimeSeriesStatisticsManager and AWS DynamoDB
38 lines (37 loc) • 1.22 kB
TypeScript
import { DynamoDBDocument } from "@aws-sdk/lib-dynamodb";
interface Statistic {
topic: string;
period: string;
count: number;
time_partition: number;
}
interface TimePartition {
name: string;
format: string;
interval: number;
}
interface TimeSeriesStatisticsManagerOptions {
table?: string;
client?: DynamoDBDocument;
timePartitions?: TimePartition[];
}
export declare class TimeSeriesStatisticsManager {
private client;
private table;
private state;
private onReadyPromises;
private timePartitions;
constructor(options: TimeSeriesStatisticsManagerOptions);
onReady(): Promise<void>;
private resolveReadyPromises;
private rejectReadyPromises;
waitUntilTableExists(timeout?: number): Promise<void>;
createTableIfNotExists(): Promise<void>;
private createTopicPeriod;
private getTimePartition;
private getTimePartitionValue;
addStatistic(topic: string, timestamp: number, amount?: number): Promise<void>;
getStatisticsPeriod(topic: string, period: string, startTime: number, endTime: number): Promise<Statistic[]>;
getStatistics(topic: string, startTime: number, endTime: number): Promise<Statistic[]>;
}
export {};