Skip to content

Commit 9809cf6

Browse files
authored
[Exporter,Prometheus] Fix PrometheusCollectionManagerTests (#3714)
1 parent 31eb92c commit 9809cf6

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

test/OpenTelemetry.Exporter.Prometheus.HttpListener.Tests/PrometheusCollectionManagerTests.cs

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,22 @@ namespace OpenTelemetry.Exporter.Prometheus.Tests
2929
{
3030
public sealed class PrometheusCollectionManagerTests
3131
{
32-
#if PROMETHEUS_HTTP_LISTENER
33-
[Fact(Skip = "Might be flaky. Might be a bug. See: https://github.com/open-telemetry/opentelemetry-dotnet/issues/3679")]
34-
#else
35-
[Fact]
32+
[Theory]
33+
[InlineData(0)] // disable cache, default value for HttpListener
34+
#if PROMETHEUS_ASPNETCORE
35+
[InlineData(300)] // default value for AspNetCore, no possibility to set on HttpListener
3636
#endif
37-
public async Task EnterExitCollectTest()
37+
public async Task EnterExitCollectTest(int scrapeResponseCacheDurationMilliseconds)
3838
{
39+
bool cacheEnabled = scrapeResponseCacheDurationMilliseconds != 0;
3940
using var meter = new Meter(Utils.GetCurrentMethodName());
4041

4142
using (var provider = Sdk.CreateMeterProviderBuilder()
4243
.AddMeter(meter.Name)
4344
#if PROMETHEUS_HTTP_LISTENER
4445
.AddPrometheusHttpListener()
4546
#elif PROMETHEUS_ASPNETCORE
46-
.AddPrometheusExporter()
47+
.AddPrometheusExporter(x => x.ScrapeResponseCacheDurationMilliseconds = scrapeResponseCacheDurationMilliseconds)
4748
#endif
4849
.Build())
4950
{
@@ -108,9 +109,18 @@ public async Task EnterExitCollectTest()
108109
var response = await task.ConfigureAwait(false);
109110
try
110111
{
111-
Assert.Equal(1, runningCollectCount);
112-
Assert.True(response.FromCache);
113-
Assert.Equal(firstResponse.CollectionResponse.GeneratedAtUtc, response.GeneratedAtUtc);
112+
if (cacheEnabled)
113+
{
114+
Assert.Equal(1, runningCollectCount);
115+
Assert.True(response.FromCache);
116+
Assert.Equal(firstResponse.CollectionResponse.GeneratedAtUtc, response.GeneratedAtUtc);
117+
}
118+
else
119+
{
120+
Assert.Equal(2, runningCollectCount);
121+
Assert.False(response.FromCache);
122+
Assert.True(firstResponse.CollectionResponse.GeneratedAtUtc < response.GeneratedAtUtc);
123+
}
114124
}
115125
finally
116126
{
@@ -143,7 +153,7 @@ public async Task EnterExitCollectTest()
143153

144154
await Task.WhenAll(collectTasks).ConfigureAwait(false);
145155

146-
Assert.Equal(2, runningCollectCount);
156+
Assert.Equal(cacheEnabled ? 2 : 3, runningCollectCount);
147157
Assert.NotEqual(firstResponse.ViewPayload, collectTasks[0].Result.ViewPayload);
148158
Assert.NotEqual(firstResponse.CollectionResponse.GeneratedAtUtc, collectTasks[0].Result.CollectionResponse.GeneratedAtUtc);
149159

0 commit comments

Comments
 (0)