diff --git a/src/Components/Aspire.Azure.Data.Tables/ConfigurationSchema.json b/src/Components/Aspire.Azure.Data.Tables/ConfigurationSchema.json index dca7a7c4285..c11b7890a1d 100644 --- a/src/Components/Aspire.Azure.Data.Tables/ConfigurationSchema.json +++ b/src/Components/Aspire.Azure.Data.Tables/ConfigurationSchema.json @@ -1,5 +1,19 @@ { - "type": "object", + "definitions": { + "logLevel": { + "properties": { + "Azure": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Core": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Identity": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, "properties": { "Aspire": { "type": "object", @@ -75,5 +89,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Aspire.Azure.Messaging.ServiceBus/ConfigurationSchema.json b/src/Components/Aspire.Azure.Messaging.ServiceBus/ConfigurationSchema.json index 794579c0332..0be7934565a 100644 --- a/src/Components/Aspire.Azure.Messaging.ServiceBus/ConfigurationSchema.json +++ b/src/Components/Aspire.Azure.Messaging.ServiceBus/ConfigurationSchema.json @@ -1,5 +1,22 @@ { - "type": "object", + "definitions": { + "logLevel": { + "properties": { + "Azure": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Core": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Identity": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Messaging.ServiceBus": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, "properties": { "Aspire": { "type": "object", @@ -98,5 +115,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Aspire.Azure.Security.KeyVault/ConfigurationSchema.json b/src/Components/Aspire.Azure.Security.KeyVault/ConfigurationSchema.json index fe56dfe64ad..7972bba2eeb 100644 --- a/src/Components/Aspire.Azure.Security.KeyVault/ConfigurationSchema.json +++ b/src/Components/Aspire.Azure.Security.KeyVault/ConfigurationSchema.json @@ -1,5 +1,19 @@ { - "type": "object", + "definitions": { + "logLevel": { + "properties": { + "Azure": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Core": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Identity": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, "properties": { "Aspire": { "type": "object", @@ -75,5 +89,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Aspire.Azure.Storage.Blobs/ConfigurationSchema.json b/src/Components/Aspire.Azure.Storage.Blobs/ConfigurationSchema.json index 9740c6c87ac..9a27cb06936 100644 --- a/src/Components/Aspire.Azure.Storage.Blobs/ConfigurationSchema.json +++ b/src/Components/Aspire.Azure.Storage.Blobs/ConfigurationSchema.json @@ -1,5 +1,19 @@ { - "type": "object", + "definitions": { + "logLevel": { + "properties": { + "Azure": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Core": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Identity": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, "properties": { "Aspire": { "type": "object", @@ -89,5 +103,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Aspire.Azure.Storage.Queues/ConfigurationSchema.json b/src/Components/Aspire.Azure.Storage.Queues/ConfigurationSchema.json index f140870bcd6..fe8e7d5507b 100644 --- a/src/Components/Aspire.Azure.Storage.Queues/ConfigurationSchema.json +++ b/src/Components/Aspire.Azure.Storage.Queues/ConfigurationSchema.json @@ -1,5 +1,19 @@ { - "type": "object", + "definitions": { + "logLevel": { + "properties": { + "Azure": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Core": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Azure.Identity": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, "properties": { "Aspire": { "type": "object", @@ -84,5 +98,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Aspire.Microsoft.Data.SqlClient/ConfigurationSchema.json b/src/Components/Aspire.Microsoft.Data.SqlClient/ConfigurationSchema.json index 651bb6df8d0..7763f1267c7 100644 --- a/src/Components/Aspire.Microsoft.Data.SqlClient/ConfigurationSchema.json +++ b/src/Components/Aspire.Microsoft.Data.SqlClient/ConfigurationSchema.json @@ -1,5 +1,4 @@ { - "type": "object", "properties": { "Aspire": { "type": "object", @@ -40,5 +39,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Aspire.Microsoft.EntityFrameworkCore.SqlServer/ConfigurationSchema.json b/src/Components/Aspire.Microsoft.EntityFrameworkCore.SqlServer/ConfigurationSchema.json index 96c192f360f..a41852f2959 100644 --- a/src/Components/Aspire.Microsoft.EntityFrameworkCore.SqlServer/ConfigurationSchema.json +++ b/src/Components/Aspire.Microsoft.EntityFrameworkCore.SqlServer/ConfigurationSchema.json @@ -1,5 +1,46 @@ { - "type": "object", + "definitions": { + "logLevel": { + "properties": { + "Microsoft.EntityFrameworkCore": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.ChangeTracking": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Database": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Database.Command": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Database.Transaction": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Database.Connection": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Infrastructure": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Migrations": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Model": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Model.Validation": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Query": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Update": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, "properties": { "Aspire": { "type": "object", @@ -54,5 +95,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL/ConfigurationSchema.json b/src/Components/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL/ConfigurationSchema.json index 945ea645437..c70f74d1719 100644 --- a/src/Components/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL/ConfigurationSchema.json +++ b/src/Components/Aspire.Npgsql.EntityFrameworkCore.PostgreSQL/ConfigurationSchema.json @@ -1,5 +1,46 @@ { - "type": "object", + "definitions": { + "logLevel": { + "properties": { + "Microsoft.EntityFrameworkCore": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.ChangeTracking": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Database": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Database.Command": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Database.Transaction": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Database.Connection": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Infrastructure": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Migrations": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Model": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Model.Validation": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Query": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Microsoft.EntityFrameworkCore.Update": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, "properties": { "Aspire": { "type": "object", @@ -50,5 +91,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Aspire.Npgsql/ConfigurationSchema.json b/src/Components/Aspire.Npgsql/ConfigurationSchema.json index 444df62c27c..aed137df25c 100644 --- a/src/Components/Aspire.Npgsql/ConfigurationSchema.json +++ b/src/Components/Aspire.Npgsql/ConfigurationSchema.json @@ -1,5 +1,31 @@ { - "type": "object", + "definitions": { + "logLevel": { + "properties": { + "Npgsql": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Npgsql.Command": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Npgsql.Connection": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Npgsql.Copy": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Npgsql.Exception": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Npgsql.Replication": { + "$ref": "#/definitions/logLevelThreshold" + }, + "Npgsql.Transaction": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, "properties": { "Aspire": { "type": "object", @@ -30,5 +56,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Aspire.StackExchange.Redis.DistributedCaching/ConfigurationSchema.json b/src/Components/Aspire.StackExchange.Redis.DistributedCaching/ConfigurationSchema.json new file mode 100644 index 00000000000..c817b32e6dd --- /dev/null +++ b/src/Components/Aspire.StackExchange.Redis.DistributedCaching/ConfigurationSchema.json @@ -0,0 +1,14 @@ +{ + "definitions": { + "logLevel": { + "properties": { + "Microsoft.Extensions.Caching.StackExchangeRedis": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, + "properties": { + }, + "type": "object" +} diff --git a/src/Components/Aspire.StackExchange.Redis.OutputCaching/ConfigurationSchema.json b/src/Components/Aspire.StackExchange.Redis.OutputCaching/ConfigurationSchema.json new file mode 100644 index 00000000000..7354bdc8925 --- /dev/null +++ b/src/Components/Aspire.StackExchange.Redis.OutputCaching/ConfigurationSchema.json @@ -0,0 +1,14 @@ +{ + "definitions": { + "logLevel": { + "properties": { + "Microsoft.AspNetCore.OutputCaching.StackExchangeRedis": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, + "properties": { + }, + "type": "object" +} diff --git a/src/Components/Aspire.StackExchange.Redis/ConfigurationSchema.json b/src/Components/Aspire.StackExchange.Redis/ConfigurationSchema.json index e1c8353edb4..4308accbaf5 100644 --- a/src/Components/Aspire.StackExchange.Redis/ConfigurationSchema.json +++ b/src/Components/Aspire.StackExchange.Redis/ConfigurationSchema.json @@ -1,5 +1,13 @@ { - "type": "object", + "definitions": { + "logLevel": { + "properties": { + "Aspire.StackExchange.Redis": { + "$ref": "#/definitions/logLevelThreshold" + } + } + } + }, "properties": { "Aspire": { "type": "object", @@ -141,5 +149,6 @@ } } } - } + }, + "type": "object" } diff --git a/src/Components/Telemetry.md b/src/Components/Telemetry.md index 79e20640683..0c161988eae 100644 --- a/src/Components/Telemetry.md +++ b/src/Components/Telemetry.md @@ -47,21 +47,44 @@ Aspire.Azure.Storage.Queues: - Metric names: - none (currently not supported by the Azure SDK) -Aspire.Npgsql.EntityFrameworkCore.PostgreSQL: +Aspire.Microsoft.Data.SqlClient: +- Log categories: + - none (the client does not provide an easy way to integrate it with logger factory) +- Activity source names: + - "OpenTelemetry.Instrumentation.SqlClient" +- Metric names: + - "Microsoft.Data.SqlClient.EventSource" + - "active-hard-connections" + - "hard-connects" + - "hard-disconnects" + - "active-soft-connects" + - "soft-connects" + - "soft-disconnects" + - "number-of-non-pooled-connections" + - "number-of-pooled-connections" + - "number-of-active-connection-pool-groups" + - "number-of-inactive-connection-pool-groups" + - "number-of-active-connection-pools" + - "number-of-inactive-connection-pools" + - "number-of-active-connections" + - "number-of-free-connections" + - "number-of-stasis-connections" + - "number-of-reclaimed-connections" + +Aspire.Microsoft.EntityFrameworkCore.SqlServer: - Log categories: - - "Microsoft.EntityFrameworkCore.Infrastructure" - "Microsoft.EntityFrameworkCore.ChangeTracking" - - "Microsoft.EntityFrameworkCore.Infrastructure" - "Microsoft.EntityFrameworkCore.Database.Command" - - "Microsoft.EntityFrameworkCore.Query" - - "Microsoft.EntityFrameworkCore.Database.Transaction" - "Microsoft.EntityFrameworkCore.Database.Connection" + - "Microsoft.EntityFrameworkCore.Database.Transaction" + - "Microsoft.EntityFrameworkCore.Infrastructure" + - "Microsoft.EntityFrameworkCore.Migrations" - "Microsoft.EntityFrameworkCore.Model" - "Microsoft.EntityFrameworkCore.Model.Validation" + - "Microsoft.EntityFrameworkCore.Query" - "Microsoft.EntityFrameworkCore.Update" - - "Microsoft.EntityFrameworkCore.Migrations" - Activity source names: - - "Npgsql" + - "OpenTelemetry.Instrumentation.EntityFrameworkCore" - Metric names: - "Microsoft.EntityFrameworkCore": - "ec_Microsoft_EntityFrameworkCore_active_db_contexts" @@ -74,26 +97,15 @@ Aspire.Npgsql.EntityFrameworkCore.PostgreSQL: - "ec_Microsoft_E_execution_strategy_operation_failures_per_second" - "ec_Microsoft_EntityFramew_total_optimistic_concurrency_failures" - "ec_Microsoft_EntityF_optimistic_concurrency_failures_per_second" - - "Npgsql": - - "ec_Npgsql_bytes_written_per_second" - - "ec_Npgsql_bytes_read_per_second" - - "ec_Npgsql_commands_per_second" - - "ec_Npgsql_total_commands" - - "ec_Npgsql_current_commands" - - "ec_Npgsql_failed_commands" - - "ec_Npgsql_prepared_commands_ratio" - - "ec_Npgsql_connection_pools" - - "ec_Npgsql_multiplexing_average_commands_per_batch" - - "ec_Npgsql_multiplexing_average_write_time_per_batch" Aspire.Npgsql: - Log categories: - - "Npgsql.Connection" - "Npgsql.Command" - - "Npgsql.Transaction" + - "Npgsql.Connection" - "Npgsql.Copy" - - "Npgsql.Replication" - "Npgsql.Exception" + - "Npgsql.Replication" + - "Npgsql.Transaction" - Activity source names: - "Npgsql" - Metric names: @@ -109,21 +121,20 @@ Aspire.Npgsql: - "ec_Npgsql_multiplexing_average_commands_per_batch" - "ec_Npgsql_multiplexing_average_write_time_per_batch" -Aspire.Microsoft.EntityFrameworkCore.SqlServer: +Aspire.Npgsql.EntityFrameworkCore.PostgreSQL: - Log categories: - - "Microsoft.EntityFrameworkCore.Infrastructure" - "Microsoft.EntityFrameworkCore.ChangeTracking" - - "Microsoft.EntityFrameworkCore.Infrastructure" - "Microsoft.EntityFrameworkCore.Database.Command" - - "Microsoft.EntityFrameworkCore.Query" - - "Microsoft.EntityFrameworkCore.Database.Transaction" - "Microsoft.EntityFrameworkCore.Database.Connection" + - "Microsoft.EntityFrameworkCore.Database.Transaction" + - "Microsoft.EntityFrameworkCore.Infrastructure" + - "Microsoft.EntityFrameworkCore.Migrations" - "Microsoft.EntityFrameworkCore.Model" - "Microsoft.EntityFrameworkCore.Model.Validation" + - "Microsoft.EntityFrameworkCore.Query" - "Microsoft.EntityFrameworkCore.Update" - - "Microsoft.EntityFrameworkCore.Migrations" - Activity source names: - - "OpenTelemetry.Instrumentation.EntityFrameworkCore" + - "Npgsql" - Metric names: - "Microsoft.EntityFrameworkCore": - "ec_Microsoft_EntityFrameworkCore_active_db_contexts" @@ -136,30 +147,17 @@ Aspire.Microsoft.EntityFrameworkCore.SqlServer: - "ec_Microsoft_E_execution_strategy_operation_failures_per_second" - "ec_Microsoft_EntityFramew_total_optimistic_concurrency_failures" - "ec_Microsoft_EntityF_optimistic_concurrency_failures_per_second" - -Aspire.Microsoft.Data.SqlClient: -- Log categories: - - none (the client does not provide an easy way to integrate it with logger factory) -- Activity source names: - - "OpenTelemetry.Instrumentation.SqlClient" -- Metric names: - - "Microsoft.Data.SqlClient.EventSource" - - "active-hard-connections" - - "hard-connects" - - "hard-disconnects" - - "active-soft-connects" - - "soft-connects" - - "soft-disconnects" - - "number-of-non-pooled-connections" - - "number-of-pooled-connections" - - "number-of-active-connection-pool-groups" - - "number-of-inactive-connection-pool-groups" - - "number-of-active-connection-pools" - - "number-of-inactive-connection-pools" - - "number-of-active-connections" - - "number-of-free-connections" - - "number-of-stasis-connections" - - "number-of-reclaimed-connections" + - "Npgsql": + - "ec_Npgsql_bytes_written_per_second" + - "ec_Npgsql_bytes_read_per_second" + - "ec_Npgsql_commands_per_second" + - "ec_Npgsql_total_commands" + - "ec_Npgsql_current_commands" + - "ec_Npgsql_failed_commands" + - "ec_Npgsql_prepared_commands_ratio" + - "ec_Npgsql_connection_pools" + - "ec_Npgsql_multiplexing_average_commands_per_batch" + - "ec_Npgsql_multiplexing_average_write_time_per_batch" Aspire.StackExchange.Redis: - Log categories: