Skip to content

Commit ff10180

Browse files
committed
more interesting metrics!
1 parent ee8f875 commit ff10180

File tree

6 files changed

+51
-2
lines changed

6 files changed

+51
-2
lines changed

src/web/Jordnaer/Components/Account/IdentityComponentsEndpointRouteBuilderExtensions.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Microsoft.Extensions.Primitives;
1010
using System.Security.Claims;
1111
using System.Text.Json;
12+
using Jordnaer.Features.Metrics;
1213

1314
namespace Jordnaer.Components.Account;
1415

@@ -46,6 +47,9 @@ public static IEndpointConventionBuilder MapAdditionalIdentityEndpoints(this IEn
4647
[FromForm] string returnUrl) =>
4748
{
4849
await signInManager.SignOutAsync();
50+
51+
JordnaerMetrics.LogoutCounter.Add(1);
52+
4953
return TypedResults.LocalRedirect(string.IsNullOrEmpty(returnUrl)
5054
? "~/"
5155
: returnUrl);

src/web/Jordnaer/Features/Ad/SponsorAd.razor

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,9 @@
3535

3636
[Parameter]
3737
public bool Fluid { get; set; } = true;
38+
39+
protected override void OnInitialized()
40+
{
41+
JordnaerMetrics.SponsorAdViewCounter.Add(1, new KeyValuePair<string, object?>("link", Link));
42+
}
3843
}

src/web/Jordnaer/Features/GroupSearch/GroupSearchService.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Jordnaer.Database;
2+
using Jordnaer.Features.Metrics;
23
using Jordnaer.Features.Search;
34
using Jordnaer.Shared;
45
using Microsoft.EntityFrameworkCore;
@@ -15,10 +16,11 @@ public class GroupSearchService(
1516
IZipCodeService zipCodeService)
1617
: IGroupSearchService
1718
{
18-
1919
public async Task<GroupSearchResult> GetGroupsAsync(GroupSearchFilter filter,
2020
CancellationToken cancellationToken = default)
2121
{
22+
JordnaerMetrics.GroupSearchesCounter.Add(1, MakeTagList(filter));
23+
2224
var groups = context.Groups
2325
.AsNoTracking()
2426
.AsQueryable()
@@ -83,4 +85,14 @@ public async Task<GroupSearchResult> GetGroupsAsync(GroupSearchFilter filter,
8385

8486
return (groups, true);
8587
}
88+
89+
private static ReadOnlySpan<KeyValuePair<string, object?>> MakeTagList(GroupSearchFilter filter)
90+
{
91+
return new KeyValuePair<string, object?>[]
92+
{
93+
new(nameof(filter.Location), filter.Location),
94+
new(nameof(filter.Categories), string.Join(',', filter.Categories ?? [])),
95+
new(nameof(filter.WithinRadiusKilometers), filter.WithinRadiusKilometers)
96+
};
97+
}
8698
}

src/web/Jordnaer/Features/Groups/GroupService.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Serilog;
88
using System.Linq.Expressions;
99
using Jordnaer.Features.Authentication;
10+
using Jordnaer.Features.Metrics;
1011
using NotFound = OneOf.Types.NotFound;
1112

1213
namespace Jordnaer.Features.Groups;
@@ -280,6 +281,8 @@ not MembershipStatus.Rejected
280281

281282
public async Task<OneOf<Success, Error<string>>> CreateGroupAsync(Group group, CancellationToken cancellationToken = default)
282283
{
284+
JordnaerMetrics.GroupsCreatedCounter.Add(1);
285+
283286
logger.LogFunctionBegan();
284287

285288
if (currentUser.Id is null)

src/web/Jordnaer/Features/Metrics/JordnaerMetrics.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ internal static class JordnaerMetrics
2020
Meter.CreateCounter<int>("jordnaer_chat_chat_started_received_total");
2121

2222
internal static readonly Counter<int> EmailsSentCounter =
23-
Meter.CreateCounter<int>("jordnaer_emails_sent_total");
23+
Meter.CreateCounter<int>("jordnaer_email_emails_sent_total");
2424

2525
internal static readonly Counter<int> LoginCounter =
2626
Meter.CreateCounter<int>("jordnaer_auth_login_total");
@@ -30,4 +30,16 @@ internal static class JordnaerMetrics
3030
Meter.CreateCounter<int>("jordnaer_auth_first_login_total");
3131
internal static readonly Counter<int> LogoutCounter =
3232
Meter.CreateCounter<int>("jordnaer_auth_logout_total");
33+
34+
internal static readonly Counter<int> GroupsCreatedCounter =
35+
Meter.CreateCounter<int>("jordnaer_group_groups_created_total");
36+
37+
internal static readonly Counter<int> GroupSearchesCounter =
38+
Meter.CreateCounter<int>("jordnaer_group_group_searches_total");
39+
40+
internal static readonly Counter<int> UserSearchesCounter =
41+
Meter.CreateCounter<int>("jordnaer_user_user_searches_total");
42+
43+
internal static readonly Counter<int> SponsorAdViewCounter =
44+
Meter.CreateCounter<int>("jordnaer_ad_sponsor_views_total");
3345
}

src/web/Jordnaer/Features/UserSearch/UserSearchService.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Jordnaer.Database;
2+
using Jordnaer.Features.Metrics;
23
using Jordnaer.Features.Search;
34
using Jordnaer.Shared;
45
using Microsoft.EntityFrameworkCore;
@@ -40,6 +41,8 @@ public async Task<List<UserSlim>> GetUsersByNameAsync(string currentUserId, stri
4041

4142
public async Task<UserSearchResult> GetUsersAsync(UserSearchFilter filter, CancellationToken cancellationToken = default)
4243
{
44+
JordnaerMetrics.UserSearchesCounter.Add(1, MakeTagList(filter));
45+
4346
var users = context.UserProfiles
4447
.Where(user => !string.IsNullOrEmpty(user.UserName))
4548
.AsQueryable();
@@ -170,4 +173,14 @@ private static IQueryable<UserProfile> ApplyChildFilters(UserSearchFilter filter
170173

171174
return users;
172175
}
176+
177+
private static ReadOnlySpan<KeyValuePair<string, object?>> MakeTagList(UserSearchFilter filter)
178+
{
179+
return new KeyValuePair<string, object?>[]
180+
{
181+
new(nameof(filter.Location), filter.Location),
182+
new(nameof(filter.Categories), string.Join(',', filter.Categories ?? [])),
183+
new(nameof(filter.WithinRadiusKilometers), filter.WithinRadiusKilometers)
184+
};
185+
}
173186
}

0 commit comments

Comments
 (0)