diff --git a/Frontend/BackgroundServices/PrometheusService.cs b/Frontend/BackgroundServices/PrometheusService.cs index e0f42573e6dd069d256aa402ea831713d1752c21..9b3bf54f4ca0202149b26ca95c37d802c6e3ab28 100644 --- a/Frontend/BackgroundServices/PrometheusService.cs +++ b/Frontend/BackgroundServices/PrometheusService.cs @@ -17,7 +17,8 @@ public class PrometheusService : BackgroundService ILogger<PrometheusService> logger, Erc20TokenMetrics tokenMetrics, EthMetrics ethMetrics, - PotatoStorageMetrics potatoStorageMetrics + PotatoStorageMetrics potatoStorageMetrics, + PotatoMarketplaceMetrics potatoMarketplaceMetrics ) { _logger = logger; @@ -33,6 +34,7 @@ public class PrometheusService : BackgroundService _erc20TokenMetrics.CreateMetrics(); _ethMetrics.CreateMetrics(); potatoStorageMetrics.CreateMetrics(); + potatoMarketplaceMetrics.CreateMetrics(); } protected async override Task ExecuteAsync(CancellationToken stoppingToken) diff --git a/Frontend/Metrics/PotatoMarketplaceMetrics.cs b/Frontend/Metrics/PotatoMarketplaceMetrics.cs new file mode 100644 index 0000000000000000000000000000000000000000..57f839e3f7035cad62b0bee55c972d5b233ef634 --- /dev/null +++ b/Frontend/Metrics/PotatoMarketplaceMetrics.cs @@ -0,0 +1,19 @@ +using System.Diagnostics.Metrics; +using Frontend.Marketplaces.Interfaces; + +namespace Frontend.Metrics; + +public class PotatoMarketplaceMetrics( + IPotatoMarketPlace marketplace, + IMeterFactory meterFactory +) +{ + private readonly IPotatoMarketPlace marketplace = marketplace; + private readonly IMeterFactory MeterFactory = meterFactory; + + public void CreateMetrics() + { + var meter = MeterFactory.Create("RoestiCoin"); + meter.CreateObservableGauge("Marketplace.Potato.Price", () => marketplace.PotatoPrice, unit: "CHF"); + } +} diff --git a/Frontend/Program.cs b/Frontend/Program.cs index 2bf5552c8fe819b89ce90d843f64cc40c875e541..1b91a6c296b9247bcfa7773987f841408699f235 100644 --- a/Frontend/Program.cs +++ b/Frontend/Program.cs @@ -30,6 +30,7 @@ builder.Services.AddHostedService<PrometheusService>(); builder.Services.AddSingleton<Erc20TokenMetrics>(); builder.Services.AddSingleton<EthMetrics>(); builder.Services.AddSingleton<PotatoStorageMetrics>(); +builder.Services.AddSingleton<PotatoMarketplaceMetrics>(); builder.Services.AddSingleton<IPotatoMarketPlace>(sp => new PotatoMarketplaceMock()); builder.Services.AddSingleton(provider => new TokenClient(