Vertica Monitoring Extension

Use Case

The Vertica Monitoring Extension collects the stats by querying Vertica DB system tables and reports them to the AppDynamics Controller.

This extension works only with the standalone machine agent.

 

Installation

  1. Download the file VerticaMonitor.zip into <machineagent install dir>/monitors/
  2. Unzip the downloaded file and cd into VerticaMonitor
  3. Open the config.yml file and provide values for host, port, database, user and password. You can also configure system table details for which you want to get the stats.
  4. Restart the Machine Agent.
  5. In the AppDynamics controller, look for events in Custom Metrics|Vertica|

 

Config Files

 

config.yml

ParamDescription
hostVertica host
portVertica port. Default port is 5433
databaseDatabase name you want to connect to
useruser name
passwordpassword
metricPrefixMetric prefix which is shown in the controller. Default is "Custom Metrics|Vertica|"
sysTablesSystem table names for which metrics has to be collected

 

# Vertica Instance
host: "localhost"
port: 5433
database: "vmartdb"
user: "dbadmin"
password: "admin"

metricPrefix:  "Custom Metrics|Vertica|"

#System tables for which stats has to be shown. Supported values are ACTIVE_EVENTS, DISK_STORAGE, HOST_RESOURCES, IO_USAGE,
# NODE_STATES, QUERY_METRICS, RESOURCE_USAGE, SYSTEM_RESOURCE_USAGE, SYSTEM. All other values will be ignored
sysTables: "ACTIVE_EVENTS, DISK_STORAGE, HOST_RESOURCES, IO_USAGE, NODE_STATES, QUERY_METRICS, RESOURCE_USAGE, SYSTEM_RESOURCE_USAGE, SYSTEM"

 

monitor.xml

<monitor>
        <name>VerticaMonitor</name>
        <type>managed</type>
        <description>Vertica DB monitor</description>
        <monitor-configuration></monitor-configuration>
        <monitor-run-task>
                <execution-style>periodic</execution-style>
                <execution-frequency-in-seconds>60</execution-frequency-in-seconds>
                <name>Vertica Monitor Run Task</name>
                <display-name>Vertica Monitor Task</display-name>
                <description>Vertica Monitor Task</description>
                <type>java</type>
                <execution-timeout-in-secs>60</execution-timeout-in-secs>
                <task-arguments>
                    <argument name="config-file" is-required="true" default-value="monitors/VerticaMonitor/config.yml" />
           </task-arguments>
                <java-task>
                    <classpath>vertica-monitoring-extension.jar</classpath>
                    <impl-class>com.appdynamics.monitors.vertica.VerticaMonitor</impl-class>
                </java-task>
        </monitor-run-task>
</monitor>

 

Metrics

Metrics are collected by querying system tables of Vertica. For the complete list of system tables please visit Vertica System Tables

 

Active Events

Metrics related to Active Events

NameDescription
Custom Metrics/Vertica/Active Events/{NODE_NAME}/{EVENT_ID}/event_codeA numeric ID that indicates the type of event
Custom MetricsVertica/Active Events/{NODE_NAME}/{EVENT_ID}/event_posted_count

 

Disk Storage

Metrics related to Disk Storage

NameDescription
Custom Metrics/Vertica/Disk Storage/{NODE_NAME}/{STORAGE_USAGE}/disk_block_size_bytesThe block size of the disk in bytes
Custom Metrics/Vertica/Disk Storage/{NODE_NAME}/{STORAGE_USAGE}/disk_space_free_blocksThe number of free disk blocks available
Custom Metrics/Vertica/Disk Storage/{NODE_NAME}/{STORAGE_USAGE}/disk_space_free_mbThe number of megabytes of free storage available
Custom Metrics/Vertica/Disk Storage/{NODE_NAME}/{STORAGE_USAGE}/disk_space_free_percentThe percentage of free disk space remaining
Custom Metrics/Vertica/Disk Storage/{NODE_NAME}/{STORAGE_USAGE}/disk_space_used_blocksThe number of disk blocks in use
Custom Metrics/Vertica/Disk Storage/{NODE_NAME}/{STORAGE_USAGE}/disk_space_used_mbThe number of megabytes of disk storage in use

 

Host Resources

Provides a snapshot of the node

NameDescription
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/core_file_limit_max_size_bytesThe maximum core file size allowed on the node
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/disk_space_free_mbThe free disk space available, in megabytes, for all storage location file systems
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/disk_space_total_mbThe total free disk space available, in megabytes, for all storage location file systems
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/disk_space_used_mbThe disk space used, in megabytes, for all storage location file systems
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/open_files_limitThe maximum number of files that can be open at one time on the node
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/opened_file_countThe total number of open files on the node
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/opened_nonfile_nonsocket_countThe total number of other file descriptions open in which 'other' could be a directory or FIFO
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/opened_socket_countThe total number of open sockets on the node
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/processor_core_countThe number of processor cores in the system
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/processor_countThe number of system processors
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/threads_limitThe maximum number of threads that can coexist on the node
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/total_buffer_memory_bytesThe amount of physical RAM, in bytes, used for file buffers on the system
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/total_memory_bytesThe total amount of physical RAM, in bytes, available on the system
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/total_memory_cache_bytesThe amount of physical RAM, in bytes, used as cache memory on the system
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/total_memory_free_bytesThe amount of physical RAM, in bytes, left unused by the system
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/total_swap_memory_bytesThe total amount of swap memory available, in bytes, on the system
Custom Metrics/Vertica/Host Resources/{HOST_NAME}/total_swap_free_memory_bytesThe total amount of swap memory free, in bytes, on the system

 

