Azure PostgreSQL Flexible Server Test

Azure Database for PostgreSQL - Flexible Server is a fully managed database service designed to provide more granular control and flexibility over database management functions and configuration settings. The service generally provides more flexibility and server configuration customizations based on user requirements. The flexible server architecture allows users to collocate the database engine with the client tier for lower latency and choose high availability within a single availability zone and across multiple availability zones. Flexible servers also provide better cost optimization controls with the ability to stop/start your server and a burstable compute tier ideal for workloads that don't need full compute capacity continuously.

Though PostgreSQL database on Azure comes with all these advantages, It is also essential to keep track of the day-to-day performance of the database server to maintain the performance, reliability, and availability of your server and applications. This can be achieved only by monitoring the database operations and ensuring that the performance is not compromised as data size grows. By continuously monitoring the resource usage and database operations can help you to troubleshoot and optimize your workload. Through this process, make sure that the resources assigned to the database can handle the application workload. If the database is hitting resource limits, consider identifying and optimizing the top resource-consuming queries, or adding more resources by upgrading the service tier. Azure PostgreSQL Flexible Server Test helps administrators in this regard.

This test auto-discovers the flexible server instance of Azure Database for PostgreSQL and reports the CPU usage, memory utilization, network traffic, database connections, and storage of the target server. These measures can inturn help you to proactively identify high workload on the target server, that caused high resource utilization and more number of failed connections. In addition, this test also notifies the administrators on low data read and write rate. These values are an indication of read and write latency that can lead to slow request processing. Hence, using this test, administrators can identify CPU, memory and I/O resource contentions and any latency issues or connection failures in the PostgreSQL database server.

Target of the Test: A PostgreSQL database server on Azure

Agent deploying the test: A remote agent

Output of the test: One set of results for the target server being monitored.

Configurable parameters for the test
Parameters Description

Test Period

How often should the test be executed.

Host

The host for which the test is to be configured.

