From ec1942af8f2b2486252135275fdaff4f19523ec4 Mon Sep 17 00:00:00 2001 From: Simon Larsen Date: Mon, 25 Dec 2023 19:51:36 +0000 Subject: [PATCH] Refactor billing unit names and remove debugger statements --- CommonServer/API/BaseAnalyticsAPI.ts | 1 - CommonServer/Services/BillingService.ts | 6 +++--- CommonServer/Services/UsageBillingService.ts | 1 + .../Types/Billing/MeteredPlan/ServerMeteredPlan.ts | 7 +++++-- CommonServer/Utils/AnalyticsDatabase/Statement.ts | 2 -- Ingestor/API/OTelIngest.ts | 1 - Model/Models/UsageBilling.ts | 4 ++-- Workers/Jobs/MeteredPlan/ReportTelemetryMeteredPlan.ts | 5 ++++- 8 files changed, 15 insertions(+), 12 deletions(-) diff --git a/CommonServer/API/BaseAnalyticsAPI.ts b/CommonServer/API/BaseAnalyticsAPI.ts index 8db076d49c..67b52df756 100644 --- a/CommonServer/API/BaseAnalyticsAPI.ts +++ b/CommonServer/API/BaseAnalyticsAPI.ts @@ -85,7 +85,6 @@ export default class BaseAnalyticsAPI< next: NextFunction ) => { try { - debugger; await this.getList(req, res); } catch (err) { next(err); diff --git a/CommonServer/Services/BillingService.ts b/CommonServer/Services/BillingService.ts index c3e2746ba9..c4c5f5f965 100644 --- a/CommonServer/Services/BillingService.ts +++ b/CommonServer/Services/BillingService.ts @@ -892,7 +892,7 @@ export class BillingService extends BaseService { priceId: this.getMeteredPlanPriceId(data.productType), pricePerUnitInUSD: 0.1 * dataRetentionDays * dataRetentionMultiplier, - unitName: `per GB for ${dataRetentionDays} days data retention.`, + unitName: `GB (${dataRetentionDays} days data retention)`, }); } @@ -901,7 +901,7 @@ export class BillingService extends BaseService { priceId: this.getMeteredPlanPriceId(data.productType), pricePerUnitInUSD: 0.1 * dataRetentionDays * dataRetentionMultiplier, - unitName: `per GB for ${dataRetentionDays} days data retention.`, + unitName: `GB (${dataRetentionDays} days data retention)`, }); } @@ -910,7 +910,7 @@ export class BillingService extends BaseService { priceId: this.getMeteredPlanPriceId(data.productType), pricePerUnitInUSD: 0.1 * dataRetentionDays * dataRetentionMultiplier, - unitName: `per GB for ${dataRetentionDays} days data retention.`, + unitName: `GB (${dataRetentionDays} days data retention)`, }); } diff --git a/CommonServer/Services/UsageBillingService.ts b/CommonServer/Services/UsageBillingService.ts index b031b86175..943b54ca5c 100644 --- a/CommonServer/Services/UsageBillingService.ts +++ b/CommonServer/Services/UsageBillingService.ts @@ -49,6 +49,7 @@ export class Service extends DatabaseService { productType: ProductType; usageCount: number; }): Promise { + const serverMeteredPlan: ServerMeteredPlan = MeteredPlanUtil.getServerMeteredPlanByProductType(data.productType); diff --git a/CommonServer/Types/Billing/MeteredPlan/ServerMeteredPlan.ts b/CommonServer/Types/Billing/MeteredPlan/ServerMeteredPlan.ts index 8903d138c0..cbed896d61 100644 --- a/CommonServer/Types/Billing/MeteredPlan/ServerMeteredPlan.ts +++ b/CommonServer/Types/Billing/MeteredPlan/ServerMeteredPlan.ts @@ -24,8 +24,11 @@ export default class ServerMeteredPlan { return meteredPlan.getPricePerUnit() * quantity; } - public async getMeteredPlan(_projectId: ObjectID): Promise { - throw new NotImplementedException(); + public async getMeteredPlan(projectId: ObjectID): Promise { + return await BillingService.getMeteredPlan({ + projectId: projectId, + productType: this.getProductType(), + }); } public async reportQuantityToBillingProvider( diff --git a/CommonServer/Utils/AnalyticsDatabase/Statement.ts b/CommonServer/Utils/AnalyticsDatabase/Statement.ts index 693d9c0ed9..c337c460d3 100644 --- a/CommonServer/Utils/AnalyticsDatabase/Statement.ts +++ b/CommonServer/Utils/AnalyticsDatabase/Statement.ts @@ -48,8 +48,6 @@ export class Statement implements BaseQueryParams { public get query_params(): Record { - debugger; - return Object.fromEntries( this.values.map((v: StatementParameter | string, i: integer) => { let finalValue: any = v; diff --git a/Ingestor/API/OTelIngest.ts b/Ingestor/API/OTelIngest.ts index df724e0098..22c95c727c 100644 --- a/Ingestor/API/OTelIngest.ts +++ b/Ingestor/API/OTelIngest.ts @@ -153,7 +153,6 @@ router.use( ); // report to Usage Service. - UsageBillingService.updateUsageBilling({ projectId: (req as OtelRequest).projectId, productType: productType, diff --git a/Model/Models/UsageBilling.ts b/Model/Models/UsageBilling.ts index c450861a16..56fcc5a270 100644 --- a/Model/Models/UsageBilling.ts +++ b/Model/Models/UsageBilling.ts @@ -169,7 +169,7 @@ export default class UsageBilling extends AccessControlModel { }) @Column({ nullable: false, - type: ColumnType.Number, + type: ColumnType.Decimal, }) public usageCount?: number = undefined; @@ -215,7 +215,7 @@ export default class UsageBilling extends AccessControlModel { }) @Column({ nullable: false, - type: ColumnType.Number, + type: ColumnType.Decimal, }) public totalCostInUSD?: number = undefined; diff --git a/Workers/Jobs/MeteredPlan/ReportTelemetryMeteredPlan.ts b/Workers/Jobs/MeteredPlan/ReportTelemetryMeteredPlan.ts index 5bb77127cb..6fd9489a46 100644 --- a/Workers/Jobs/MeteredPlan/ReportTelemetryMeteredPlan.ts +++ b/Workers/Jobs/MeteredPlan/ReportTelemetryMeteredPlan.ts @@ -17,8 +17,11 @@ import Sleep from 'Common/Types/Sleep'; RunCron( 'MeteredPlan:ReportTelemetryMeteredPlan', - { schedule: IsDevelopment ? EVERY_MINUTE : EVERY_DAY, runOnStartup: false }, + { schedule: IsDevelopment ? EVERY_MINUTE : EVERY_DAY, runOnStartup: true }, async () => { + + debugger; + if (!IsBillingEnabled) { logger.info( 'MeteredPlan:ReportTelemetryMeteredPlan Billing is not enabled. Skipping job.'