Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

### Features Added

* Enabled resource metrics export by default.
([#53432](https://github.com/Azure/azure-sdk-for-net/pull/53432))

### Breaking Changes

### Bugs Fixed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ internal static class ResourceExtensions
try
{
var exportResource = platform.GetEnvironmentVariable(EnvironmentVariableConstants.EXPORT_RESOURCE_METRIC);
if (exportResource != null && exportResource.Equals("true", StringComparison.OrdinalIgnoreCase))
if (exportResource == null || exportResource.Equals("true", StringComparison.OrdinalIgnoreCase))
{
shouldReportMetricTelemetry = true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public void DefaultResource(string? instrumentationKey, string envVarValue)

Assert.StartsWith("unknown_service", azMonResource?.RoleName);
Assert.Equal(Dns.GetHostName(), azMonResource?.RoleInstance);
if (envVarValue == "true")
if (envVarValue == "true" || envVarValue == null)
{
Assert.Equal(instrumentationKey != null, azMonResource?.MonitorBaseData != null);
}
Expand Down Expand Up @@ -338,7 +338,7 @@ public void MetricTelemetryIsAddedToResourceBasedOnEnvVar(string envVarValue)
var resource = ResourceBuilder.CreateDefault().Build();
var azMonResource = resource.CreateAzureMonitorResource(platform: GetMockPlatform(enableResourceMetric: envVarValue), instrumentationKey: InstrumentationKey);

if (envVarValue == "true")
if (envVarValue == "true" || envVarValue == null)
{
Assert.NotNull(azMonResource?.MonitorBaseData);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,21 @@ public void ValidatePerfCounterMetrics()
tracerProvider?.ForceFlush();
WaitForActivityExport(traceTelemetryItems);

standardMetricCustomProcessor._meterProvider?.ForceFlush();
// Wait for performance counter collection cycle to complete
// Performance counters are collected periodically, so we need to wait for at least one collection cycle
var perfCountersCollected = SpinWait.SpinUntil(
condition: () =>
{
standardMetricCustomProcessor._meterProvider?.ForceFlush();
Thread.Sleep(100);
var requestRate = metricTelemetryItems
.Select(ti => (MetricsData)ti.Data.BaseData)
.FirstOrDefault(md => md.Metrics.Count > 0 && md.Metrics[0].Name == PerfCounterConstants.RequestRateMetricIdValue);
return requestRate != null && requestRate.Metrics[0].Value >= 1;
},
timeout: TimeSpan.FromSeconds(5));

Assert.True(perfCountersCollected, "Performance counter metrics were not collected within the timeout period.");

// We expect multiple metric telemetry items now (at least one per perf counter plus request duration histogram).
Assert.True(metricTelemetryItems.Count >= 2, "Expected multiple metric telemetry items including perf counters.");
Expand Down
Loading