Browse Source

Unify costs and weight

pull/491/head
Sebastian 6 years ago
parent
commit
ecb4d783df
  1. 8
      backend/src/Squidex.Infrastructure/UsageTracking/ApiUsageTracker.cs
  2. 2
      backend/src/Squidex.Infrastructure/UsageTracking/IApiUsageTracker.cs
  3. 19
      backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs
  4. 7
      backend/tests/Squidex.Infrastructure.Tests/UsageTracking/ApiUsageTrackerTests.cs

8
backend/src/Squidex.Infrastructure/UsageTracking/ApiUsageTracker.cs

@ -14,7 +14,6 @@ namespace Squidex.Infrastructure.UsageTracking
public sealed class ApiUsageTracker : IApiUsageTracker public sealed class ApiUsageTracker : IApiUsageTracker
{ {
public const string CounterTotalBytes = "TotalBytes"; public const string CounterTotalBytes = "TotalBytes";
public const string CounterTotalCosts = "TotalCosts";
public const string CounterTotalCalls = "TotalCalls"; public const string CounterTotalCalls = "TotalCalls";
public const string CounterTotalElapsedMs = "TotalElapsedMs"; public const string CounterTotalElapsedMs = "TotalElapsedMs";
private readonly IUsageTracker usageTracker; private readonly IUsageTracker usageTracker;
@ -30,17 +29,16 @@ namespace Squidex.Infrastructure.UsageTracking
var counters = await usageTracker.GetForMonthAsync(apiKey, date); var counters = await usageTracker.GetForMonthAsync(apiKey, date);
return counters.GetInt64(CounterTotalCosts); return counters.GetInt64(CounterTotalCalls);
} }
public Task TrackAsync(DateTime date, string key, string? category, double costs, long elapsedMs, long bytes) public Task TrackAsync(DateTime date, string key, string? category, double weight, long elapsedMs, long bytes)
{ {
var apiKey = GetKey(key); var apiKey = GetKey(key);
var counters = new Counters var counters = new Counters
{ {
[CounterTotalCosts] = costs, [CounterTotalCalls] = weight,
[CounterTotalCalls] = 1,
[CounterTotalElapsedMs] = elapsedMs, [CounterTotalElapsedMs] = elapsedMs,
[CounterTotalBytes] = bytes [CounterTotalBytes] = bytes
}; };

2
backend/src/Squidex.Infrastructure/UsageTracking/IApiUsageTracker.cs

@ -13,7 +13,7 @@ namespace Squidex.Infrastructure.UsageTracking
{ {
public interface IApiUsageTracker public interface IApiUsageTracker
{ {
Task TrackAsync(DateTime date, string key, string? category, double costs, long elapsedMs, long bytes); Task TrackAsync(DateTime date, string key, string? category, double weight, long elapsedMs, long bytes);
Task<long> GetMonthCostsAsync(string key, DateTime date); Task<long> GetMonthCostsAsync(string key, DateTime date);

19
backend/src/Squidex/Areas/Api/Controllers/News/Service/FeaturesService.cs

@ -18,9 +18,9 @@ namespace Squidex.Areas.Api.Controllers.News.Service
{ {
private const int FeatureVersion = 8; private const int FeatureVersion = 8;
private readonly QueryContext flatten = QueryContext.Default.Flatten(); private readonly QueryContext flatten = QueryContext.Default.Flatten();
private readonly SquidexClient<NewsEntity, FeatureDto> client; private readonly IContentsClient<NewsEntity, FeatureDto> client;
public sealed class NewsEntity : SquidexEntityBase<FeatureDto> public sealed class NewsEntity : Content<FeatureDto>
{ {
} }
@ -28,12 +28,17 @@ namespace Squidex.Areas.Api.Controllers.News.Service
{ {
if (options.Value.IsConfigured()) if (options.Value.IsConfigured())
{ {
var clientManager = new SquidexClientManager("https://cloud.squidex.io", var squidexOptions = new SquidexOptions
options.Value.AppName, {
options.Value.ClientId, AppName = options.Value.AppName,
options.Value.ClientSecret); ClientId = options.Value.ClientId,
ClientSecret = options.Value.ClientSecret,
Url = "https://cloud.squidex.io"
};
var clientManager = new SquidexClientManager(squidexOptions);
client = clientManager.GetClient<NewsEntity, FeatureDto>("feature-news"); client = clientManager.CreateContentsClient<NewsEntity, FeatureDto>("feature-news");
} }
} }

7
backend/tests/Squidex.Infrastructure.Tests/UsageTracking/ApiUsageTrackerTests.cs

@ -42,9 +42,8 @@ namespace Squidex.Infrastructure.UsageTracking
measuredCounters.Should().BeEquivalentTo(new Counters measuredCounters.Should().BeEquivalentTo(new Counters
{ {
[ApiUsageTracker.CounterTotalBytes] = 1024, [ApiUsageTracker.CounterTotalBytes] = 1024,
[ApiUsageTracker.CounterTotalCalls] = 1, [ApiUsageTracker.CounterTotalCalls] = 4,
[ApiUsageTracker.CounterTotalElapsedMs] = 120, [ApiUsageTracker.CounterTotalElapsedMs] = 120
[ApiUsageTracker.CounterTotalCosts] = 4
}); });
} }
@ -53,7 +52,7 @@ namespace Squidex.Infrastructure.UsageTracking
{ {
var counters = new Counters var counters = new Counters
{ {
[ApiUsageTracker.CounterTotalCosts] = 4 [ApiUsageTracker.CounterTotalCalls] = 4
}; };
A.CallTo(() => usageTracker.GetForMonthAsync($"{key}_API", date)) A.CallTo(() => usageTracker.GetForMonthAsync($"{key}_API", date))

Loading…
Cancel
Save