From f97f8d6cd19a9c600b4371f93ba65e7adb685cc9 Mon Sep 17 00:00:00 2001 From: Andri Joos <andri@joos.io> Date: Tue, 26 Nov 2024 10:55:30 +0100 Subject: [PATCH] add PotatoMarketplaceMetrics --- .../BackgroundServices/PrometheusService.cs | 4 +++- Frontend/Metrics/PotatoMarketplaceMetrics.cs | 19 +++++++++++++++++++ Frontend/Program.cs | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 Frontend/Metrics/PotatoMarketplaceMetrics.cs diff --git a/Frontend/BackgroundServices/PrometheusService.cs b/Frontend/BackgroundServices/PrometheusService.cs index e0f4257..9b3bf54 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 0000000..57f839e --- /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 2bf5552..1b91a6c 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( -- GitLab