55using Altinn . Studio . Gateway . Api . Clients . MetricsClient ;
66using Altinn . Studio . Gateway . Api . Settings ;
77using Altinn . Studio . Gateway . Contracts . Alerts ;
8+ using Microsoft . Extensions . Options ;
89
910namespace Altinn . Studio . Gateway . Api . Application ;
1011
1112internal static class HandleAlerts
1213{
13- internal static async Task < IResult > GetAlertRulesAsync (
14+ internal static async Task < IResult > GetAlertRules (
1415 IServiceProvider serviceProvider ,
15- AlertsClientSettings alertsClientSettings ,
16+ IOptionsMonitor < AlertsClientSettings > alertsClientSettings ,
1617 CancellationToken cancellationToken
1718 )
1819 {
19- IAlertsClient client = serviceProvider . GetRequiredKeyedService < IAlertsClient > ( alertsClientSettings . Provider ) ;
20+ IAlertsClient client = serviceProvider . GetRequiredKeyedService < IAlertsClient > (
21+ alertsClientSettings . CurrentValue . Provider
22+ ) ;
2023
21- IEnumerable < GrafanaAlertRule > alertRules = await client . GetAlertRulesAsync ( cancellationToken ) ;
24+ IEnumerable < GrafanaAlertRule > alertRules = await client . GetAlertRules ( cancellationToken ) ;
2225
2326 return Results . Ok (
2427 alertRules ? . Select ( alert =>
@@ -40,19 +43,20 @@ CancellationToken cancellationToken
4043 ) ;
4144 }
4245
43- internal static async Task < IResult > NotifyAlertsUpdatedAsync (
44- GatewayContext gatewayContext ,
46+ internal static async Task < IResult > NotifyAlertsUpdated (
47+ IOptionsMonitor < GatewayContext > gatewayContext ,
4548 IServiceProvider serviceProvider ,
46- MetricsClientSettings metricsClientSettings ,
49+ IOptionsMonitor < MetricsClientSettings > metricsClientSettings ,
4750 DesignerClient designerClient ,
4851 AlertPayload alertPayload ,
4952 CancellationToken cancellationToken ,
5053 string environment = "prod"
5154 )
5255 {
5356 IMetricsClient metricsClient = serviceProvider . GetRequiredKeyedService < IMetricsClient > (
54- metricsClientSettings . Provider
57+ metricsClientSettings . CurrentValue . Provider
5558 ) ;
59+ var currentGatewayContext = gatewayContext . CurrentValue ;
5660
5761 var firstAlert = alertPayload . Alerts . FirstOrDefault ( ) ;
5862 if ( firstAlert is null )
@@ -91,9 +95,9 @@ out var interval
9195 var apps = alerts . Select ( alertInstance => alertInstance . App ) . ToList ( ) ;
9296
9397 var logsUrl = metricsClient . GetLogsUrl (
94- gatewayContext . AzureSubscriptionId ,
95- gatewayContext . ServiceOwner ,
96- gatewayContext . Environment ,
98+ currentGatewayContext . AzureSubscriptionId ,
99+ currentGatewayContext . ServiceOwner ,
100+ currentGatewayContext . Environment ,
97101 apps ,
98102 ruleId ,
99103 from ,
@@ -110,7 +114,7 @@ out var interval
110114 LogsUrl = logsUrl ,
111115 } ;
112116
113- await designerClient . NotifyAlertsUpdatedAsync ( alert , environment , cancellationToken ) ;
117+ await designerClient . NotifyAlertsUpdated ( alert , environment , cancellationToken ) ;
114118
115119 return Results . Ok ( ) ;
116120 }
0 commit comments