| File: Latency\Internal\MockLatencyData.cs | |
| Project: ..\..\..\test\Libraries\Microsoft.AspNetCore.Diagnostics.Middleware.Tests\Microsoft.AspNetCore.Diagnostics.Middleware.Tests.csproj (Microsoft.AspNetCore.Diagnostics.Middleware.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Globalization; using System.Linq; using Microsoft.Extensions.Diagnostics.Latency; namespace Microsoft.AspNetCore.Diagnostics.Latency.Test.Internal; internal class MockLatencyData { private readonly ArraySegment<Checkpoint> _checkpoints = new(new[] { new Checkpoint("ca", 1, 1000), new Checkpoint("cb", 2, 1000), new Checkpoint("c/c", 3, 1000) }); private readonly ArraySegment<Measure> _measures = new(new[] { new Measure("m/a", 1), new Measure("mb", 2), new Measure("mc", 3), }); private readonly ArraySegment<Tag> _tags = new(new[] { new Tag("t/a", "t1"), new Tag("tb", "t/2"), new Tag("tc", "t3") }); public MockLatencyData() { const int MillisecondsPerSecond = 1000; LatencyData = new LatencyData(_tags, _checkpoints, _measures, 20, 1000); SerializedLatencyData = string.Format(CultureInfo.InvariantCulture, "{0}/,{1}/,{2}/,{3}/,{4}/,{5}/,{6}", string.Join("/", _tags.Select(a => a.Name.Replace('/', '_'))), string.Join("/", _tags.Select(a => a.Value.Replace('/', '_'))), string.Join("/", _checkpoints.Select(a => a.Name.Replace('/', '_'))), string.Join("/", _checkpoints.Select(a => (long)Math.Round(((double)a.Elapsed / a.Frequency) * MillisecondsPerSecond))), string.Join("/", _measures.Select(a => a.Name.Replace('/', '_'))), string.Join("/", _measures.Select(a => a.Value)), (long)Math.Round(((double)LatencyData.DurationTimestamp / LatencyData.DurationTimestampFrequency) * MillisecondsPerSecond)); } public string SerializedLatencyData { get; } public LatencyData LatencyData { get; } }