IO Usage

Provides a snapshot of the node

NameDescription
Custom Metrics/Vertica/IO Usage/{NODE_NAME}/read_kbytes_per_secCounter history of the number of bytes read measured in kilobytes per second
Custom Metrics/Vertica/IO Usage/{NODE_NAME}/written_kbytes_per_secCounter history of the number of bytes written measured in kilobytes per second

 

Node State

Monitors node recovery state-change history on the system

NameDescription
Custom Metrics/Vertica/Node State/{NODE_NAME}/node_stateShows the node's state. Can be one of: UP (0), READY (1), UNSAFE (2), SHUTDOWN (3), RECOVERING (4)

 

Query Metrics

Monitors the sessions and queries running on each node

NameDescription
Custom Metrics/Vertica/Query Metrics/{NODE_NAME}/active_system_session_countThe number of active system sessions
Custom Metrics/Vertica/Query Metrics/{NODE_NAME}/active_user_session_countThe number of active user sessions (connections)
Custom Metrics/Vertica/Query Metrics/{NODE_NAME}/executed_query_countThe total number of queries that ran
Custom Metrics/Vertica/Query Metrics/{NODE_NAME}/running_query_countThe number of queries currently running
Custom Metrics/Vertica/Query Metrics/{NODE_NAME}/total_active_session_countThe total number of active user and system sessions
Custom Metrics/Vertica/Query Metrics/{NODE_NAME}/total_session_countThe total number of user and system sessions
Custom Metrics/Vertica/Query Metrics/{NODE_NAME}/total_system_session_countThe number of active system sessions
Custom Metrics/Vertica/Query Metrics/{NODE_NAME}/total_user_session_countThe total number of user sessions

 

Resource Usage

Monitors system resource management on each node

NameDescription
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/active_thread_countThe current number of active threads
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/address_space_requested_kbThe address space requested in kilobytes
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/local_request_countThe cumulative number of local requests
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/memory_requested_kbThe memory requested in kilobytes
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/open_file_handle_countThe current number of open file handles
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/request_countThe cumulative number of requests for threads, file handles, and memory (in kilobytes)
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/ros_row_countThe number of rows in the ROS
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/ros_used_bytesThe size of the ROS in bytes
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/total_row_countThe total number of rows in storage (WOS + ROS)
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/total_used_bytesThe total size of storage (WOS + ROS) in bytes
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/wos_row_countThe number of rows in the WOS
Custom Metrics/Vertica/Resource Usage/{NODE_NAME}/wos_used_bytesThe size of the WOS in bytes

 

System

Monitors the overall state of the database

NameDescription
Custom Metrics/Vertica/System/current_fault_toleranceThe number of node failures the cluster can tolerate before it shuts down automatically
Custom Metrics/Vertica/System/designed_fault_toleranceThe designed or intended K-safety level
Custom Metrics/Vertica/System/node_countThe number of nodes in the cluster
Custom Metrics/Vertica/System/node_down_countThe number of nodes in the cluster that are currently down

 

System Resource Usage

Provides history about system resources, such as memory, CPU, network, disk, I/O

NameDescription
Custom Metrics/Vertica/System Resource Usage/{NODE_NAME}/average_cpu_usage_percentAverage CPU usage in percent of total CPU time (0-100) during the history interval
Custom Metrics/Vertica/System Resource Usage/{NODE_NAME}/average_memory_usage_percentAverage memory usage in percent of total memory (0-100) during the history interval
Custom Metrics/Vertica/System Resource Usage/{NODE_NAME}/io_read_kbytes_per_secondDisk I/O average number of kilobytes read from disk per second during the history interval
Custom Metrics/Vertica/System Resource Usage/{NODE_NAME}/io_written_kbytes_per_secondAverage number of kilobytes written to disk per second during the history interval
Custom Metrics/Vertica/System Resource Usage/{NODE_NAME}/net_rx_kbytes_per_secondAverage number of kilobytes received from network (incoming) per second during the history interval
Custom Metrics/Vertica/System Resource Usage/{NODE_NAME}/net_tx_kbytes_per_secondAverage number of kilobytes transmitting to network (outgoing) per second during the history interval

 

Custom Dashboard

 

 

Contributing

 

Always feel free to fork and contribute any changes directly via GitHub.

 

Support

 

For any support questions, please contact help@appdynamics.com.

 

Version:

1.1.0

Compatibility:

3.7 and above

Last Update:

01/22/2015