Skip to content

Commit 0d015c6

Browse files
authored
OTEL implementation, so far matching EventCounters infrastructure. (#33633)
1 parent da10319 commit 0d015c6

25 files changed

+632
-376
lines changed

eng/Versions.props

+1
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,6 @@
4040
<MicrosoftCodeAnalysisVersion>4.8.0</MicrosoftCodeAnalysisVersion>
4141
<MicrosoftCodeAnalysisTestingVersion>1.1.2-beta1.24121.1</MicrosoftCodeAnalysisTestingVersion>
4242
<AzureIdentityVersion>1.11.3</AzureIdentityVersion>
43+
<OpenTelemetryExporterInMemoryVersion>1.8.1</OpenTelemetryExporterInMemoryVersion>
4344
</PropertyGroup>
4445
</Project>

src/EFCore.Analyzers/EFDiagnostics.cs

+1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ public static class EFDiagnostics
1616
public const string ExperimentalApi = "EF9001";
1717
public const string ProviderExperimentalApi = "EF9002";
1818
public const string PrecompiledQueryExperimental = "EF9100";
19+
public const string MetricsExperimental = "EF9101";
1920
}

src/EFCore.Cosmos/EFCore.Cosmos.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1010
<PackageTags>$(PackageTags);CosmosDb;SQL API</PackageTags>
1111
<ImplicitUsings>true</ImplicitUsings>
12+
<NoWarn>$(NoWarn);EF9101</NoWarn> <!-- Metrics is experimental -->
1213
</PropertyGroup>
1314

1415
<ItemGroup>

