Skip to content

Commit dbb4d6a

Browse files
MetricsServiceFactory extension
1 parent 92c4a26 commit dbb4d6a

File tree

6 files changed

+17
-10
lines changed

6 files changed

+17
-10
lines changed

Shared.slnx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<Solution>
22
<Folder Name="/.solution_items/">
33
<File Path="Directory.Build.props" />
4-
<File Path="README.md" />
54
</Folder>
65
<Folder Name="/.solution_items/.nuget/">
76
<File Path=".nuget/delist.ps1" />

TaskHub.Observability.Metrics.Abstractions/IMetricsServiceFactory.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22

33
public interface IMetricsServiceFactory
44
{
5+
IMetricsService Create(string name);
56
IMetricsService Create(MetricsOptions options);
67
}

TaskHub.Observability.Metrics/MetricsService.cs renamed to TaskHub.Observability.Metrics.Implementation/MetricsService.cs

File renamed without changes.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Microsoft.Extensions.Options;
2+
using System.Collections.Concurrent;
3+
using System.Diagnostics.Metrics;
4+
using TaskHub.Observability.Metrics.Abstractions;
5+
6+
namespace TaskHub.Observability.Metrics.Implementation;
7+
8+
public sealed class MetricsServiceFactory(IMeterFactory meterFactory, IOptionsMonitor<MetricsOptions> options) : IMetricsServiceFactory
9+
{
10+
private readonly ConcurrentDictionary<string, IMetricsService> cache = new();
11+
public IMetricsService Create(MetricsOptions options) => new MetricsService(meterFactory, options);
12+
public IMetricsService Create(string name) => cache.GetOrAdd(name, i => new MetricsService(meterFactory, options.Get(i)));
13+
}

TaskHub.Observability.Metrics/TaskHub.Observability.Metrics.Implementation.csproj renamed to TaskHub.Observability.Metrics.Implementation/TaskHub.Observability.Metrics.Implementation.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
<ItemGroup>
3+
<PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0" />
4+
</ItemGroup>
25
<ItemGroup>
36
<ProjectReference Include="..\TaskHub.Observability.Metrics.Abstractions\TaskHub.Observability.Metrics.Abstractions.csproj" />
47
</ItemGroup>

TaskHub.Observability.Metrics/MetricsServiceFactory.cs

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)