From 8b9b67fec9576f8612295d2863b77042ee1d96dc Mon Sep 17 00:00:00 2001 From: "azure-sdk-automation[bot]" <191533747+azure-sdk-automation[bot]@users.noreply.github.com> Date: Thu, 30 Jul 2026 10:34:42 -0700 Subject: [PATCH 1/5] Update package index with latest published versions (#55193) Co-authored-by: azure-sdk --- docs/azure/includes/dotnet-all.md | 7 ++++--- docs/azure/includes/dotnet-new.md | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index fb58821478ab7..9aaee52fec261 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -160,7 +160,7 @@ | Provisioning - Cdn | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Provisioning.Cdn/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Provisioning.Cdn-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Cdn_1.0.0-beta.3/sdk/cdn/Azure.Provisioning.Cdn/) | | Provisioning - Cognitive Services | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.CognitiveServices/1.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.CognitiveServices-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CognitiveServices_1.2.0/sdk/provisioning/Azure.Provisioning.CognitiveServices/) | | Provisioning - Communication | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Provisioning.Communication/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Provisioning.Communication-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Communication_1.0.0-beta.5/sdk/communication/Azure.Provisioning.Communication/) | -| Provisioning - Compute | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Compute/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Compute-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Compute_1.0.0-beta.1/sdk/compute/Azure.Provisioning.Compute/) | +| Provisioning - Compute | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Compute/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Compute-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Compute_1.0.0-beta.2/sdk/compute/Azure.Provisioning.Compute/) | | Provisioning - Container Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.ContainerRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerRegistry_1.1.0/sdk/provisioning/Azure.Provisioning.ContainerRegistry/) | | Provisioning - Container Service | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.Provisioning.ContainerService/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerService-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerService_1.0.0-beta.6/sdk/containerservice/Azure.Provisioning.ContainerService/) | | Provisioning - Containerinstance | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.ContainerInstance/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerInstance-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerInstance_1.0.0-beta.1/sdk/containerinstance/Azure.Provisioning.ContainerInstance/) | @@ -168,9 +168,10 @@ | Provisioning - Costmanagement | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.CostManagement/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.CostManagement-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CostManagement_1.0.0-beta.1/sdk/costmanagement/Azure.Provisioning.CostManagement/) | | Provisioning - Deployment | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Deployment/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Deployment-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Deployment_1.0.0-beta.2/sdk/provisioning/Azure.Provisioning.Deployment/) | | Provisioning - Dns | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Dns/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Dns-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Dns_1.0.0-beta.2/sdk/provisioning/Azure.Provisioning.Dns/) | +| Provisioning - Domainregistration | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.DomainRegistration/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.DomainRegistration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.DomainRegistration_1.0.0-beta.1/sdk/domainregistration/Azure.Provisioning.DomainRegistration/) | | Provisioning - Durabletask | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.DurableTask/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.DurableTask-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.DurableTask_1.0.0-beta.1/sdk/durabletask/Azure.Provisioning.DurableTask/) | | Provisioning - Event Grid | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.EventGrid/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.EventGrid-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.EventGrid_1.1.0/sdk/provisioning/Azure.Provisioning.EventGrid/) | -| Provisioning - Event Hubs | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.EventHubs/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.EventHubs-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.EventHubs_1.1.0/sdk/provisioning/Azure.Provisioning.EventHubs/) | +| Provisioning - Event Hubs | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.EventHubs/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.EventHubs/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.EventHubs-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.EventHubs_1.1.0/sdk/provisioning/Azure.Provisioning.EventHubs/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.EventHubs_1.2.0-beta.1/sdk/provisioning/Azure.Provisioning.EventHubs/) | | Provisioning - Frontdoor | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.FrontDoor/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.FrontDoor-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.FrontDoor_1.0.0-beta.2/sdk/frontdoor/Azure.Provisioning.FrontDoor/) | | Provisioning - Key Vault | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.KeyVault/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.KeyVault/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.KeyVault-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.KeyVault_1.1.0/sdk/provisioning/Azure.Provisioning.KeyVault/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.KeyVault_1.2.0-beta.1/sdk/provisioning/Azure.Provisioning.KeyVault/) | | Provisioning - Kubernetes | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.Provisioning.Kubernetes/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Provisioning.Kubernetes-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Kubernetes_1.0.0-beta.4/sdk/hybridkubernetes/Azure.Provisioning.Kubernetes/) | @@ -523,7 +524,7 @@ | Unknown Display Name | NuGet [4.43.0-preview.2](https://www.nuget.org/packages/Azure.Functions.Cli.Workloads.Workers.Python.osx-arm64/4.43.0-preview.2) | | | | Unknown Display Name | NuGet [4.43.0-preview.2](https://www.nuget.org/packages/Azure.Functions.Cli.Workloads.Workers.Python.osx-x64/4.43.0-preview.2) | | | | Unknown Display Name | NuGet [4.43.0-preview.2](https://www.nuget.org/packages/Azure.Functions.Cli.Workloads.Workers.Python.win-x64/4.43.0-preview.2) | | | -| Unknown Display Name | NuGet [0.4.0](https://www.nuget.org/packages/Azure.Functions.Sdk/0.4.0) | | | +| Unknown Display Name | NuGet [0.5.0](https://www.nuget.org/packages/Azure.Functions.Sdk/0.5.0) | | | | Unknown Display Name | NuGet [1.1.1](https://www.nuget.org/packages/Azure.Iot.Operations.ProtocolCompiler/1.1.1) | | | | Unknown Display Name | NuGet [1.0.2](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.QueryPlanInterop.Linux/1.0.2) | | | | Unknown Display Name | NuGet [1.0.2](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.QueryPlanInterop.MacOS/1.0.2) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index a2cd6df8c1f77..94bd89b1065e7 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -173,7 +173,7 @@ | Provisioning - Cdn | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Provisioning.Cdn/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Provisioning.Cdn-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Cdn_1.0.0-beta.3/sdk/cdn/Azure.Provisioning.Cdn/) | | Provisioning - Cognitive Services | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.CognitiveServices/1.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.CognitiveServices-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CognitiveServices_1.2.0/sdk/provisioning/Azure.Provisioning.CognitiveServices/) | | Provisioning - Communication | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Provisioning.Communication/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Provisioning.Communication-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Communication_1.0.0-beta.5/sdk/communication/Azure.Provisioning.Communication/) | -| Provisioning - Compute | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.Compute/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.Compute-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Compute_1.0.0-beta.1/sdk/compute/Azure.Provisioning.Compute/) | +| Provisioning - Compute | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Compute/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Compute-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Compute_1.0.0-beta.2/sdk/compute/Azure.Provisioning.Compute/) | | Provisioning - Container Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.ContainerRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerRegistry_1.1.0/sdk/provisioning/Azure.Provisioning.ContainerRegistry/) | | Provisioning - Container Service | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.Provisioning.ContainerService/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerService-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerService_1.0.0-beta.6/sdk/containerservice/Azure.Provisioning.ContainerService/) | | Provisioning - Containerinstance | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.ContainerInstance/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.ContainerInstance-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.ContainerInstance_1.0.0-beta.1/sdk/containerinstance/Azure.Provisioning.ContainerInstance/) | @@ -181,9 +181,10 @@ | Provisioning - Costmanagement | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.CostManagement/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.CostManagement-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.CostManagement_1.0.0-beta.1/sdk/costmanagement/Azure.Provisioning.CostManagement/) | | Provisioning - Deployment | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Deployment/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Deployment-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Deployment_1.0.0-beta.2/sdk/provisioning/Azure.Provisioning.Deployment/) | | Provisioning - Dns | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.Dns/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.Dns-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Dns_1.0.0-beta.2/sdk/provisioning/Azure.Provisioning.Dns/) | +| Provisioning - Domainregistration | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.DomainRegistration/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.DomainRegistration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.DomainRegistration_1.0.0-beta.1/sdk/domainregistration/Azure.Provisioning.DomainRegistration/) | | Provisioning - Durabletask | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.DurableTask/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.DurableTask-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.DurableTask_1.0.0-beta.1/sdk/durabletask/Azure.Provisioning.DurableTask/) | | Provisioning - Event Grid | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.EventGrid/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.EventGrid-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.EventGrid_1.1.0/sdk/provisioning/Azure.Provisioning.EventGrid/) | -| Provisioning - Event Hubs | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.EventHubs/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.EventHubs-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.EventHubs_1.1.0/sdk/provisioning/Azure.Provisioning.EventHubs/) | +| Provisioning - Event Hubs | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.EventHubs/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.EventHubs/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.EventHubs-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.EventHubs_1.1.0/sdk/provisioning/Azure.Provisioning.EventHubs/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.EventHubs_1.2.0-beta.1/sdk/provisioning/Azure.Provisioning.EventHubs/) | | Provisioning - Frontdoor | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning.FrontDoor/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning.FrontDoor-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.FrontDoor_1.0.0-beta.2/sdk/frontdoor/Azure.Provisioning.FrontDoor/) | | Provisioning - Key Vault | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.KeyVault/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.KeyVault/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.KeyVault-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.KeyVault_1.1.0/sdk/provisioning/Azure.Provisioning.KeyVault/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.KeyVault_1.2.0-beta.1/sdk/provisioning/Azure.Provisioning.KeyVault/) | | Provisioning - Kubernetes | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.Provisioning.Kubernetes/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Provisioning.Kubernetes-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Kubernetes_1.0.0-beta.4/sdk/hybridkubernetes/Azure.Provisioning.Kubernetes/) | From 275a093aff82ea90d106bc0674331e6174d9b347 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Jul 2026 10:35:29 -0700 Subject: [PATCH 2/5] Discourage IncludeAllContentForSelfExtract in single-file docs (#55192) --- docs/core/deploying/single-file/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/deploying/single-file/overview.md b/docs/core/deploying/single-file/overview.md index f57ec1baad00a..6128942b6c5f6 100644 --- a/docs/core/deploying/single-file/overview.md +++ b/docs/core/deploying/single-file/overview.md @@ -160,7 +160,7 @@ Only managed DLLs are bundled with the app into a single executable. When the ap To embed those files for extraction and get one output file, set the property `IncludeNativeLibrariesForSelfExtract` to `true`. -Specifying `IncludeAllContentForSelfExtract` extracts all files, including the managed assemblies, before running the executable. This may be helpful for rare application compatibility problems. +Specifying `IncludeAllContentForSelfExtract` extracts all files, including the managed assemblies, before running the executable. This may be helpful for rare application compatibility problems. This mode is not recommended: it's a .NET Core 3.1 compatibility mode and might be removed in a future release. > [!IMPORTANT] > If extraction is used, the files are extracted to disk before the app starts: From df08d7dbaaa9888b468fe1a137e46734e459b7c4 Mon Sep 17 00:00:00 2001 From: Mitchell Hwang <16830051+mdh1418@users.noreply.github.com> Date: Thu, 30 Jul 2026 14:52:46 -0400 Subject: [PATCH 3/5] [Diagnostics] Add EventPipe Buffer Mode and EventFilter (#54631) * Document EventPipe buffering mode and Event ID filter client APIs Add Microsoft.Diagnostics.NETCore.Client reference for EventPipeBufferingMode, EventPipeProviderEventFilter, the new EventPipeSessionConfiguration and EventPipeProvider overloads and properties, and the UnknownCommandException and InvalidCommandArgumentException types. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Document --buffering-mode for dotnet-gcdump and dotnet-trace dotnet-gcdump collect/report default to non-lossy (Block) with automatic fallback on older runtimes; dotnet-trace collect adds an opt-in --buffering-mode (default Drop). Block requires a .NET 11+ target runtime. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Document non-lossy EventPipe buffering environment variables Add DOTNET_EventPipeBufferingMode and DOTNET_EventPipeOutputStreaming to the EventPipe environment-variable reference, and note the non-lossy opt-in on the circular-buffer guidance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Sync buffering-mode docs to latest diagnostics and runtime changes Remove the --buffering-mode option from dotnet-gcdump (it now always collects non-lossy and falls back to lossy on pre-.NET 11 targets). Replace the dropped UnknownCommandException and InvalidCommandArgumentException with the new BadEncodingException and fix the UnsupportedCommandException base type. Clarify that non-lossy buffering is bounded by buffer capacity and can still drop events under host memory exhaustion or during shutdown, and correct the DOTNET_EventPipeBufferingMode invalid-value and streaming-session behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix punctuation in dotnet-gcdump non-lossy buffering note * Apply suggestions from code review Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/diagnostics/dotnet-gcdump.md | 8 +- docs/core/diagnostics/dotnet-trace.md | 11 +- docs/core/diagnostics/eventpipe.md | 9 +- .../microsoft-diagnostics-netcore-client.md | 126 ++++++++++++++++-- 4 files changed, 140 insertions(+), 14 deletions(-) diff --git a/docs/core/diagnostics/dotnet-gcdump.md b/docs/core/diagnostics/dotnet-gcdump.md index 1cdf928238476..56e18eb4a7fe5 100644 --- a/docs/core/diagnostics/dotnet-gcdump.md +++ b/docs/core/diagnostics/dotnet-gcdump.md @@ -1,8 +1,9 @@ --- title: dotnet-gcdump diagnostic tool - .NET CLI description: Learn how to install and use dotnet-gcdump CLI tool to collect GC (Garbage Collector) dumps of live .NET processes using the .NET EventPipe. -ms.date: 06/03/2025 +ms.date: 07/09/2026 ms.topic: reference +ai-usage: ai-assisted --- # Heap analysis tool (dotnet-gcdump) @@ -46,6 +47,9 @@ The `dotnet-gcdump` global tool collects GC (Garbage Collector) dumps of live .N - Analyzing roots of objects (answering questions like, "what still has a reference to this type?"). - Collecting general statistics about the counts of objects on the heap. +> [!NOTE] +> `dotnet-gcdump` collects with non-lossy buffering so the GC dump is complete on large heaps. Non-lossy buffering requires a .NET 11+ target runtime; on older runtimes, the tool automatically falls back to lossy buffering. Non-lossy buffering is complete only up to the runtime's buffer capacity, not against host memory exhaustion. Under memory pressure, the runtime can still drop events. + ### View the GC dump captured from dotnet-gcdump On Windows, `.gcdump` files can be viewed in [PerfView](https://github.com/microsoft/perfview) for analysis or in Visual Studio. Currently, there is no way of opening a `.gcdump` on non-Windows platforms. @@ -253,7 +257,7 @@ dotnet-gcdump report [-h|--help] [-p|--process-id ] [-t|--report-type ] [--buffersize ] [--clreventlevel ] [--clrevents ] @@ -108,6 +110,13 @@ dotnet-trace collect ### Options +- **`--buffering-mode `** + + Sets how the runtime buffers events. Accepts `0`/`Drop` or `1`/`Block` (case-insensitive), and defaults to `Drop`. + + - `0` / `Drop` (default): the lossy circular buffer. Events are dropped when the buffer overflows. + - `1` / `Block`: non-lossy tracing. The runtime blocks the threads emitting events when the buffer is full instead of dropping events, which produces a complete trace. It's non-lossy only up to the buffer's capacity, not against host memory exhaustion. Under memory pressure, events can still be dropped. `Block` requires a .NET 11+ target runtime and can make the traced application slower because event-emitting threads pause while the buffer stays full. On older runtimes, starting the trace fails; retry with `Drop` (the default). + - **`--buffersize `** Sets the size of the in-memory buffer, in megabytes. Default 256 MB. diff --git a/docs/core/diagnostics/eventpipe.md b/docs/core/diagnostics/eventpipe.md index 7e4b8ce8434c2..2d1f4c94960f4 100644 --- a/docs/core/diagnostics/eventpipe.md +++ b/docs/core/diagnostics/eventpipe.md @@ -1,8 +1,9 @@ --- title: EventPipe Overview description: Learn about EventPipe and how to use it for tracing your .NET applications to diagnose performance issues. -ms.date: 03/19/2026 +ms.date: 07/09/2026 ms.topic: overview +ai-usage: ai-assisted --- # EventPipe @@ -81,6 +82,12 @@ However, you can use the following environment variables to set up an EventPipe > [!NOTE] > If the target process writes events too frequently, it can overflow this buffer and some events might be dropped. If too many events are getting dropped, increase the buffer size to see if the number of dropped events reduces. If the number of dropped events does not decrease with a larger buffer size, it may be due to a slow reader preventing the target process' buffers from being flushed. + > + > As of .NET 11, a streaming session can opt into non-lossy buffering with `DOTNET_EventPipeBufferingMode=1` (or `--buffering-mode Block` in [dotnet-trace](./dotnet-trace.md)) to block the threads emitting events when the buffer is full instead of dropping them. Non-lossy buffering trades application throughput for completeness. It's non-lossy only up to the buffer's capacity, not against host memory exhaustion. Under memory pressure, the runtime can still drop events. + +* `DOTNET_EventPipeBufferingMode`: Available in .NET 11 and later. Controls how the startup EventPipe session's buffer behaves when it fills faster than it's drained. Set it to `0` (default) for the lossy circular buffer that drops events on overflow, or `1` for non-lossy (Block) buffering, which pauses the threads that emit events when the buffer is full instead of dropping them. Only `0` and `1` are valid, and `1` requires a streaming session (see `DOTNET_EventPipeOutputStreaming`); any other value, or `1` for a non-streaming file session, starts no session. + +* `DOTNET_EventPipeOutputStreaming`: Set this to `1` to stream the startup EventPipe session's events continuously instead of buffering them and writing at process exit. A streaming session is required for `DOTNET_EventPipeBufferingMode=1` (non-lossy) to take effect. * `DOTNET_EventPipeProcNumbers`: Set this to `1` to enable capturing processor numbers in EventPipe event headers. The default value is `0`. diff --git a/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md b/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md index 01c03a8f71f60..14cf6b8bc97bf 100644 --- a/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md +++ b/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md @@ -1,10 +1,11 @@ --- title: Microsoft.Diagnostics.NETCore.Client API description: In this article, you'll learn about the Microsoft.Diagnostics.NETCore.Client APIs. -ms.date: 12/08/2025 +ms.date: 07/09/2026 author: tommcdon ms.author: tommcdon ms.topic: reference +ai-usage: ai-assisted --- # Microsoft.Diagnostics.NETCore.Client API @@ -343,6 +344,13 @@ public sealed class EventPipeSessionConfiguration long rundownKeyword, bool requestStackwalk = true); + public EventPipeSessionConfiguration( + IEnumerable providers, + int circularBufferSizeMB, + long rundownKeyword, + bool requestStackwalk, + EventPipeBufferingMode bufferingMode); + public bool RequestRundown { get; } public int CircularBufferSizeInMB { get; } @@ -351,6 +359,8 @@ public sealed class EventPipeSessionConfiguration public long RundownKeyword { get; } + public EventPipeBufferingMode BufferingMode { get; } + public IReadOnlyCollection Providers { get; } } ``` @@ -362,6 +372,9 @@ Represents the configuration for an `EventPipeSession`. * `requestRundown` : If `true`, request rundown events from the runtime. * `requestStackwalk` : If `true`, record a stack trace for every emitted event. * `rundownKeyword` : The keyword mask used for rundown events. +* `bufferingMode` : The [`EventPipeBufferingMode`](#eventpipebufferingmode-enum) for the session. Use `Block` to request non-lossy collection. Passing `Block` requires a .NET 11+ target runtime; on an older runtime, `StartEventPipeSession` throws [`UnsupportedCommandException`](#unsupportedcommandexception). + +The `BufferingMode` property returns the buffering mode for the session. The default value, `Drop`, keeps the runtime's lossy circular buffer. ## EventPipeProvider class @@ -374,6 +387,13 @@ public class EventPipeProvider long keywords = 0, IDictionary arguments = null) + public EventPipeProvider( + string name, + EventLevel eventLevel, + long keywords, + IDictionary arguments, + EventPipeProviderEventFilter eventFilter) + public string Name { get; } public EventLevel EventLevel { get; } @@ -382,6 +402,8 @@ public class EventPipeProvider public IDictionary Arguments { get; } + public EventPipeProviderEventFilter EventFilter { get; } + public override string ToString(); public override bool Equals(object obj); @@ -402,9 +424,16 @@ public EventPipeProvider( EventLevel eventLevel, long keywords = 0, IDictionary arguments = null) + +public EventPipeProvider( + string name, + EventLevel eventLevel, + long keywords, + IDictionary arguments, + EventPipeProviderEventFilter eventFilter) ``` -Creates a new instance of `EventPipeProvider` with the given provider name, , keywords, and arguments. +Creates a new instance of `EventPipeProvider` with the given provider name, , keywords, and arguments. The second overload also takes an [`EventPipeProviderEventFilter`](#eventpipeprovidereventfilter-class) that filters which Event IDs the runtime enables for the provider. When you set an event filter, the session requires a .NET 10+ target runtime. ### Name property @@ -438,10 +467,64 @@ public IDictionary Arguments { get; } Gets an `IDictionary` of key-value pair strings representing optional arguments to be passed to `EventSource` representing the given `EventPipeProvider`. +### EventFilter property + +```csharp +public EventPipeProviderEventFilter EventFilter { get; } +``` + +Gets the optional [`EventPipeProviderEventFilter`](#eventpipeprovidereventfilter-class) that the runtime applies to this provider's Event IDs after the keyword and level filter. When the value is `null`, the runtime enables every Event ID that the keyword and level filter allows. + ### Remarks This class is immutable, because EventPipe does not allow a provider's configuration to be modified during an EventPipe session as of .NET Core 3.1. +## EventPipeProviderEventFilter class + +```csharp +public sealed class EventPipeProviderEventFilter +{ + public EventPipeProviderEventFilter( + bool enable, + IReadOnlyList eventIds); + + public bool Enable { get; } + + public IReadOnlyList EventIds { get; } +} +``` + +Represents an optional per-provider filter on Event IDs. The runtime applies the filter after the keyword and level filter of the associated [`EventPipeProvider`](#eventpipeprovider-class). Event filters require a .NET 10+ target runtime. + +### Constructor + +```csharp +public EventPipeProviderEventFilter( + bool enable, + IReadOnlyList eventIds); +``` + +Creates a new instance of `EventPipeProviderEventFilter`. + +* `enable` : If `true`, `eventIds` is an allow-list and the runtime enables only those Event IDs. If `false`, `eventIds` is a deny-list and the runtime enables every Event ID except those listed. An empty deny-list therefore enables all events. +* `eventIds` : The Event IDs to enable or disable, as determined by `enable`. + +### Enable property + +```csharp +public bool Enable { get; } +``` + +Gets a value that indicates whether [`EventIds`](#eventids-property) is an allow-list (`true`) or a deny-list (`false`). + +### EventIds property + +```csharp +public IReadOnlyList EventIds { get; } +``` + +Gets the list of Event IDs that the filter enables or disables. + ## EventPipeSession class ```csharp @@ -576,22 +659,29 @@ Represents the type of perf map behavior that can be enabled. * `JitDump` : Enable JIT dump perf map output. * `PerfMap` : Enable traditional perf map output. -## Exceptions - -Exceptions that are thrown from the library are of type `DiagnosticsClientException` or a derived type. +## EventPipeBufferingMode enum ```csharp -public class DiagnosticsClientException : Exception +public enum EventPipeBufferingMode +{ + Drop = 0, + Block = 1 +} ``` -### UnsupportedCommandException +Controls how the runtime's per-session event buffer behaves when it fills faster than the session drains it. + +* `Drop` : The runtime default. The session uses a circular buffer that drops events when it overflows, so collection is lossy. +* `Block` : Non-lossy collection. The runtime blocks event producers when the buffer is full instead of dropping events. Use it for collections that must be complete, such as a heap snapshot on a large heap. `Block` is non-lossy only up to the buffer's capacity, not against host memory exhaustion: if the runtime can't allocate the memory it needs to reserve buffer space, or during session shutdown, it drops the event instead of blocking. `Block` requires a .NET 11+ target runtime; on an older runtime, starting the session throws [`UnsupportedCommandException`](#unsupportedcommandexception). + +## Exceptions + +Exceptions that are thrown from the library are of type `DiagnosticsClientException` or a derived type. ```csharp -public class UnsupportedCommandException : DiagnosticsClientException +public class DiagnosticsClientException : Exception ``` -This may be thrown when the command is not supported by either the library or the target process's runtime. - ### UnsupportedProtocolException ```csharp @@ -616,6 +706,14 @@ public class ServerErrorException : DiagnosticsClientException This may be thrown when the runtime responds with an error to a given command. +### UnsupportedCommandException + +```csharp +public class UnsupportedCommandException : ServerErrorException +``` + +This exception is thrown when the command is not supported by either the library or the target process's runtime. + ### ProfilerAlreadyActiveException ```csharp @@ -623,3 +721,11 @@ public class ProfilerAlreadyActiveException : ServerErrorException ``` This exception is thrown when a profiler is already loaded into the target runtime and another attach is attempted. + +### BadEncodingException + +```csharp +public class BadEncodingException : ServerErrorException +``` + +This exception is thrown when the target runtime can't decode the command payload and rejects it. From a well-formed client, it usually means the runtime is too old to understand a newer configured option value, so it rejects the request while parsing. From 471b7b814c4bf71bf65931cecfeb7b2e4bb337ca Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 30 Jul 2026 11:55:04 -0700 Subject: [PATCH 4/5] Move env variables to Validate step in workflow (#55190) --- .github/workflows/docs-verifier.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docs-verifier.yml b/.github/workflows/docs-verifier.yml index c49faee591593..7aebec7f80935 100644 --- a/.github/workflows/docs-verifier.yml +++ b/.github/workflows/docs-verifier.yml @@ -4,10 +4,6 @@ on: pull_request permissions: contents: read -env: - GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - jobs: validate: name: MSDocs build verifier @@ -23,3 +19,6 @@ jobs: - name: Validate uses: dotnet/docs-tools/actions/docs-verifier@1397e452fa0b49e9e52bc2443cd9ec6182a05294 # main + env: + GITHUB_PR_NUMBER: ${{ github.event.pull_request.number }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 6b96e8456f7eb67f7a4df6b25ad2d298fdc0989f Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 30 Jul 2026 12:08:23 -0700 Subject: [PATCH 5/5] Revert "[Diagnostics] Add EventPipe Buffer Mode and EventFilter (#54631)" (#55195) This reverts commit df08d7dbaaa9888b468fe1a137e46734e459b7c4. --- docs/core/diagnostics/dotnet-gcdump.md | 8 +- docs/core/diagnostics/dotnet-trace.md | 11 +- docs/core/diagnostics/eventpipe.md | 9 +- .../microsoft-diagnostics-netcore-client.md | 126 ++---------------- 4 files changed, 14 insertions(+), 140 deletions(-) diff --git a/docs/core/diagnostics/dotnet-gcdump.md b/docs/core/diagnostics/dotnet-gcdump.md index 56e18eb4a7fe5..1cdf928238476 100644 --- a/docs/core/diagnostics/dotnet-gcdump.md +++ b/docs/core/diagnostics/dotnet-gcdump.md @@ -1,9 +1,8 @@ --- title: dotnet-gcdump diagnostic tool - .NET CLI description: Learn how to install and use dotnet-gcdump CLI tool to collect GC (Garbage Collector) dumps of live .NET processes using the .NET EventPipe. -ms.date: 07/09/2026 +ms.date: 06/03/2025 ms.topic: reference -ai-usage: ai-assisted --- # Heap analysis tool (dotnet-gcdump) @@ -47,9 +46,6 @@ The `dotnet-gcdump` global tool collects GC (Garbage Collector) dumps of live .N - Analyzing roots of objects (answering questions like, "what still has a reference to this type?"). - Collecting general statistics about the counts of objects on the heap. -> [!NOTE] -> `dotnet-gcdump` collects with non-lossy buffering so the GC dump is complete on large heaps. Non-lossy buffering requires a .NET 11+ target runtime; on older runtimes, the tool automatically falls back to lossy buffering. Non-lossy buffering is complete only up to the runtime's buffer capacity, not against host memory exhaustion. Under memory pressure, the runtime can still drop events. - ### View the GC dump captured from dotnet-gcdump On Windows, `.gcdump` files can be viewed in [PerfView](https://github.com/microsoft/perfview) for analysis or in Visual Studio. Currently, there is no way of opening a `.gcdump` on non-Windows platforms. @@ -257,7 +253,7 @@ dotnet-gcdump report [-h|--help] [-p|--process-id ] [-t|--report-type ] [--buffersize ] [--clreventlevel ] [--clrevents ] @@ -110,13 +108,6 @@ dotnet-trace collect ### Options -- **`--buffering-mode `** - - Sets how the runtime buffers events. Accepts `0`/`Drop` or `1`/`Block` (case-insensitive), and defaults to `Drop`. - - - `0` / `Drop` (default): the lossy circular buffer. Events are dropped when the buffer overflows. - - `1` / `Block`: non-lossy tracing. The runtime blocks the threads emitting events when the buffer is full instead of dropping events, which produces a complete trace. It's non-lossy only up to the buffer's capacity, not against host memory exhaustion. Under memory pressure, events can still be dropped. `Block` requires a .NET 11+ target runtime and can make the traced application slower because event-emitting threads pause while the buffer stays full. On older runtimes, starting the trace fails; retry with `Drop` (the default). - - **`--buffersize `** Sets the size of the in-memory buffer, in megabytes. Default 256 MB. diff --git a/docs/core/diagnostics/eventpipe.md b/docs/core/diagnostics/eventpipe.md index 2d1f4c94960f4..7e4b8ce8434c2 100644 --- a/docs/core/diagnostics/eventpipe.md +++ b/docs/core/diagnostics/eventpipe.md @@ -1,9 +1,8 @@ --- title: EventPipe Overview description: Learn about EventPipe and how to use it for tracing your .NET applications to diagnose performance issues. -ms.date: 07/09/2026 +ms.date: 03/19/2026 ms.topic: overview -ai-usage: ai-assisted --- # EventPipe @@ -82,12 +81,6 @@ However, you can use the following environment variables to set up an EventPipe > [!NOTE] > If the target process writes events too frequently, it can overflow this buffer and some events might be dropped. If too many events are getting dropped, increase the buffer size to see if the number of dropped events reduces. If the number of dropped events does not decrease with a larger buffer size, it may be due to a slow reader preventing the target process' buffers from being flushed. - > - > As of .NET 11, a streaming session can opt into non-lossy buffering with `DOTNET_EventPipeBufferingMode=1` (or `--buffering-mode Block` in [dotnet-trace](./dotnet-trace.md)) to block the threads emitting events when the buffer is full instead of dropping them. Non-lossy buffering trades application throughput for completeness. It's non-lossy only up to the buffer's capacity, not against host memory exhaustion. Under memory pressure, the runtime can still drop events. - -* `DOTNET_EventPipeBufferingMode`: Available in .NET 11 and later. Controls how the startup EventPipe session's buffer behaves when it fills faster than it's drained. Set it to `0` (default) for the lossy circular buffer that drops events on overflow, or `1` for non-lossy (Block) buffering, which pauses the threads that emit events when the buffer is full instead of dropping them. Only `0` and `1` are valid, and `1` requires a streaming session (see `DOTNET_EventPipeOutputStreaming`); any other value, or `1` for a non-streaming file session, starts no session. - -* `DOTNET_EventPipeOutputStreaming`: Set this to `1` to stream the startup EventPipe session's events continuously instead of buffering them and writing at process exit. A streaming session is required for `DOTNET_EventPipeBufferingMode=1` (non-lossy) to take effect. * `DOTNET_EventPipeProcNumbers`: Set this to `1` to enable capturing processor numbers in EventPipe event headers. The default value is `0`. diff --git a/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md b/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md index 14cf6b8bc97bf..01c03a8f71f60 100644 --- a/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md +++ b/docs/core/diagnostics/microsoft-diagnostics-netcore-client.md @@ -1,11 +1,10 @@ --- title: Microsoft.Diagnostics.NETCore.Client API description: In this article, you'll learn about the Microsoft.Diagnostics.NETCore.Client APIs. -ms.date: 07/09/2026 +ms.date: 12/08/2025 author: tommcdon ms.author: tommcdon ms.topic: reference -ai-usage: ai-assisted --- # Microsoft.Diagnostics.NETCore.Client API @@ -344,13 +343,6 @@ public sealed class EventPipeSessionConfiguration long rundownKeyword, bool requestStackwalk = true); - public EventPipeSessionConfiguration( - IEnumerable providers, - int circularBufferSizeMB, - long rundownKeyword, - bool requestStackwalk, - EventPipeBufferingMode bufferingMode); - public bool RequestRundown { get; } public int CircularBufferSizeInMB { get; } @@ -359,8 +351,6 @@ public sealed class EventPipeSessionConfiguration public long RundownKeyword { get; } - public EventPipeBufferingMode BufferingMode { get; } - public IReadOnlyCollection Providers { get; } } ``` @@ -372,9 +362,6 @@ Represents the configuration for an `EventPipeSession`. * `requestRundown` : If `true`, request rundown events from the runtime. * `requestStackwalk` : If `true`, record a stack trace for every emitted event. * `rundownKeyword` : The keyword mask used for rundown events. -* `bufferingMode` : The [`EventPipeBufferingMode`](#eventpipebufferingmode-enum) for the session. Use `Block` to request non-lossy collection. Passing `Block` requires a .NET 11+ target runtime; on an older runtime, `StartEventPipeSession` throws [`UnsupportedCommandException`](#unsupportedcommandexception). - -The `BufferingMode` property returns the buffering mode for the session. The default value, `Drop`, keeps the runtime's lossy circular buffer. ## EventPipeProvider class @@ -387,13 +374,6 @@ public class EventPipeProvider long keywords = 0, IDictionary arguments = null) - public EventPipeProvider( - string name, - EventLevel eventLevel, - long keywords, - IDictionary arguments, - EventPipeProviderEventFilter eventFilter) - public string Name { get; } public EventLevel EventLevel { get; } @@ -402,8 +382,6 @@ public class EventPipeProvider public IDictionary Arguments { get; } - public EventPipeProviderEventFilter EventFilter { get; } - public override string ToString(); public override bool Equals(object obj); @@ -424,16 +402,9 @@ public EventPipeProvider( EventLevel eventLevel, long keywords = 0, IDictionary arguments = null) - -public EventPipeProvider( - string name, - EventLevel eventLevel, - long keywords, - IDictionary arguments, - EventPipeProviderEventFilter eventFilter) ``` -Creates a new instance of `EventPipeProvider` with the given provider name, , keywords, and arguments. The second overload also takes an [`EventPipeProviderEventFilter`](#eventpipeprovidereventfilter-class) that filters which Event IDs the runtime enables for the provider. When you set an event filter, the session requires a .NET 10+ target runtime. +Creates a new instance of `EventPipeProvider` with the given provider name, , keywords, and arguments. ### Name property @@ -467,64 +438,10 @@ public IDictionary Arguments { get; } Gets an `IDictionary` of key-value pair strings representing optional arguments to be passed to `EventSource` representing the given `EventPipeProvider`. -### EventFilter property - -```csharp -public EventPipeProviderEventFilter EventFilter { get; } -``` - -Gets the optional [`EventPipeProviderEventFilter`](#eventpipeprovidereventfilter-class) that the runtime applies to this provider's Event IDs after the keyword and level filter. When the value is `null`, the runtime enables every Event ID that the keyword and level filter allows. - ### Remarks This class is immutable, because EventPipe does not allow a provider's configuration to be modified during an EventPipe session as of .NET Core 3.1. -## EventPipeProviderEventFilter class - -```csharp -public sealed class EventPipeProviderEventFilter -{ - public EventPipeProviderEventFilter( - bool enable, - IReadOnlyList eventIds); - - public bool Enable { get; } - - public IReadOnlyList EventIds { get; } -} -``` - -Represents an optional per-provider filter on Event IDs. The runtime applies the filter after the keyword and level filter of the associated [`EventPipeProvider`](#eventpipeprovider-class). Event filters require a .NET 10+ target runtime. - -### Constructor - -```csharp -public EventPipeProviderEventFilter( - bool enable, - IReadOnlyList eventIds); -``` - -Creates a new instance of `EventPipeProviderEventFilter`. - -* `enable` : If `true`, `eventIds` is an allow-list and the runtime enables only those Event IDs. If `false`, `eventIds` is a deny-list and the runtime enables every Event ID except those listed. An empty deny-list therefore enables all events. -* `eventIds` : The Event IDs to enable or disable, as determined by `enable`. - -### Enable property - -```csharp -public bool Enable { get; } -``` - -Gets a value that indicates whether [`EventIds`](#eventids-property) is an allow-list (`true`) or a deny-list (`false`). - -### EventIds property - -```csharp -public IReadOnlyList EventIds { get; } -``` - -Gets the list of Event IDs that the filter enables or disables. - ## EventPipeSession class ```csharp @@ -659,21 +576,6 @@ Represents the type of perf map behavior that can be enabled. * `JitDump` : Enable JIT dump perf map output. * `PerfMap` : Enable traditional perf map output. -## EventPipeBufferingMode enum - -```csharp -public enum EventPipeBufferingMode -{ - Drop = 0, - Block = 1 -} -``` - -Controls how the runtime's per-session event buffer behaves when it fills faster than the session drains it. - -* `Drop` : The runtime default. The session uses a circular buffer that drops events when it overflows, so collection is lossy. -* `Block` : Non-lossy collection. The runtime blocks event producers when the buffer is full instead of dropping events. Use it for collections that must be complete, such as a heap snapshot on a large heap. `Block` is non-lossy only up to the buffer's capacity, not against host memory exhaustion: if the runtime can't allocate the memory it needs to reserve buffer space, or during session shutdown, it drops the event instead of blocking. `Block` requires a .NET 11+ target runtime; on an older runtime, starting the session throws [`UnsupportedCommandException`](#unsupportedcommandexception). - ## Exceptions Exceptions that are thrown from the library are of type `DiagnosticsClientException` or a derived type. @@ -682,6 +584,14 @@ Exceptions that are thrown from the library are of type `DiagnosticsClientExcept public class DiagnosticsClientException : Exception ``` +### UnsupportedCommandException + +```csharp +public class UnsupportedCommandException : DiagnosticsClientException +``` + +This may be thrown when the command is not supported by either the library or the target process's runtime. + ### UnsupportedProtocolException ```csharp @@ -706,14 +616,6 @@ public class ServerErrorException : DiagnosticsClientException This may be thrown when the runtime responds with an error to a given command. -### UnsupportedCommandException - -```csharp -public class UnsupportedCommandException : ServerErrorException -``` - -This exception is thrown when the command is not supported by either the library or the target process's runtime. - ### ProfilerAlreadyActiveException ```csharp @@ -721,11 +623,3 @@ public class ProfilerAlreadyActiveException : ServerErrorException ``` This exception is thrown when a profiler is already loaded into the target runtime and another attach is attempted. - -### BadEncodingException - -```csharp -public class BadEncodingException : ServerErrorException -``` - -This exception is thrown when the target runtime can't decode the command payload and rejects it. From a well-formed client, it usually means the runtime is too old to understand a newer configured option value, so it rejects the request while parsing.