src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.QueryingEnumerable.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public bool MoveNext()
155155
{
156156
var sqlQuery = _queryingEnumerable.GenerateQuery();
157157

158-
EntityFrameworkEventSource.Log.QueryExecuting();
158+
EntityFrameworkMetricsData.ReportQueryExecuting();
159159

160160
_enumerator = _cosmosQueryContext.CosmosClient
161161
.ExecuteSqlQuery(
@@ -253,7 +253,7 @@ public async ValueTask<bool> MoveNextAsync()
253253
{
254254
var sqlQuery = _queryingEnumerable.GenerateQuery();
255255

256-
EntityFrameworkEventSource.Log.QueryExecuting();
256+
EntityFrameworkMetricsData.ReportQueryExecuting();
257257

258258
_enumerator = _cosmosQueryContext.CosmosClient
259259
.ExecuteSqlQueryAsync(

src/EFCore.Cosmos/Query/Internal/CosmosShapedQueryCompilingExpressionVisitor.ReadItemQueryingEnumerable.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public bool MoveNext()
225225
throw new InvalidOperationException(CosmosStrings.PartitionKeyMissing);
226226
}
227227

228-
EntityFrameworkEventSource.Log.QueryExecuting();
228+
EntityFrameworkMetricsData.ReportQueryExecuting();
229229

230230
_item = _cosmosQueryContext.CosmosClient.ExecuteReadItem(
231231
_cosmosContainer,
@@ -277,7 +277,7 @@ public async ValueTask<bool> MoveNextAsync()
277277
throw new InvalidOperationException(CosmosStrings.PartitionKeyMissing);
278278
}
279279

280-
EntityFrameworkEventSource.Log.QueryExecuting();
280+
EntityFrameworkMetricsData.ReportQueryExecuting();
281281

282282
_item = await _cosmosQueryContext.CosmosClient.ExecuteReadItemAsync(
283283
_cosmosContainer,

src/EFCore.InMemory/EFCore.InMemory.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1010
<PackageTags>$(PackageTags);In-Memory</PackageTags>
1111
<ImplicitUsings>true</ImplicitUsings>
12+
<NoWarn>$(NoWarn);EF9101</NoWarn> <!-- Metrics is experimental -->
1213
</PropertyGroup>
1314

1415
<ItemGroup>

src/EFCore.InMemory/Query/Internal/InMemoryShapedQueryCompilingExpressionVisitor.QueryingEnumerable.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ private bool MoveNextHelper()
155155
{
156156
if (_enumerator == null)
157157
{
158-
EntityFrameworkEventSource.Log.QueryExecuting();
158+
EntityFrameworkMetricsData.ReportQueryExecuting();
159159

160160
_enumerator = _innerEnumerable.GetEnumerator();
161161
_queryContext.InitializeStateManager(_standAloneStateManager);

src/EFCore.Relational/EFCore.Relational.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<ImplicitUsings>true</ImplicitUsings>
1111
<NoWarn>$(NoWarn);EF9100</NoWarn> <!-- Precomiled query is experimental -->
1212
<NoWarn>$(NoWarn);EF9002</NoWarn> <!-- Experimental provider-facing feature -->
13+
<NoWarn>$(NoWarn);EF9101</NoWarn> <!-- Metrics is experimental -->
1314
</PropertyGroup>
1415

1516
<ItemGroup>

src/EFCore.Relational/Query/Internal/FromSqlQueryingEnumerable.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ public bool MoveNext()
268268

269269
private static bool InitializeReader(Enumerator enumerator)
270270
{
271-
EntityFrameworkEventSource.Log.QueryExecuting();
271+
EntityFrameworkMetricsData.ReportQueryExecuting();
272272

273273
var relationalCommand = enumerator._relationalCommand =
274274
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);
@@ -390,7 +390,7 @@ await _relationalQueryContext.ExecutionStrategy.ExecuteAsync(
390390

391391
private static async Task<bool> InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
392392
{
393-
EntityFrameworkEventSource.Log.QueryExecuting();
393+
EntityFrameworkMetricsData.ReportQueryExecuting();
394394

395395
var relationalCommand = enumerator._relationalCommand =
396396
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);

src/EFCore.Relational/Query/Internal/GroupBySingleQueryingEnumerable.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ public bool MoveNext()
338338

339339
private static bool InitializeReader(Enumerator enumerator)
340340
{
341-
EntityFrameworkEventSource.Log.QueryExecuting();
341+
EntityFrameworkMetricsData.ReportQueryExecuting();
342342

343343
var relationalCommand = enumerator._relationalCommand =
344344
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);
@@ -525,7 +525,7 @@ await _relationalQueryContext.ExecutionStrategy.ExecuteAsync(
525525

526526
private static async Task<bool> InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
527527
{
528-
EntityFrameworkEventSource.Log.QueryExecuting();
528+
EntityFrameworkMetricsData.ReportQueryExecuting();
529529

530530
var relationalCommand = enumerator._relationalCommand =
531531
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);

src/EFCore.Relational/Query/Internal/GroupBySplitQueryingEnumerable.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ public bool MoveNext()
338338

339339
private static bool InitializeReader(Enumerator enumerator)
340340
{
341-
EntityFrameworkEventSource.Log.QueryExecuting();
341+
EntityFrameworkMetricsData.ReportQueryExecuting();
342342

343343
var relationalCommand = enumerator._relationalCommand =
344344
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);
@@ -516,7 +516,7 @@ await _relatedDataLoaders(
516516

517517
private static async Task<bool> InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
518518
{
519-
EntityFrameworkEventSource.Log.QueryExecuting();
519+
EntityFrameworkMetricsData.ReportQueryExecuting();
520520

521521
var relationalCommand = enumerator._relationalCommand =
522522
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);

src/EFCore.Relational/Query/Internal/SingleQueryingEnumerable.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ public bool MoveNext()
265265

266266
private static bool InitializeReader(Enumerator enumerator)
267267
{
268-
EntityFrameworkEventSource.Log.QueryExecuting();
268+
EntityFrameworkMetricsData.ReportQueryExecuting();
269269

270270
var relationalCommand = enumerator._relationalCommand =
271271
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);
@@ -426,7 +426,7 @@ await _relationalQueryContext.ExecutionStrategy.ExecuteAsync(
426426

427427
private static async Task<bool> InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
428428
{
429-
EntityFrameworkEventSource.Log.QueryExecuting();
429+
EntityFrameworkMetricsData.ReportQueryExecuting();
430430

431431
var relationalCommand = enumerator._relationalCommand =
432432
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);

src/EFCore.Relational/Query/Internal/SplitQueryingEnumerable.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ public bool MoveNext()
259259

260260
private static bool InitializeReader(Enumerator enumerator)
261261
{
262-
EntityFrameworkEventSource.Log.QueryExecuting();
262+
EntityFrameworkMetricsData.ReportQueryExecuting();
263263

264264
var relationalCommand = enumerator._relationalCommand =
265265
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);
@@ -414,7 +414,7 @@ await _relatedDataLoaders(
414414

415415
private static async Task<bool> InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
416416
{
417-
EntityFrameworkEventSource.Log.QueryExecuting();
417+
EntityFrameworkMetricsData.ReportQueryExecuting();
418418

419419
var relationalCommand = enumerator._relationalCommand =
420420
enumerator._relationalCommandResolver.RentAndPopulateRelationalCommand(enumerator._relationalQueryContext);

src/EFCore.Relational/Query/RelationalShapedQueryCompilingExpressionVisitor.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public static int NonQueryResult(
144144
(relationalQueryContext, relationalCommandResolver, commandSource),
145145
static (_, state) =>
146146
{
147-
EntityFrameworkEventSource.Log.QueryExecuting();
147+
EntityFrameworkMetricsData.ReportQueryExecuting();
148148

149149
var relationalCommand = state.relationalCommandResolver.RentAndPopulateRelationalCommand(state.relationalQueryContext);
150150

@@ -222,7 +222,7 @@ public static Task<int> NonQueryResultAsync(
222222
(relationalQueryContext, relationalCommandResolver, commandSource),
223223
static (_, state, cancellationToken) =>
224224
{
225-
EntityFrameworkEventSource.Log.QueryExecuting();
225+
EntityFrameworkMetricsData.ReportQueryExecuting();
226226

227227
var relationalCommand = state.relationalCommandResolver.RentAndPopulateRelationalCommand(state.relationalQueryContext);
228228

src/EFCore/ChangeTracking/Internal/StateManager.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1282,7 +1282,7 @@ protected virtual int SaveChanges(IList<IUpdateEntry> entriesToSave)
12821282

12831283
try
12841284
{
1285-
EntityFrameworkEventSource.Log.SavingChanges();
1285+
EntityFrameworkMetricsData.ReportSavingChanges();
12861286

12871287
return _database.SaveChanges(entriesToSave);
12881288
}
@@ -1306,7 +1306,7 @@ protected virtual async Task<int> SaveChangesAsync(
13061306

13071307
try
13081308
{
1309-
EntityFrameworkEventSource.Log.SavingChanges();
1309+
EntityFrameworkMetricsData.ReportSavingChanges();
13101310

13111311
return await _database.SaveChangesAsync(entriesToSave, cancellationToken)
13121312
.ConfigureAwait(false);

src/EFCore/DbContext.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public DbContext(DbContextOptions options)
130130
.GetRequiredService<IDbSetInitializer>()
131131
.InitializeSets(this);
132132

133-
EntityFrameworkEventSource.Log.DbContextInitializing();
133+
EntityFrameworkMetricsData.ReportDbContextInitializing();
134134
}
135135

136136
/// <summary>
@@ -659,7 +659,7 @@ public virtual int SaveChanges(bool acceptAllChangesOnSuccess)
659659
}
660660
catch (DbUpdateConcurrencyException exception)
661661
{
662-
EntityFrameworkEventSource.Log.OptimisticConcurrencyFailure();
662+
EntityFrameworkMetricsData.ReportOptimisticConcurrencyFailure();
663663

664664
SaveChangesFailed?.Invoke(this, new SaveChangesFailedEventArgs(acceptAllChangesOnSuccess, exception));
665665

@@ -804,7 +804,7 @@ public virtual async Task<int> SaveChangesAsync(
804804
}
805805
catch (DbUpdateConcurrencyException exception)
806806
{
807-
EntityFrameworkEventSource.Log.OptimisticConcurrencyFailure();
807+
EntityFrameworkMetricsData.ReportOptimisticConcurrencyFailure();
808808

809809
SaveChangesFailed?.Invoke(this, new SaveChangesFailedEventArgs(acceptAllChangesOnSuccess, exception));
810810

@@ -1119,7 +1119,7 @@ private bool DisposeSync(bool leaseActive, bool contextShouldBeDisposed)
11191119
}
11201120
else if (!_disposed)
11211121
{
1122-
EntityFrameworkEventSource.Log.DbContextDisposing();
1122+
EntityFrameworkMetricsData.ReportDbContextDisposing();
11231123

11241124
_dbContextDependencies?.InfrastructureLogger.ContextDisposed(this);
11251125

src/EFCore/EFCore.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Microsoft.EntityFrameworkCore.DbSet
1414
<GenerateDocumentationFile>true</GenerateDocumentationFile>
1515
<ImplicitUsings>true</ImplicitUsings>
1616
<NoWarn>$(NoWarn);EF9100</NoWarn> <!-- Precompiled query is experimental -->
17+
<NoWarn>$(NoWarn);EF9101</NoWarn> <!-- Metrics is experimental -->
1718
</PropertyGroup>
1819

1920
<ItemGroup>

0 commit comments

Comments
 (0)