Skip to content

Commit d2af540

Browse files
committed
Add billing target project ID to cost query service
1 parent e76ac4a commit d2af540

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

GCPCostNotifier/AppSetting.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ public class AppSetting
1111
[Required] public required string SlackWebhookUrl { get; init; }
1212

1313
public Character Character { get; init; } = Character.Mayuri;
14+
15+
public string? BillingTargetProjectId { get; init; }
1416
}

GCPCostNotifier/Services/CostQueryService.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace GCPCostNotifier.Services;
77
public class CostQueryService(
88
string projectId,
99
string targetTableName,
10+
string billingTargetProjectId,
1011
IDateTimeCalculationService dateTimeCalculationService,
1112
ILogger<CostQueryService> logger
1213
) : ICostQueryService
@@ -17,7 +18,8 @@ public async Task<IList<CostSummary>> GetYesterdayCostSummaryAsync(
1718
CancellationToken cancellationToken
1819
)
1920
{
20-
var calculatedDateTimes = dateTimeCalculationService.CalculateDateTimeOffsetsForYesterday(targetDateTimeOffset, targetTimeZoneInfo);
21+
var calculatedDateTimes =
22+
dateTimeCalculationService.CalculateDateTimeOffsetsForYesterday(targetDateTimeOffset, targetTimeZoneInfo);
2123

2224
var query =
2325
@$"
@@ -28,7 +30,8 @@ CancellationToken cancellationToken
2830
FROM `{targetTableName}`
2931
WHERE
3032
_PARTITIONTIME BETWEEN @partitionStartDateTime AND @partitionEndDateTime AND
31-
usage_start_time >= @startDateTime AND usage_end_time <= @endDateTime
33+
usage_start_time >= @startDateTime AND usage_end_time <= @endDateTime AND
34+
`project`.`id` = @billingTargetProjectId
3235
GROUP BY service.description, sku.description
3336
HAVING SummarizedCost > 0
3437
ORDER BY ServiceName, ServiceDescription";
@@ -64,6 +67,11 @@ HAVING SummarizedCost > 0
6467
"endDateTime",
6568
BigQueryDbType.Timestamp,
6669
calculatedDateTimes.EndOffsetDateTimeOffset
70+
),
71+
new BigQueryParameter(
72+
"billingTargetProjectId",
73+
BigQueryDbType.String,
74+
billingTargetProjectId
6775
)
6876
},
6977
cancellationToken: cancellationToken

GCPCostNotifier/Startup.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public override void ConfigureServices(WebHostBuilderContext context, IServiceCo
2323
return new CostQueryService(
2424
appSettings.ProjectId,
2525
appSettings.TargetTableName,
26+
appSettings.BillingTargetProjectId ?? appSettings.ProjectId,
2627
v.GetRequiredService<IDateTimeCalculationService>(),
2728
v.GetRequiredService<ILogger<CostQueryService>>()
2829
);

0 commit comments

Comments
 (0)