Port

  • The port on which the server is listening.
  • Subscription ID

    Specify the GUID which uniquely identifies the Microsoft Azure Subscription to be monitored. To know the ID that maps to the target subscription, do the following:

    1. Login to the Microsoft Azure Portal.

    2. When the portal opens, click on the Subscriptions option (as indicated by Figure 1).

      Figure 1 : Clicking on the Subscriptions option

    3. Figure 2 that appears next will list all the subscriptions that have been configured for the target Azure AD tenant. Locate the subscription that is being monitored in the list, and check the value displayed for that subscription in the Subscription ID column.

      Figure 2 : Determining the Subscription ID

    4. Copy the Subscription ID in Figure 2 to the text box corresponding to the SUBSCRIPTION ID parameter in the test configuration page.

    Tenant ID

    Specify the Directory ID of the Azure AD tenant to which the target subscription belongs. To know how to determine the Directory ID, refer to Configuring the eG Agent to Monitor a Microsoft Azure Subscription Using Azure ARM REST API

    Client ID, Client Password, and Confirm Password

    To connect to the target subscription, the eG agent requires an Access token in the form of an Application ID and the client secret value. For this purpose, you should register a new application with the Azure AD tenant. To know how to create such an application and determine its Application ID and client secret, refer to Configuring the eG Agent to Monitor a Microsoft Azure Subscription Using Azure ARM REST API. Specify the Application ID of the created Application in the Client ID text box and the client secret value in the Client Password text box. Confirm the Client Password by retyping it in the Confirm Password text box.

    Resource Groups Name

    Specify the name of the resource group the target server belongs to in this text box.

    DD Frequency

    Refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against DD frequency.

    Detailed Diagnosis

    To make diagnosis more efficient and accurate, the eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

    The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

    • The eG manager license should allow the detailed diagnosis capability
    • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
    Measures made by the test:
    Measurement Description Measurement Unit Interpretation

    Server status

    Indicates the current status of the target database server.

     

    The values reported by this measure and its numeric equivalents are mentioned in the table below:

    Numeric Value Measure Value
    1 Ready
    2 Starting
    3 Stopping
    4 Updating
    5 Disabled
    6 Dropping
    7 Stopped
    0 Unknown

    Note:

    By default, this measure reports the Measure Values listed in the table above to indicate the current status of the target database server.

    The detailed diagnosis of this measure, lists the location of the database server, Backup retention days, Geo redundant backup, Public network access, SKU name, and SKU Tier.

    Total databases

    Indicates the total number of databases on the target server.

    Number

    The detailed diagnosis of this measure shows the database name.

    Active connections

    Indicates the number of active connections on the target server.

    Number

     

    Failed connections

    Indicates the number of failed connections on the target server.

    Number

    Failed connections can occur for the following reasons:

    • Firewall settings

    • Connection time-out

    • Incorrect login information

    • Maximum limit reached on some Azure Database for PostgreSQL resources

    • Issues with the infrastructure of the service

    • Maintenance being performed in the service

    • The compute allocation of the server is changed by scaling the number of vCores or moving to a different service tier

    Succeeded connections

    Indicates the number of succeeded connections on the target server.

    Number

     

    CPU credits consumed

    Indicates the number of CPU credits consumed by the target server.

    Number

     

    CPU credits remaining

    Indicates the number of CPU credits still unused or credits available to burst on the target server.

    Number

     

    CPU utilization

    Indicates the percentage of CPU utilized to process all the tasks on the target server.

    Percent

    This measure shed light on to the workload of your Azure Database for PostgreSQL - Flexible Server and Azure PostgreSQL process. High CPU percent indicates that the database server has more workload than it can handle.

    Maximum used transaction IDs

    Indicates the maximum number of transaction IDs in use on the target server.

    Number

     

    Memory utilization

    Indicates the percentage of memory utilized by the target server.

    Percent

    This measure indicates the memory utilization from both database workload and other Azure PostgreSQL processes.

    Network traffic out

    Indicates the total amount of outgoing network traffic on the target server.

    MB

    This metric includes traffic from your database and from Azure PostgreSQL features like monitoring, logs etc.

    Network traffic in

    Indicates the total amount of incoming network traffic on the target server.

    MB

    This metric includes traffic to your database and to Azure PostgreSQL features like monitoring, logs etc.

    Outstanding I/O operations to the data disk

    Indicates the number of outstanding I/O operations to the data disk of the target server.

    Number

    If the value of this measure keeps increasing steadily and significantly for a database instance, it could indicate that the database instance is latent, and is unable to process I/O requests quickly.

    The value of this measure therefore should be low at all times.

    Total IOPS

    Indicates the number of I/O operations to disk per second on the target server.

    Number

     

    Data disk read IOPS

    Indicates the number of data disk I/O read operations per second on the target server.

    Number

     

    Data read rate from data disk

    Indicates the rate at which data was read from the data disk on the target server.

    KB/sec

    Ideally, the value of this measure should be high. A steady decrease in this value could indicate a read latency. This measure helps to identify if the server is slow in servicing read requests.

    Data disk write IOPS

    Indicates the rate at which data is written to the data disk on the target server.

    Number

     

    Data write rate from data disk

    Indicates the number of data disk I/O write operations per second on the target server.

    KB/sec

    Ideally, the value of this measure should be high. A steady decrease in this value could indicate a write latency. This measure helps to identify if the server is slow in servicing write requests.

    Backup storage used

    Indicates the amount of backup storage used by this server.

    MB

    This measure indicates the sum of storage that's consumed by all the full backups, differential backups, and log backups that are retained based on the backup retention period that's set for the server. The frequency of the backups is service managed. For geo-redundant storage, backup storage usage is twice the usage for locally redundant storage.

    Total storage

    Indicates the maximum amount of storage available for this server.

    MB

     

    Storage free

    Indicates the amount of storage free on the target server.

    MB

    A high value is desired for this measure.

    Storage utilization

    Indicates the percentage of storage utilized by the target server.

    Percent

    The storage that's used by the service can include database files, transaction logs, and server logs.

    If the value of Storage utilization measure is close to 100 percent is an indication of storage bottleneck.

    If the value of Storage used measure is near to Total storage measure then it implies that the server is running out of storage space.

    Storage used

    Indicates the amount of storage currently in use on the target server.

    MB

    Transaction log storage used

    Indicates the amount of storage space that's used by the transaction logs on the target server.

    MB