Skip to content

Commit f94e0d1

Browse files
authored
Merge pull request #251361 from MicrosoftDocs/repo_sync_working_branch
Confirm merge from repo_sync_working_branch to main to sync with https://github.com/MicrosoftDocs/azure-docs (branch main)
2 parents 2899188 + adf1b3c commit f94e0d1

File tree

7 files changed

+20
-14
lines changed

7 files changed

+20
-14
lines changed

articles/azure-monitor/agents/azure-monitor-agent-transformation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ To complete this procedure, you need:
4242
For information about the KQL operators that transformations support, see [Structure of transformation in Azure Monitor](../essentials/data-collection-transformations-structure.md#kql-limitations).
4343

4444
> [!Note]
45-
> The only columns that are available to apply transfroms against are TimeGenerated and RawData. Other columns are added to the table automatically after the transformation and are not availiable at the time of transformation.
46-
> The _ResourceId column can't be used in the trasnformation.
45+
> The only columns that are available to apply transforms against are TimeGenerated and RawData. Other columns are added to the table automatically after the transformation and are not available at the time of transformation.
46+
> The _ResourceId column can't be used in the transformation.
4747
4848
**Example**
4949

articles/azure-monitor/app/sampling.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,13 +268,15 @@ In Metrics Explorer, rates such as request and exception counts are multiplied b
268268
```
269269

270270
1. **Enable the fixed-rate sampling module.** Add this snippet to [`ApplicationInsights.config`](./configuration-with-applicationinsights-config.md):
271+
272+
In this example, SamplingPercentage is 20, so **20%** of all items will be sampled. Values in Metrics Explorer will be multiplied by (100/20) = **5** to compensate.
271273

272274
```xml
273275
<TelemetryProcessors>
274276
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
275277
<!-- Set a percentage close to 100/N where N is an integer. -->
276278
<!-- E.g. 50 (=100/2), 33.33 (=100/3), 25 (=100/4), 20, 1 (=100/100), 0.1 (=100/1000) -->
277-
<SamplingPercentage>10</SamplingPercentage>
279+
<SamplingPercentage>20</SamplingPercentage>
278280
</Add>
279281
</TelemetryProcessors>
280282
```

articles/defender-for-cloud/faq-defender-for-storage.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ sections:
6161
- question: |
6262
How does Defender for Storage monitor Storage accounts?
6363
answer: |
64-
Defender for storage uses Azure Event Grid to monitor the storage account activity. This is result in creation of an Azure Event Grid System topic of name \<StorageAccountName\>-\<Guid\> in the same resource group as the storage account. It will also create an Event Grid Subscription resource named StorageAntimalwareSubscription.
64+
Defender for storage uses Azure Event Grid to monitor the storage account activity. This is result in creation of an Azure Event Grid System topic with the name \<StorageAccountName\>-\<Guid\> in the same resource group as the storage account. It will also create an Event Grid Subscription resource named StorageAntimalwareSubscription.
6565
6666
6767
additionalContent: |

articles/event-hubs/resource-manager-exceptions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ The following sections provide various exceptions/errors that are surfaced throu
3535
| ---------- | ------------- | ------------- | ----------- | -------------- |
3636
| BadRequest | 40000 | PartitionCount can't be changed for an event hub. | Basic, standard, or premium tier of Azure Event Hubs doesn't support changing partitions. | Create a new event hub with the wanted number of partitions in your basic, standard, or premium tier namespace. Partition scale-out is supported for [dedicated clusters](event-hubs-dedicated-overview.md). |
3737
| BadRequest | 40000 | The value '#' for MessageRetentionInDays isn't valid for the Basic tier. the value can't exceed '1' day(s). | Basic tier Event Hubs namespaces only support message retention of up to 1 day. | If more than one day of message retention is wanted, [create a standard Event Hubs namespace](event-hubs-create.md). |
38+
| BadRequest | 40000 | The event hub can't be disabled. | The Capture feature is enabled for continuous flow of messages. | Disable the Capture feature and then try disabling the event hub. |
3839
| BadRequest | none | The specified name isn't available. | Namespace names must be unique, and the specified name is already taken. | If you're the owner of the existing namespace with the specified name, you can delete it, which will cause data loss. Then, try again with the same name. If the namespace isn't safe to delete (or you aren't the owner), choose another namespace name. |
3940
| BadRequest | none | The specified subscription has reached its quota of namespaces. | Your subscription has reached the [quota](event-hubs-quotas.md) for the number of namespaces it can hold. | Consider deleting unused namespaces in this subscription, creating another subscription, or upgrading to a [dedicated cluster](event-hubs-dedicated-overview.md). |
4041
| BadRequest | none | Can't update a namespace that is secondary | The namespace can't be updated because it's the secondary namespace in a [GeoDR pairing](event-hubs-geo-dr.md). | If appropriate, make the change to the primary namespace in this pairing instead. Otherwise break the GeoDR pairing to make the change. |

articles/healthcare-apis/fhir/how-to-run-a-reindex.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ content-type: application/fhir+json
105105
"parameter": [
106106
{
107107
"name": "targetSearchParameterTypes",
108-
"valueString": "{url of custom search parameter. In case of multiple custom search parameters, url list can be comma seperated.}"
108+
"valueString": "{url of custom search parameter. In case of multiple custom search parameters, url list can be comma separated.}"
109109
}
110110
]
111111

articles/iot-hub-device-update/device-update-ubuntu-agent.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,10 @@ Read the license terms before you use a package. Your installation and use of a
148148
},
149149
```
150150

151+
:::image type="content" source="media/import-update/device-twin-ppr.png" alt-text="Screenshot that shows twin with tag information." lightbox="media/import-update/device-twin-ppr.png":::
152+
153+
_This screenshot shows the section where the tag needs to be added in the twin._
154+
151155
## Import the update
152156

153157
1. Go to [Device Update releases](https://github.com/Azure/iot-hub-device-update/releases) in GitHub and select the **Assets** dropdown list. Download `Tutorial_IoTEdge_PackageUpdate.zip` by selecting it. Extract the contents of the folder to discover a sample APT manifest (sample-1.0.2-aziot-edge-apt-manifest.json) and its corresponding import manifest (sample-1.0.2-aziot-edge-importManifest.json).

articles/postgresql/flexible-server/concepts-connection-pooling-best-practices.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ Although there are different tools for connection pooling, in this section, we d
2929

3030
**PgBouncer** is an efficient connection pooler designed for PostgreSQL, offering the advantage of reducing processing time and optimizing resource usage in managing multiple client connections to one or more databases. **PgBouncer** incorporates three distinct pooling mode for connection rotation:
3131

32-
- **Session pooling:** This method assigns a server connection to the client application for the entire duration of the client's connection. Upon disconnection of the client application, **PgBouncer** promptly returns the server connection back to the pool. This pooling mechanism is the default setting. (Note: It isn't recommended in most of the cases and don't give any performance benefits over classic connections).
33-
- **Transaction pooling:** With transaction pooling, a server connection is dedicated to the client application during a transaction. Once the transaction is successfully completed, **PgBouncer** intelligently releases the server connection, making it available again within the pool. Transaction pooling is the default mode in Flexible server, and it does not support prepared transactions.
32+
- **Session pooling:** This method assigns a server connection to the client application for the entire duration of the client's connection. Upon disconnection of the client application, **PgBouncer** promptly returns the server connection back to the pool. Session pooling mechanism is the default mode in Open Source PgBouncer. See [PgBouncer configuration](https://www.pgbouncer.org/config.html)
33+
- **Transaction pooling:** With transaction pooling, a server connection is dedicated to the client application during a transaction. Once the transaction is successfully completed, **PgBouncer** intelligently releases the server connection, making it available again within the pool. Transaction pooling is the default mode in Azure PostgreSQL Flexible Server's in-built PgBouncer, and it does not support prepared transactions.
3434
- **Statement pooling:** In statement pooling, a server connection is allocated to the client application for each individual statement. Upon the statement's completion, the server connection is promptly returned to the connection pool. It's important to note that multi-statement transactions are not supported in this mode.
3535

3636
The effective utilization of PgBouncer can be categorized into three distinct usage patterns.
@@ -96,29 +96,29 @@ By considering PgBouncer as an AKS sidecar, you can use these advantages to enha
9696

9797
**Limitations:**
9898

99-
- **Connection Performance Issues:** Largehund-scale applications that utilize thousands of pods, each running sidecar PgBouncer, may encounter potential challenges related to database connection exhaustion. This situation can result in performance degradation and service disruptions. Deploying a sidecar PgBouncer for each pod increases the number of concurrent connections to the database server, which can exceed its capacity. As a result, the database may struggle to handle the high volume of incoming connections, may lead to performance issues such as increased response times or even service outages.
99+
- **Connection Performance Issues:** Large-scale applications that utilize thousands of pods, each running sidecar PgBouncer, may encounter potential challenges related to database connection exhaustion. This situation can result in performance degradation and service disruptions. Deploying a sidecar PgBouncer for each pod increases the number of concurrent connections to the database server, which can exceed its capacity. As a result, the database may struggle to handle the high volume of incoming connections, may lead to performance issues such as increased response times or even service outages.
100100
- **Complex Deployment:** The utilization of the sidecar pattern introduces a level of complexity to the deployment process, as it involves running two containers within the same pod. This can potentially complicate troubleshooting and debugging activities, requiring extra effort to identify and resolve issues.
101-
- **Scaling Challenges:** Moreover, it's important to note that the sidecar pattern may not be the ideal choice for applications that demand high scalability. The inclusion of a sidecar container can impose more resource requirements, potentially limiting the number of pods that can be effectively created and managed.
101+
- **Scaling Challenges:** It's important to note that the sidecar pattern may not be the ideal choice for applications that demand high scalability. The inclusion of a sidecar container can impose more resource requirements, potentially limiting the number of pods that can be effectively created and managed.
102102

103103
While considering this sidecar pattern, it's crucial to carefully assess the trade-offs between deployment complexity and scalability requirements to determine the most appropriate approach for your specific application scenario.
104104

105-
## 2. Application independent - centralized PgBouncer deployment
105+
## 2. Application independent - Centralized PgBouncer deployment
106106

107107
When utilizing this approach, PgBouncer is deployed as a centralized service, independent of the application. The PgBouncer service can be deployed either on traditional virtual machines or within a microservices-based architecture as highlighted:
108108

109-
### I. PgBouncer deployed in ubuntu VM
109+
### I. PgBouncer deployed in ubuntu VM behind Azure Load Balancer
110110

111-
**PgBouncer** connection proxy is set up between the application and database layer as shown in the image. Since Azure Database for PostgreSQL is a fully managed platform service, user won't be able to install any external services on DB server. In this case, if your application is running on an Azure VM, you can set up **PgBouncer** on the same VM. If the application is running on a managed service like Azure App Services or Azure Functions, you need to provision a separate Ubuntu VM to run **PgBouncer** proxy.
111+
**PgBouncer** connection proxy is set up between the application and database layer behind a Azure Load Balancer as shown in the image. In this pattern multiple PgBouncer instances are deployed behind a load balancer as a service to mitigate single point of failure.This pattern is also suitable in scenarios where the application is running on a managed service like Azure App Services or Azure Functions and connecting to **PgBouncer** service for easy integration with your existing infrastructure.
112112

113113
Refer [link](https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/steps-to-install-and-setup-pgbouncer-connection-pooling-proxy/ba-p/730555) to install and set up PgBouncer connection pooling proxy with Azure Database for PostgreSQL.
114114

115-
116115
:::image type="content" source="./media/concepts-connection-pooling-best-practices/deploying-vm.png" alt-text="Diagram for App co-location on Vm with Load Balancer.":::
117116

118117
Some of the key benefits & limitations of this deployment method are:
119118

120119
**Benefits:**
121120

121+
- **Removing Single Point of Failure:** Application connectivity may not be affected by the failure of a single PgBouncer VM, as there are several PgBouncer instances behind Azure Load Balancer.
122122
- **Seamless Integration with Managed Services:** If your application is hosted on a managed service platform such as Azure App Services or Azure Functions, deploying PgBouncer on a VM allows for easy integration with your existing infrastructure.
123123
- **Simplified Setup on Azure VM:** If you're already running your application on an Azure VM, setting up PgBouncer on the same VM is straightforward. deploying the PgBouncer in VM ensures that PgBouncer is deployed in close proximity to your application, minimizing network latency and maximizing performance.
124124
- **Non-Intrusive Configuration:** By deploying PgBouncer on a VM, you can avoid modifying server parameters on Azure PostgreSQL. This is useful when you want to configure PgBouncer on a flexible server. For example, changing the SSLMODE parameter to "required" on Azure PostgreSQL might cause certain applications that rely on SSLMODE=FALSE to fail. Deploying PgBouncer on a separate VM allows you to maintain the default server configuration while still using PgBouncer's benefits.
@@ -128,7 +128,6 @@ By considering these benefits, deploying PgBouncer on a VM offers a convenient a
128128

129129
**Limitations:**
130130

131-
- **Single point of failure:** As **PgBouncer** is configured on standalone VM, connection pooling might not work if the VM is unavailable. This may result in errors in application connectivity.
132131
- **Management overhead:** As **PgBouncer** is installed in VM, there might be management overhead to manage multiple configuration files. This makes it difficult to cope up with version upgrades, new releases, and product updates.
133132
- **Feature parity:** If you're migrating from traditional PostgreSQL to Azure PostgreSQL and using **PgBouncer**, there might be some features gaps. For example, lack of md5 support in Azure PostgreSQL.
134133

0 commit comments

Comments
 (0)