From 380ed108e3db395a849f83a152943a5ff01bad83 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Fri, 6 Jun 2025 11:10:39 -0400 Subject: [PATCH 1/9] [Pre5] Blazor What's New updates --- aspnetcore/blazor/call-web-api.md | 8 ----- aspnetcore/blazor/fundamentals/routing.md | 25 ++++++--------- .../aspnetcore-10/includes/blazor.md | 32 +++++++++++-------- 3 files changed, 28 insertions(+), 37 deletions(-) diff --git a/aspnetcore/blazor/call-web-api.md b/aspnetcore/blazor/call-web-api.md index e84c5428e56a..9cab914279bb 100644 --- a/aspnetcore/blazor/call-web-api.md +++ b/aspnetcore/blazor/call-web-api.md @@ -1289,8 +1289,6 @@ Calling ` property to the project file with a value of `false`: @@ -1301,12 +1299,6 @@ To opt-out of response streaming globally, use either of the following approache * Set the `DOTNET_WASM_ENABLE_STREAMING_RESPONSE` environment variable to `false` or `0`. -............. AND REMOVE THE NEXT LINE ............. - ---> - -To opt-out of response streaming globally, set the `DOTNET_WASM_ENABLE_STREAMING_RESPONSE` environment variable to `false` or `0`. - To opt-out of response streaming for an individual request, set to `false` on the (`request` in the following example): ```csharp diff --git a/aspnetcore/blazor/fundamentals/routing.md b/aspnetcore/blazor/fundamentals/routing.md index 5c9a208a0ab5..4b079ecae7c8 100644 --- a/aspnetcore/blazor/fundamentals/routing.md +++ b/aspnetcore/blazor/fundamentals/routing.md @@ -730,14 +730,9 @@ When a component is rendered statically (static SSR) and `NavigationManager.NotF } ``` -Two approaches for providing Not Found content for global interactive rendering: +To provide Not Found content for global interactive rendering, use a Not Found page (Razor component). -* Use a Not Found page (Razor component). -* Specify Not Found content in the [`Router` component's](xref:blazor/fundamentals/routing#route-templates) property (`...` markup or by setting the `NotFound` parameter to a render fragment in C# code). - -The following example uses a Not Found page (`NotFoundPage` component) to render Not Found content. - -`NotFoundPage.razor`: +`NotFound.razor`: ```razor

Not Found

@@ -745,20 +740,20 @@ The following example uses a Not Found page (`NotFoundPage` component) to render

Sorry! Nothing to show.

``` -Specify the `NotFoundPage` component to the `Router` component in `Routes.razor`. You might need to specify the component's namespace with an [`@using`](xref:mvc/views/razor#using) directive either at the top of the `Routes.razor` file or in an [`_Imports.razor` file](xref:blazor/components/index#component-name-class-name-and-namespace). +Assign the `NotFound` component to the router's `NotFoundPage` parameter. `NotFoundPage` supports routing that can be used across re-execution middleware, including non-Blazor middleware. If the `NotFound` render fragment is defined together with `NotFoundPage`, the page has higher priority. + +In the following example, the preceding `NotFound` component is present in the app's `Pages` folder and passed to the `NotFoundPage` parameter: ```razor - - - ... + + + + - - - ``` -When a component is rendered with a global interactive render mode, calling `NotFound` signals the Blazor router to render Not Found content, which is the `NotFoundPage` component: +When a component is rendered with a global interactive render mode, calling `NotFound` signals the Blazor router to render the `NotFound` component: ```razor @page "/render-not-found-interactive" diff --git a/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md b/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md index aa23377b97f7..f1d7db499268 100644 --- a/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md +++ b/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md @@ -110,10 +110,6 @@ In prior Blazor releases, response streaming for for an (`response.Content.ReadAsStreamAsync()`) returns a `BrowserHttpReadStream` and no longer a . `BrowserHttpReadStream` doesn't support synchronous operations, such as `Stream.Read(Span)`. If your code uses synchronous operations, you can opt-out of response streaming or copy the into a yourself. - - -To opt-out of response streaming globally, set the `DOTNET_WASM_ENABLE_STREAMING_RESPONSE` environment variable to `false` or `0`. - To opt-out of response streaming for an individual request, set to `false` on the (`requestMessage` in the following example): ```csharp @@ -387,8 +377,6 @@ Calling being thrown should be updated. For example, in the default Blazor Identity UI, the `IdentityRedirectManager` previously threw an after calling `RedirectTo` to ensure it wasn't invoked during interactive rendering. This exception and the [`[DoesNotReturn]` attributes](xref:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute) should now be removed. - - ### Not Found responses using `NavigationManager` for static SSR and global interactive rendering The now includes a `NotFound` method to handle scenarios where a requested resource isn't found during static server-side rendering (static SSR) or global interactive rendering: @@ -412,3 +398,21 @@ Per-page/component rendering support is planned for Preview 5 in June, 2025. You can use the `NavigationManager.OnNotFound` event for notifications when `NotFound` is invoked. For more information and examples, see . + +### Blazor router has a `NotFoundPage` parameter + +Rendering content after triggering the `NavigationManager.NotFound` method can be now handled by passing a parameter with a component type to the router. This is now recommended over using the `NotFound` render fragment because `NotFoundPage` supports routing that can be used across re-execution middleware, including non-Blazor middleware. If the `NotFound` render fragment is defined together with `NotFoundPage`, the page has higher priority. + +In the following example, a `NotFound` component is present in the app's `Pages` folder and passed to the `NotFoundPage` parameter. The `NotFound` page takes priority over the content in the `NotFound` fragment. + +```razor + + + + + + This content is ignored because 'NotFoundPage' is defined. + +``` + +For more information, see . From a3de3439b564280a2c71abdf2158637d698aac93 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Fri, 6 Jun 2025 11:24:15 -0400 Subject: [PATCH 2/9] Updates --- aspnetcore/release-notes/aspnetcore-10/includes/blazor.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md b/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md index f1d7db499268..a72167289eca 100644 --- a/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md +++ b/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md @@ -401,9 +401,7 @@ For more information and examples, see @@ -411,8 +409,10 @@ In the following example, a `NotFound` component is present in the app's `Pages` - This content is ignored because 'NotFoundPage' is defined. + This content is ignored because NotFoundPage is defined. ``` +The Blazor project template now includes a `NotFound.razor` page by default. This page automatically renders whenever `NavigationManager.NotFound` is called in your app, making it easier to handle missing routes with a consistent user experience. + For more information, see . From 43679125807a4fec3e084aa3c1a33ae906a1f217 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Fri, 6 Jun 2025 11:25:29 -0400 Subject: [PATCH 3/9] Updates --- aspnetcore/blazor/fundamentals/routing.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/aspnetcore/blazor/fundamentals/routing.md b/aspnetcore/blazor/fundamentals/routing.md index 4b079ecae7c8..391bd075112c 100644 --- a/aspnetcore/blazor/fundamentals/routing.md +++ b/aspnetcore/blazor/fundamentals/routing.md @@ -732,6 +732,9 @@ When a component is rendered statically (static SSR) and `NavigationManager.NotF To provide Not Found content for global interactive rendering, use a Not Found page (Razor component). +> [!NOTE] +> The Blazor project template includes a `NotFound.razor` page by default. This page automatically renders whenever `NavigationManager.NotFound` is called, making it easier to handle missing routes with a consistent user experience. + `NotFound.razor`: ```razor From 22f30fb55337c9307cd4d1fab0ea12d87c775527 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Sun, 8 Jun 2025 07:32:25 -0400 Subject: [PATCH 4/9] Updates --- aspnetcore/blazor/performance/index.md | 88 ++++++++++++++++++- .../aspnetcore-10/includes/blazor.md | 6 ++ 2 files changed, 92 insertions(+), 2 deletions(-) diff --git a/aspnetcore/blazor/performance/index.md b/aspnetcore/blazor/performance/index.md index 807d1f7d2c5b..2b00285aea8d 100644 --- a/aspnetcore/blazor/performance/index.md +++ b/aspnetcore/blazor/performance/index.md @@ -1,11 +1,11 @@ --- title: ASP.NET Core Blazor performance best practices author: guardrex -description: Tips for increasing the performance of ASP.NET Core Blazor apps and avoiding common performance problems. +description: Guidance on ASP.NET Core Blazor metrics and tracing, improving app performance, and avoiding common performance problems. monikerRange: '>= aspnetcore-3.1' ms.author: wpickett ms.custom: mvc -ms.date: 04/16/2025 +ms.date: 06/08/2025 uid: blazor/performance/index --- # ASP.NET Core Blazor performance best practices @@ -24,3 +24,87 @@ Blazor is optimized for high performance in most realistic application UI scenar Ahead-of-time (AOT) compilation compiles a Blazor app's .NET code directly into native WebAssembly for direct execution by the browser. AOT-compiled apps result in larger apps that take longer to download, but AOT-compiled apps usually provide better runtime performance, especially for apps that execute CPU-intensive tasks. For more information, see . :::moniker-end + +:::moniker range=">= aspnetcore-10.0" + +## Metrics and tracing + +Metrics and tracing capabilities help you monitor and diagnose app performance, track user interactions, and understand component behavior in production environments. + +### Configuration + +To enable Blazor metrics and tracing in your app, configure [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-dotnet) with the following meters and activity sources in the app's `Program` file where services are registered: + +```csharp +builder.Services.ConfigureOpenTelemetryMeterProvider(meterProvider => +{ + meterProvider.AddMeter("Microsoft.AspNetCore.Components"); + meterProvider.AddMeter("Microsoft.AspNetCore.Components.Lifecycle"); + meterProvider.AddMeter("Microsoft.AspNetCore.Components.Server.Circuits"); +}); + +builder.Services.ConfigureOpenTelemetryTracerProvider(tracerProvider => +{ + tracerProvider.AddSource("Microsoft.AspNetCore.Components"); +}); +``` + +### Performance meters + +`Microsoft.AspNetCore.Components` meter: + +* `aspnetcore.components.navigation`: Tracks the total number of route changes in the app. +* `aspnetcore.components.event_handler`: Measures the duration of processing browser events, including business logic. + +`Microsoft.AspNetCore.Components.Lifecycle` meter: + +* `aspnetcore.components.update_parameters`: Measures the duration of processing component parameters, including business logic. +* `aspnetcore.components.render_diff`: Tracks the duration of rendering batches. + +`Microsoft.AspNetCore.Components.Server.Circuits` meter: + +In server-side Blazor apps, additional circuit-specific metrics include: + +* `aspnetcore.components.circuit.active`: Shows the number of active circuits currently in memory. +* `aspnetcore.components.circuit.connected`: Tracks the number of circuits connected to clients. +* `aspnetcore.components.circuit.duration`: Measures circuit lifetime duration and provides total circuit count. + +### Blazor tracing + +The new activity tracing capabilities use the `Microsoft.AspNetCore.Components` activity source and provide three main types of tracing activities: circuit lifecycle, navigation, and event handling. + +Circuit lifecycle tracing: + +`Microsoft.AspNetCore.Components.CircuitStart`: Traces circuit initialization with the format `Circuit {circuitId}`. + +* Tag: `aspnetcore.components.circuit.id` +* Link: HTTP activity + +Navigation tracing: + +`Microsoft.AspNetCore.Components.RouteChange`: Tracks route changes with the format `Route {route} -> {componentType}`. + +* Tags + * `aspnetcore.components.circuit.id` + * `aspnetcore.components.route` + * `aspnetcore.components.type` +* Links + * HTTP trace + * Circuit trace + +Event handling tracing: + +`Microsoft.AspNetCore.Components.HandleEvent`: Traces event handling with the format `Event {attributeName} -> {componentType}.{methodName}`. + +* Tags + * `aspnetcore.components.attribute.name` + * `aspnetcore.components.circuit.id` + * `aspnetcore.components.method` + * `aspnetcore.components.type` + * `error.type` +* Links + * HTTP trace + * Circuit trace + * Router trace + +:::moniker-end diff --git a/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md b/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md index a72167289eca..2fdbf1ad07b7 100644 --- a/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md +++ b/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md @@ -416,3 +416,9 @@ Blazor now provides an improved way to display a "Not Found" page when navigatin The Blazor project template now includes a `NotFound.razor` page by default. This page automatically renders whenever `NavigationManager.NotFound` is called in your app, making it easier to handle missing routes with a consistent user experience. For more information, see . + +### Metrics and tracing + +This release introduces comprehensive metrics and tracing capabilities for Blazor apps, providing detailed observability of the component lifecycle, navigation, event handling, and circuit management. + +For more information, see . From 0f4a1f480ae7415aeb84af510f20f1c81b03780b Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Sun, 8 Jun 2025 08:27:24 -0400 Subject: [PATCH 5/9] Updates --- aspnetcore/blazor/performance/index.md | 4 + .../metrics/built-in/includes/built-in10.md | 108 +++++++++++++++++- 2 files changed, 111 insertions(+), 1 deletion(-) diff --git a/aspnetcore/blazor/performance/index.md b/aspnetcore/blazor/performance/index.md index 2b00285aea8d..20266345d2d2 100644 --- a/aspnetcore/blazor/performance/index.md +++ b/aspnetcore/blazor/performance/index.md @@ -51,6 +51,8 @@ builder.Services.ConfigureOpenTelemetryTracerProvider(tracerProvider => ### Performance meters +For more information on the following performance meters, see . + `Microsoft.AspNetCore.Components` meter: * `aspnetcore.components.navigation`: Tracks the total number of route changes in the app. @@ -71,6 +73,8 @@ In server-side Blazor apps, additional circuit-specific metrics include: ### Blazor tracing +For more information on the following tracing activities, see . + The new activity tracing capabilities use the `Microsoft.AspNetCore.Components` activity source and provide three main types of tracing activities: circuit lifecycle, navigation, and event handling. Circuit lifecycle tracing: diff --git a/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md b/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md index 5edff312c615..9ebbb2f5b8d1 100644 --- a/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md +++ b/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md @@ -3,7 +3,113 @@ This article describes the metrics built-in for ASP.NET Core produced using the API. For a listing of metrics based on the older [EventCounters](/dotnet/core/diagnostics/event-counters) API, see [Available counters](/dotnet/core/diagnostics/available-counters). -See [Using ASP.NET Core metrics](xref:log-mon/metrics/metrics) for information about how to collect, report, enrich, and test ASP.NET Core metrics +For information about how to collect, report, enrich, and test ASP.NET Core metrics, see . + +## `Microsoft.AspNetCore.Components` + +The `Microsoft.AspNetCore.Components` metrics report information on Razor component route changes and browser events: + +* [`aspnetcore.components.navigation`](#metric-aspnetcorecomponentsnavigation) +* [`aspnetcore.components.event_handler`](#metric-aspnetcorecomponentsevent_handler) + +#### Metric: `aspnetcore.components.navigation` + +Name | Instrument Type | Unit (UCUM) | Description +--- | --- | --- | --- +`aspnetcore.components.navigation` | Histogram | `s` | Tracks the total number of route changes in the app. + +Attribute | Type | Description | Examples | Presence +--- | --- | --- | --- | --- +xxx | xxx | xxx | xxx | xxx + +. + +#### Metric: `aspnetcore.components.event_handler` + +Name | Instrument Type | Unit (UCUM) | Description +--- | --- | --- | --- +`aspnetcore.components.event_handler` | Histogram | `s` | Measures the duration of processing browser events, including business logic. + +Attribute | Type | Description | Examples | Presence +--- | --- | --- | --- | --- +xxx | xxx | xxx | xxx | xxx + +. + +## `Microsoft.AspNetCore.Components.Lifecycle` + +The `Microsoft.AspNetCore.Components.Lifecycle` metrics report information on Razor component lifecycle events: + +* [`aspnetcore.components.update_parameters`](#metric-aspnetcorecomponentsupdate_parameters) +* [`aspnetcore.components.render_diff`](#metric-aspnetcorecomponentsrender_diff) + +#### Metric: `aspnetcore.components.update_parameters` + +Name | Instrument Type | Unit (UCUM) | Description +--- | --- | --- | --- +`aspnetcore.components.update_parameters` | Histogram | `s` | Measures the duration of processing component parameters, including business logic. + +Attribute | Type | Description | Examples | Presence +--- | --- | --- | --- | --- +xxx | xxx | xxx | xxx | xxx + +. + +#### Metric: `aspnetcore.components.render_diff` + +Name | Instrument Type | Unit (UCUM) | Description +--- | --- | --- | --- +`aspnetcore.components.render_diff` | Histogram | `s` | Shows the number of active circuits currently in memory. + +Attribute | Type | Description | Examples | Presence +--- | --- | --- | --- | --- +xxx | xxx | xxx | xxx | xxx + +. + +#### Metric: `aspnetcore.components.circuit.connected` + +Name | Instrument Type | Unit (UCUM) | Description +--- | --- | --- | --- +`aspnetcore.components.circuit.connected` | Histogram | `s` | Tracks the number of circuits connected to clients. + +Attribute | Type | Description | Examples | Presence +--- | --- | --- | --- | --- +xxx | xxx | xxx | xxx | xxx + +. + +#### Metric: `aspnetcore.components.circuit.duration` + +Name | Instrument Type | Unit (UCUM) | Description +--- | --- | --- | --- +`aspnetcore.components.circuit.duration` | Histogram | `s` | Measures circuit lifetime duration and provides total circuit count. + +Attribute | Type | Description | Examples | Presence +--- | --- | --- | --- | --- +xxx | xxx | xxx | xxx | xxx + +. ## `Microsoft.AspNetCore.Hosting` From 1d0beb134a26f55e5c223c78ec031e305196d205 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Tue, 10 Jun 2025 11:36:42 -0400 Subject: [PATCH 6/9] Updates --- aspnetcore/log-mon/metrics/built-in/includes/built-in10.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md b/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md index 9ebbb2f5b8d1..6e455e101108 100644 --- a/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md +++ b/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md @@ -16,7 +16,7 @@ The `Microsoft.AspNetCore.Components` metrics report information on Razor compon Name | Instrument Type | Unit (UCUM) | Description --- | --- | --- | --- -`aspnetcore.components.navigation` | Histogram | `s` | Tracks the total number of route changes in the app. +`aspnetcore.components.navigation` | Counter | `{route}` | Tracks the total number of route changes in the app. Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- @@ -79,7 +79,7 @@ The `Microsoft.AspNetCore.Components.Server.Circuits` metrics report information Name | Instrument Type | Unit (UCUM) | Description --- | --- | --- | --- -`aspnetcore.components.circuit.active` | Histogram | `s` | Shows the number of active circuits currently in memory. +`aspnetcore.components.circuit.active` | UpDownCounter | `{circuit}` | Shows the number of active circuits currently in memory. Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- @@ -91,7 +91,7 @@ xxx | xxx | xxx | xxx | xxx Name | Instrument Type | Unit (UCUM) | Description --- | --- | --- | --- -`aspnetcore.components.circuit.connected` | Histogram | `s` | Tracks the number of circuits connected to clients. +`aspnetcore.components.circuit.connected` | UpDownCounter | `{circuit}` | Tracks the number of circuits connected to clients. Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- From 0b47c931bf3a8f392cd0d6c4f3dad2dfabb3605e Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Tue, 10 Jun 2025 13:22:29 -0400 Subject: [PATCH 7/9] Updates --- .../metrics/built-in/includes/built-in10.md | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md b/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md index 6e455e101108..c191c4a51d52 100644 --- a/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md +++ b/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md @@ -20,9 +20,8 @@ Name | Instrument Type | Unit (UCUM) | Description Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- -xxx | xxx | xxx | xxx | xxx - -. +`aspnetcore.components.type` | string | Component navigated to. | `TestComponent` | Always +`aspnetcore.components.route` | string | The component's route | `/test-route` | Always #### Metric: `aspnetcore.components.event_handler` @@ -32,9 +31,10 @@ Name | Instrument Type | Unit (UCUM) | Description Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- -xxx | xxx | xxx | xxx | xxx - -. +`aspnetcore.components.type` | string | Component type handling the event. | `TestComponent` | Always +`aspnetcore.components.method` | string | C# method handling the event. | `OnClick` | Always +`aspnetcore.components.attribute.name` | string | Component attribute name. | `onclick` | Always +`error.type` | string | The full name of exception type. | `System.InvalidOperationException`; `Contoso.MyException` | If an exception was thrown. ## `Microsoft.AspNetCore.Components.Lifecycle` @@ -51,21 +51,20 @@ Name | Instrument Type | Unit (UCUM) | Description Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- -xxx | xxx | xxx | xxx | xxx - -. +`aspnetcore.components.type` | string | Component type handling the event. | `TestComponent` | Always +`error.type` | string | The full name of exception type. | `System.InvalidOperationException`; `Contoso.MyException` | If an exception was thrown. #### Metric: `aspnetcore.components.render_diff` Name | Instrument Type | Unit (UCUM) | Description --- | --- | --- | --- -`aspnetcore.components.render_diff` | Histogram | `s` | Tracks the duration of rendering batches. Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- -xxx | xxx | xxx | xxx | xxx +`aspnetcore.components.diff.length` | int | The length of the render diff. | 50 | Always +`error.type` | string | The full name of exception type. | `System.InvalidOperationException`; `Contoso.MyException` | If an exception was thrown. -. ## `Microsoft.AspNetCore.Components.Server.Circuits` @@ -85,8 +84,6 @@ Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- xxx | xxx | xxx | xxx | xxx -. - #### Metric: `aspnetcore.components.circuit.connected` Name | Instrument Type | Unit (UCUM) | Description @@ -97,8 +94,6 @@ Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- xxx | xxx | xxx | xxx | xxx -. - #### Metric: `aspnetcore.components.circuit.duration` Name | Instrument Type | Unit (UCUM) | Description @@ -109,8 +104,6 @@ Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- xxx | xxx | xxx | xxx | xxx -. - ## `Microsoft.AspNetCore.Hosting` The `Microsoft.AspNetCore.Hosting` metrics report high-level information about HTTP requests received by ASP.NET Core: From 7dfd12b88b3827b23402ccd7fe5dbef060ad3d8e Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Tue, 10 Jun 2025 13:28:11 -0400 Subject: [PATCH 8/9] Updates --- .../metrics/built-in/includes/built-in10.md | 23 ++++--------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md b/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md index c191c4a51d52..6002dc203f5e 100644 --- a/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md +++ b/aspnetcore/log-mon/metrics/built-in/includes/built-in10.md @@ -21,7 +21,7 @@ Name | Instrument Type | Unit (UCUM) | Description Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- `aspnetcore.components.type` | string | Component navigated to. | `TestComponent` | Always -`aspnetcore.components.route` | string | The component's route | `/test-route` | Always +`aspnetcore.components.route` | string | The component's route. | `/test-route` | Always #### Metric: `aspnetcore.components.event_handler` @@ -33,8 +33,8 @@ Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- `aspnetcore.components.type` | string | Component type handling the event. | `TestComponent` | Always `aspnetcore.components.method` | string | C# method handling the event. | `OnClick` | Always -`aspnetcore.components.attribute.name` | string | Component attribute name. | `onclick` | Always -`error.type` | string | The full name of exception type. | `System.InvalidOperationException`; `Contoso.MyException` | If an exception was thrown. +`aspnetcore.components.attribute.name` | string | Component attribute name handling the event. | `onclick` | Always +`error.type` | string | The full name of exception type. | `System.InvalidOperationException`; `Contoso.MyException` | If an exception is thrown. ## `Microsoft.AspNetCore.Components.Lifecycle` @@ -52,7 +52,7 @@ Name | Instrument Type | Unit (UCUM) | Description Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- `aspnetcore.components.type` | string | Component type handling the event. | `TestComponent` | Always -`error.type` | string | The full name of exception type. | `System.InvalidOperationException`; `Contoso.MyException` | If an exception was thrown. +`error.type` | string | The full name of exception type. | `System.InvalidOperationException`; `Contoso.MyException` | If an exception is thrown. #### Metric: `aspnetcore.components.render_diff` @@ -63,8 +63,7 @@ Name | Instrument Type | Unit (UCUM) | Description Attribute | Type | Description | Examples | Presence --- | --- | --- | --- | --- `aspnetcore.components.diff.length` | int | The length of the render diff. | 50 | Always -`error.type` | string | The full name of exception type. | `System.InvalidOperationException`; `Contoso.MyException` | If an exception was thrown. - +`error.type` | string | The full name of exception type. | `System.InvalidOperationException`; `Contoso.MyException` | If an exception is thrown. ## `Microsoft.AspNetCore.Components.Server.Circuits` @@ -80,30 +79,18 @@ Name | Instrument Type | Unit (UCUM) | Description --- | --- | --- | --- `aspnetcore.components.circuit.active` | UpDownCounter | `{circuit}` | Shows the number of active circuits currently in memory. -Attribute | Type | Description | Examples | Presence ---- | --- | --- | --- | --- -xxx | xxx | xxx | xxx | xxx - #### Metric: `aspnetcore.components.circuit.connected` Name | Instrument Type | Unit (UCUM) | Description --- | --- | --- | --- `aspnetcore.components.circuit.connected` | UpDownCounter | `{circuit}` | Tracks the number of circuits connected to clients. -Attribute | Type | Description | Examples | Presence ---- | --- | --- | --- | --- -xxx | xxx | xxx | xxx | xxx - #### Metric: `aspnetcore.components.circuit.duration` Name | Instrument Type | Unit (UCUM) | Description --- | --- | --- | --- `aspnetcore.components.circuit.duration` | Histogram | `s` | Measures circuit lifetime duration and provides total circuit count. -Attribute | Type | Description | Examples | Presence ---- | --- | --- | --- | --- -xxx | xxx | xxx | xxx | xxx - ## `Microsoft.AspNetCore.Hosting` The `Microsoft.AspNetCore.Hosting` metrics report high-level information about HTTP requests received by ASP.NET Core: From 1bf014e5c7140f6f74e1fdce64d999fd0bbe576a Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Tue, 10 Jun 2025 16:15:17 -0400 Subject: [PATCH 9/9] Updates --- aspnetcore/release-notes/aspnetcore-10.0.md | 2 +- aspnetcore/release-notes/aspnetcore-10/includes/blazor.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/aspnetcore/release-notes/aspnetcore-10.0.md b/aspnetcore/release-notes/aspnetcore-10.0.md index b18926db30ad..b6b9d173344a 100644 --- a/aspnetcore/release-notes/aspnetcore-10.0.md +++ b/aspnetcore/release-notes/aspnetcore-10.0.md @@ -4,7 +4,7 @@ author: rick-anderson description: Learn about the new features in ASP.NET Core in .NET 10. ms.author: riande ms.custom: mvc -ms.date: 4/12/2025 +ms.date: 6/9/2025 uid: aspnetcore-10 --- # What's new in ASP.NET Core in .NET 10 diff --git a/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md b/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md index 2fdbf1ad07b7..7cc340092e8f 100644 --- a/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md +++ b/aspnetcore/release-notes/aspnetcore-10/includes/blazor.md @@ -1,6 +1,6 @@ ### New and updated Blazor Web App security samples -We've added and updated Blazor Web App security samples cross-linked in the following articles: +We've added and updated the Blazor Web App security samples linked in the following articles: * *