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 const string CounterTotalBytes = "TotalBytes";
public const string CounterTotalCosts = "TotalCosts";
public const string CounterTotalCalls = "TotalCalls";
public const string CounterTotalElapsedMs = "TotalElapsedMs";
private readonly IUsageTracker usageTracker;
@ -30,17 +29,16 @@ namespace Squidex.Infrastructure.UsageTracking
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 counters = new Counters
{
[CounterTotalCosts] = costs,
[CounterTotalCalls] = 1,
[CounterTotalCalls] = weight,
[CounterTotalElapsedMs] = elapsedMs,
[CounterTotalBytes] = bytes
};

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

@ -13,7 +13,7 @@ namespace Squidex.Infrastructure.UsageTracking
{
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);

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 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())
{
var clientManager = new SquidexClientManager("https://cloud.squidex.io",
options.Value.AppName,
options.Value.ClientId,
options.Value.ClientSecret);
var squidexOptions = new SquidexOptions
{
AppName = options.Value.AppName,
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
{
[ApiUsageTracker.CounterTotalBytes] = 1024,
[ApiUsageTracker.CounterTotalCalls] = 1,
[ApiUsageTracker.CounterTotalElapsedMs] = 120,
[ApiUsageTracker.CounterTotalCosts] = 4
[ApiUsageTracker.CounterTotalCalls] = 4,
[ApiUsageTracker.CounterTotalElapsedMs] = 120
});
}
@ -53,7 +52,7 @@ namespace Squidex.Infrastructure.UsageTracking
{
var counters = new Counters
{
[ApiUsageTracker.CounterTotalCosts] = 4
[ApiUsageTracker.CounterTotalCalls] = 4
};
A.CallTo(() => usageTracker.GetForMonthAsync($"{key}_API", date))

Loading…
Cancel
Save