-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Labels
Description
Describe the bug
MigrationOpTracker
reports the sub-second millisecond part of the TimeSpan instances provided via the Latency
method, rather than their full ms duration.
To reproduce
using System;
using LaunchDarkly.Logging;
using LaunchDarkly.Sdk;
using LaunchDarkly.Sdk.Server;
using LaunchDarkly.Sdk.Server.Migrations;
using Xunit;
using Xunit.Abstractions;
namespace LdBugReport;
public class ReproTest
{
private readonly ITestOutputHelper _output;
public ReproTest(ITestOutputHelper output)
{
_output = output;
}
[Fact]
public void ReproduceBug()
{
using var ldClient = new LdClient(
Configuration.Builder("YOUR-KEY")
.Logging(Logs.ToMethod(msg => _output.WriteLine(msg)))
.Build());
var variation = ldClient.MigrationVariation(
"YOUR-MIGRATION-FLAG",
Context.Builder(ContextKind.Default, "anon").Anonymous(true).Build(),
MigrationStage.Off);
variation.Tracker.Op(MigrationOperation.Write);
variation.Tracker.Invoked(MigrationOrigin.Old);
variation.Tracker.Invoked(MigrationOrigin.New);
variation.Tracker.Latency(MigrationOrigin.Old, TimeSpan.FromMilliseconds(1100));
variation.Tracker.Latency(MigrationOrigin.New, TimeSpan.FromMilliseconds(1200));
ldClient.TrackMigration(variation.Tracker);
// By observing test output, we can see that latencies values sent are 100 and 200, which are
// the sub-second millisecond part of the TimeSpan instances, rather that being their TotalMillisecond value
}
}
Expected behavior
TimeSpan.TotalMilliseconds
should be used here:
Old = _oldLatency?.Milliseconds, |
SDK version
8.9.0