Хочу добавить через сбор метрик (System.Diagnostics.Metrics) количество строк в таблице.
Для этого добавляю новый класс, который зарегистрирую в DI. Он принимает зависимость на сервис-репозиторий, в котором прописан нужный метод select top(1) from table.
Не понимаю как правильно написать, сервис репозитория обычный, там получаются свои зависимости и я не могу сделать метод получения количества записей статичным. А в метод CreateObservableGauge нужно передать статичную функцию, насколько я понимаю, объясните, пожалуйста, как сделать правильно
using System.Diagnostics.Metrics;
namespace MyProject.Outbox;
public class Metrics
{
private readonly IOutboxRepository _repository;
public static readonly Meter OutboxMeter = new("Outbox");
public Metrics(IOutboxRepository repository)
{
_repository = repository;
}
public ObservableGauge<int> OutboxCount =
OutboxMeter.CreateObservableGauge<int>("outbox-count", () =>
{
return GetLength; // Cannot access non-static property 'GetLength' in static context
});
private int GetLength => _repository.GetLength().GetAwaiter().GetResult();
}