Monitoring Multiple Instances
This document has been created based on the SQL Server Monitoring V2. For the SQL Server monitoring V1 document, see the following.
Home > Select Project > Dashboard > Monitoring Multiple Instances
While you can monitor only one agent (instance) in Monitoring a Database Instance, Monitoring Multiple Instances allows you to monitor and manage multiple agents (instances).
You can compare and analyze key performance metrics occurring in each instance at a glance. You can effectively perform monitoring by aggregating data such as the number of agents running, the sum of all active sessions, and the number of transactions. Users can easily check the changes in metric values over time and high performance metrics for each instance through graph charts.
Additionally, users can see the longest-lasting active sessions, which can be used as a basis for diagnosing and resolving the system performance bottlenecks.
If you select an agent to compare in Dashboard > Instance List, and then select Multi view, the Monitoring Multiple Instances menu appears.
Viewing the past data
The dashboard basically provides the real-time monitoring feature but the past data can be viewed using the time selector at the top of the screen. In the time selector, select and then set the following time. It updates the data in widgets placed on the dashboard based on the set time.
For more information on how to use the time selector, see the following.
Checking the agent
Checking the agent connection status
On the upper left of the screen, the right area of the time selector provides information that allows you to check the status of agents connected to the project. This allows you to immediately check whether the target application server is running.
-
Total: Number of all agents connected to the project
-
Active: Number of active agents
-
Inactive: Number of inactive agents
-
: Can display or hide inactive agents.
Agent-based monitoring
By default, the dashboard displays the metrics collected from all agents in charts and you can also view the data by agent. Select one or more agents under the time selector. The data of the widgets on the dashboard is updated with the metrics of the selected agent(s).
To select all agents again while one or more agents is selected, deselect them or select Total.
Editing a dashboard widget
The widgets on the dashboard can be adjusted to the desired size and placed in the desired positions. You can also delete unnecessary widgets or add them again.
Resizing a widget
Click and hold the mouse on the element at the lower right of the widget, and then drag it to the desired size. Grids with a uniform horizontal-to-vertical ratio appear and the size of the widget can be adjusted in each grid.
Moving a widget
When you move the mouse cursor to the top of the widget, the cursor shape changes to . At this time, you can move the widget by dragging with your left mouse button and move to the desired position.
Deleting a widget
Right-click on a widget to delete. If you select Delete, the widget is deleted from the dashboard.
Adding a widget
Move the mouse cursor to an empty space on the dashboard and then right-click on it. Select a widget to add from the pop-up menu. Place the widget to the desired position and then resize it.
-
For more information about the widgets that can be placed on the dashboard, see the following.
-
In addition to the metrics provided by default on the dashboard, you can add the desired metrics. For more information about custom widgets, see the following.
Custom widget
The custom widget feature allows users to add their own metrics in addition to the metrics provided by default on the dashboard. If you have metrics to continuously monitor on the dashboard in addition to the metrics provided by default, use the custom widget feature.
Add
-
Right-click an empty space on the dashboard.
-
On the pop-up menu, select Add Custom Widgets.
-
If Custom Widget is created on the dashboard, select Select indicator.
-
When the Add Custom Widgets window appears on the right of the screen, enter the widget name in Title.
-
In the metrics list at the bottom of the screen, select the button on the upper right of the metric to add.
-
After the metric has been changed, select Save.
-
You can add up to four metrics. To add metrics, select .
-
Ti change the metric, select a different metric in the metrics list. If you select , the metric is added.
-
If you do not enter the widget title, it is saved as a custom widget.
Selecting the chart type
In chart type of the Add Custom Widgets window, you can select the following types.
-
Series: Time series chart that displays the metric changes over time.
-
Equalizer: Bar graph chart that can compare the performance for multiple metrics. By visually displaying various metrics on one screen, you can easily see the overall performance status.
-
Pie: Pie chart useful for checking the composition ratio for multiple metrics relative to the whole.
-
Text: It displays the figures for the metrics in text.
Selecting the data merging method
In Merge target of the Add Custom Widgets window, you can select the way to display metrics collected from agents.
-
Sum: It sums up the metric values collected from multiple agents and displays them as a single value. This option is useful for displaying the overall total by merging data from multiple agents.
-
Avg: It averages the metric values collected from multiple agents and displays them as a single value. This option is useful for checking the average performance or status of all agents.
-
Max: By selecting the largest value among the metric values collected from multiple agents, it displays a single value. This option is useful for identifying the highest performance consumption or worst performance cases among agents.
-
No Merge: It displays the metrics for each agent.
The available merge method may differ depending on the chart type.
Changing a metric
You can change or add metrics for the metrics added to the custom widget.
-
Select on the upper right of the custom widget added on the dashboard.
-
When the Add Custom Widgets window appears on the right of the screen, select a metric to change.
-
Select a metric to change from the metric list at the bottom of the screen. To add a metric, select on the upper right of the metric to add.
-
After the metric has been changed, select Save.
The features of the icon buttons in the list for added or changed metrics are as follows:
-
: You can exclude the metric from the custom widget.
-
: You can set the alert for the metric. When the button is selected, the Alert > Event Configuration appears. For more information about the Metrics event setting, see the following.
Using the widget options
The icons displayed on the widget function as follows:
-
: You can see the features and information for major widgets. (multilingual support planned)
-
or : You can enlarge or reduce the range of the vertical axis.
-
: You can view the widget's data on a wider screen.
-
: A detail window appears where you can search the data of the widgets separately by agent.
The provided options may differ depending on the widget.
Setting presets
You can save and load the settings and layouts for widgets on the dashboard. You can create a new preset by adjusting its size and placing it on the desired position.
Default: It is a preset consisting of key DB metrics and XOS metrics.
The default preset (Default) cannot be changed.
Creating a new preset
-
Place the widgets in the desired format on the dashboard. You can also resize and place only the widgets to be frequently checked.
-
On the upper right of the screen, select .
-
Enter a new preset name.
To save the selected agent data, select Include agent selection history.
-
Select Save.
You can see the newly saved preset from the preset list.
-
If any changes are made to the newly created preset, save the preset again. Select and then save the preset with the same name. Any changes are overwritten in the existing preset.
-
If you go to another menu without saving changes on the dashboard, the changes are not saved.
-
Presets are saved on a project basis and can be shared with other users.
Deleting presets
If you have unused presets, you can delete them from the preset list. Select on the right of the item to delete from the preset list.
The Default preset cannot be deleted.
Learning about the main widgets
The types of widgets that can be placed on the dashboard are as follows.
XOS widgets
-
[XOS] CPU
You can see the CPU usages for each agent in real time.
-
[XOS] Memory
You can see the memory usages for each agent in real time.
-
[XOS] Disk Usage
Displays the disk utilizations, free sizes, and total sizes for each agent.
-
: The Disk usage details pop-up window appears. You can check the chart that displays the disk usage by time zone. You can check the data by instance. By selecting Size, Free, or Used, you can see the total size, remaining size, and size in use.
-
: You can expand the table on the widget to a wider screen.
TipIf there is no data displayed, add the following settings to the xos.conf file.
xos.conf# Off if the disk usage is 0; unit: second
disk_usage_interval=60 -
Database widgets
The provided widgets allow you to check the status of various system resources, such as CPU, memory, and disk I/O, as key metrics for database performance analysis.
-
Active Sessions
It visually displays the numbers of active sessions over time in a time series chart. This widget traces and graphs the numbers of sessions running in the database over time. It is useful for visually checking the session usage patterns and load.
-
Lock Wait Sessions
It visually displays the numbers of lock waiting sessions over time in a time series chart. This widget traces the numbers of sessions in lock waiting state in the database over time and displays it on the graph in real time.
-
Long Active Session Count
It provides information about active sessions running on the database for long time. A chart appears for information aggregated by time zone with grouped by the session execution time. It can identify long-running sessions with performance issues or resource leaks in the database, or classify the sessions based on the execution time to visually display which sessions stay active for long time.
It appears in blue for less than 3 seconds, green for 3 seconds or more that is less than 10, orange for 10 seconds or more that is less than 15, and red for 15 seconds or more.
-
Long Waiting Session Count
It provides information about the long-term latency of the sessions holding or waiting for locks in the database. By combining lock information and active session information, you can trace long-term latencies for queued sessions. It monitors the sessions that are holding locks or waiting for long time. You can visually see which sessions are holding locks or waiting for long time.
It appears in blue for less than 5 seconds, green for 5 seconds or more that is less than 10, orange for 10 seconds or more that is less than 60, and red for 60 seconds or more.
-
SQL Elapse Map
Displays a real-time chart for the elapsed times of running queries. If you drag a specific part of the chart, the Query List appears. You can enlarge or reduce the range of the vertical axis by selecting or .
NoteThe execution times of queries are calculated after collecting active sessions. Therefore, depending on the active session collection cycle, there may be a margin of error. See the following figure. The execution times of SQL queries that have ended within the collection cycle are not calculated. A shorter collection cycle may decrease the margin of error, but considering the database load, it is typically set to 5 seconds. It is useful for monitoring long-running queries. The same is true for the data in SQL statistics.
-
Cache Hit Ratio (Buffer Manager.Buffer cache hit ratio)
It is the percentage of pages that SQL Server found in the memory buffer pool without reading data from disk. A higher value indicates better performance, while a lower value may indicate insufficient memory capacity or buffer pool management issues. Typically, it is recommended to maintain this value at 90% or more.
-
Page Life Expectancy (Buffer Manager.Page life expectancy)
It displays the average time in seconds that data pages remain in the buffer pool. The longer the data stays in the buffer pool, the more it is read from memory, reducing the disk I/O and improving the performance. If this value is lower, it indicates that the memory is insufficient or the workload is increased, and the recommended value is 300 seconds (5 minutes) or more. If it is consistently low, you have to consider adding memory.
-
Full Scans/sec
It is the number of tables or index scans performed per second. A high value may indicate the need for query optimization or appropriate index designing, because full scan is less efficient than index scan that reads only the required data. Frequent full scans may cause increased CPU usage and decreased performance.
-
Page Lookups/sec (Buffer Manager.Page lookups/sec)
It is the number of requests to find pages in the buffer pool. A higher value indicates that more data is being processed, possibly indicating large query executions or table scans. If the value is unusually high, check for missing indexes and poor query design. It may be linked to increased CPU usage.
-
Page Reads/sec (Buffer Manager.Page reads/sec)
It is the number of pages per second physically read from disk across all databases. A high value may result in high disk I/O, which may cause performance degradation. Consider increasing the data cache size or reviewing query tuning and index optimization for improvement. Actual read operations on the disk can be costly, so caution is required.
-
Page Writes/sec (Buffer Manager.Page writes/sec)
It is the number of database pages physically written to disk per second. If write operations are frequent, it may be due to a high transaction load or bulk data input. If you have a lot of data write operations, you may experience I/O bottlenecks. Accordingly, consider splitting transactions, improving disk performance, and adjusting the log file size.
Session Table widget
You can view real-time active sessions and lock trees in the Session Table widget at the bottom of the screen.
-
Active sessions: You can view active sessions and queries.
-
If you select a session running, the Session detail window appears. You can see the details for the selected session. For more information, see the following.
-
If you select an item in the rightmost query column in the table, the SQL details window appears. You can see the full text and plan information for the selected query. For more information, see the following.
-
-
Lock tree
You can see the lock session information, and holder and waiter information in real time. For more information about the table columns, see the following.
In the table list, the text colors are changed black → orange → Red, which means that the performance of the session is getting slower.
Checking the session information details
If you select a session in the Active sessions tab, the Session detail window appears. You can see the information details about the selected session.
-
The session information is viewed in real time by default. If you select in the time selector, you can stop a real-time view and see the data based on the paused time. To refresh data while pausing a real-time view, select .
-
Kill Session: You can stop the selected session. If the Session kill window appears, enter the password (Parameter Key) and then select Apply.
NoteThis feature is only available in real-time viewing mode.
- Session Info: You can see the basic information of the selected session and the information details including the status.
-
Stat: It provides various performance metrics and statistical information for the selected session. It includes the type and number of tasks performed in the session, resource usage, and more.
-
Request SQL / Plan: You can see the SQL query statements and plans of the selected session. For more information, see the following.
See query details
To check the SQL query information of the executing session, select the query (or sql_text) column in the Active sessions section. The SQL details window appears. You can check the SQL query statements and plan information.
- View SQL Statistics: You can go to the SQL statistics menu where you can check statistical information related to the SQL query statement.
-
Default Bind: You can bind the part set as a variable in the query sentence to the default value.
-
Reset Bind: You can release the bound default value and check the variable.
-
Formatting: You can improve readability by applying indentation and formatting to a SQL query statement.
- Plan: To check plan information, enter DB Name, User Name, and Password, and then select .
Filtering the table data
-
Select on the upper right of the table.
-
Select a column header and a condition in the table.
-
Enter a desired value in the Enter conditions field.
-
Select Save.
Setting the table columns
You can hide the table header columns or add any of them. You can also change the column order. Select .
-
After configuration, select Confirm to apply the settings in the table.
-
In the search bar, enter text to search the desired columns. Only the columns that meet the entered text are displayed.
-
Images may differ depending on the product, project, or menu.
Adding columns
From the list, select the items to add as table header columns. To select all items, select Select All.
Deleting columns
From the list, unselect the columns to delete. Alternatively, select on the right of the item to delete from the list.
Changing the column order
Drag an item to reposition from the list, and then move it to the desired position.
Initializing the configuration
To cancel all changes and reset them, select Initialized.
Column information guide
For more information about columns, see the link.
- Active session
- Lock tree
- Process information
Item | Description |
---|---|
application | Name of the application that created the session. |
blocking_session_id | ID of the session that is blocking the current session. |
client | Name or IP address of the client that created the session. |
command | SQL command on which the session is running. (SELECT, INSERT, UPDATE, DELETE) |
completion_time | Time when the SQL operation is expected to finish. |
cpu_time | Amount of CPU time (milliseconds) used in the session. |
cpu_usage | It is the CPU utilization used in the session. |
db | Name of the database to which the session is connected. |
elapsed_time | Elapsed time (milliseconds) since the session started. |
granted_query_memory | Amount of memory (pages) allocated for query execution. |
host | Name of the client host that created the session. |
id | It is the unique ID to identify the session. |
instance | Agent or instance name. |
isolation | Transaction isolation level of the current session. |
last_request_start_time | Time when the last request in the session started. |
last_wait_type | Last type that the session waited for. |
login_time | Time when the session logged into SQL Server. |
logical_reads | Number of logical reads that occurred in the session. |
memory_usage | Amount of memory the session uses. |
object | Name of the database object referenced by the running SQL statement. |
objectid | ID of the object running in the session. |
percent_complete | Completion rate of the executing command. |
plan_handle | Handle that identifies the SQL plan. |
query | Entire text of the SQL statement running in the session. |
query_hash | Hash value of the SQL statement running in the session. |
query_param | Parameter value of the SQL statement running in the session. |
reads | Number of physical reads that occurred in the session. |
row_count | Number of rows processed in the session. |
sql_handle | It is the unique identifier of the SQL statement. |
status | Current state of the session. e.g. running , suspended , etc. |
time | Task operation time. |
user | Name of the user connected to SQL Server. |
wait_resource | Resource the session is waiting on. |
wait_time | Time (milliseconds) that the session has been waiting. |
wait_type | Type of wait the session is waiting on. |
writes | Number of physical writes that occurred in the session. |
Item | Description |
---|---|
application | Name of the application that created the session. |
client | Name or IP address of the client that created the session. |
db | Name of the database to which the session is connected. |
elapsed_time | Elapsed time (milliseconds) since the session started. It is used to measure how much time has passed since a lock occurred. |
host | Name of the client host that created the session. |
id | Unique ID for the locked session. |
instance | Agent or instance name. |
last_wait_type | Last type that the session waited for. |
row_count | Number of rows processed in the session. |
query | Entire text of the SQL statement running in the session. |
query_param | Parameter value of the SQL statement running in the session. |
status | Current status of the session. For example, there are running , suspended , sleeping , and such which indicate whether the session is active or waiting. |
user | Name of the user connected to SQL Server. |
wait_resource | It indicates the resource the session is waiting for. |
wait_time | Time (milliseconds) that the session has been waiting. |
wait_type | Type of wait the session is in. For example, it includes information such as lock wait or IO wait. |
The following items are the metrics collected if the XOS agent has been installed.
Item | Description |
---|---|
cputime | CPU usage time |
cpuusage | CPU Utilization |
elapse | Elapsed time of CPU usage |
vsize | Virtual memory size (Kb) |
rss | Resident Set Size (RSS) that is the number of physical pages associated with the process. |
state | Process status |
ioread | Actual time spent reading the block (milliseconds) |
iowrite | Actual time spent writing the block (milliseconds) |
pss | Process specific memory usage + Percentage of shared memory occupied by one process |
uid | user id |
cmd | Executing command |
longcmd | Full path of cmd |
WhaTap basically stores the client-related information.
Downloading the view list
You can download the current Session Table list in CSV format. Select on the upper right of the Session Table section.
The naming format of the downloaded file is as follows:
-
Active sessions: activeSession_HH_MM_SS.csv
-
Lock tree: lockTree_HH_MM_SS.csv
Viewing in a new window
You can see the Session Table list on a new wider screen. Select on the upper right of the Session Table section.