diff --git a/alert-policies/vertica/DiskUsed.yml b/alert-policies/vertica/DiskUsed.yml new file mode 100644 index 0000000000..fc828ba1c8 --- /dev/null +++ b/alert-policies/vertica/DiskUsed.yml @@ -0,0 +1,37 @@ +name: Disk Space Used (%) + +description: |+ + This alert is triggered when disk space usage exceeds 90% for 5 minutes. +type: STATIC +nrql: + query: "SELECT latest(disk_space_free_percent) as 'Disk Space Used (%)' FROM VerticaDiskStorage" + +# Function used to aggregate the NRQL query value(s) for comparison to the terms.threshold (Default: SINGLE_VALUE). +valueFunction: SINGLE_VALUE + +# List of Critical and Warning thresholds for the condition. +terms: + - priority: CRITICAL + # Operator used to compare against the threshold. + operator: ABOVE + # Value that triggers a violation. + threshold: 90 + # Time in seconds; 120 - 3600 + thresholdDuration: 300 + # How many data points must be in violation for the duration? + thresholdOccurrences: ALL + + - priority: WARNING + # Operator used to compare against the threshold. + operator: ABOVE + # Value that triggers a violation. + threshold: 85 + # Time in seconds; 120 - 3600 + thresholdDuration: 300 + # How many data points must be in violation for the duration? + thresholdOccurrences: ALL + +# Duration after which a violation automatically closes. +# Time in seconds; 300 - 2592000 (Default: 86400 [1 day]) +violationTimeLimitSeconds: 86400 + diff --git a/dashboards/vertica/vertica.json b/dashboards/vertica/vertica.json new file mode 100644 index 0000000000..a1c9418eeb --- /dev/null +++ b/dashboards/vertica/vertica.json @@ -0,0 +1,712 @@ +{ + "name": "Vertica", + "description": null, + "pages": [ + { + "name": "Vertica", + "description": null, + "widgets": [ + { + "title": "", + "layout": { + "column": 1, + "row": 1, + "width": 2, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "![Logo](https://upload.wikimedia.org/wikipedia/commons/9/9a/Vertica-OT.svg)" + } + }, + { + "title": "Number of Users", + "layout": { + "column": 3, + "row": 1, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT uniqueCount(user_name) as 'users' FROM VerticaUserInformation" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "thresholds": [ + { + "value": 0 + } + ] + } + }, + { + "title": "Number of Assigned Roles", + "layout": { + "column": 5, + "row": 1, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT uniqueCount(assigned_roles) as 'roles' FROM VerticaUserRolesInformation where assigned_roles != ''" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "thresholds": [ + { + "value": 0 + } + ] + } + }, + { + "title": "Number of Queries by User", + "layout": { + "column": 7, + "row": 1, + "width": 3, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT uniqueCount(query) as 'queries' FROM VerticaQueriesByUser" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Number of Long Running Queries", + "layout": { + "column": 10, + "row": 1, + "width": 3, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT uniqueCount(substr) as 'queries' FROM VerticaLongRunningQueries" + } + ], + "platformOptions": { + "ignoreTimeRange": false + }, + "thresholds": [ + { + "alertSeverity": "CRITICAL", + "value": 0 + } + ] + } + }, + { + "title": "", + "layout": { + "column": 1, + "row": 2, + "width": 2, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "**About**\n\nInstrument your application with New Relic - [Add Data](https://one.newrelic.com/catalog-pack-details).\n\nFollow [Vertica documentation](https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/vertica-monitoring-integration/) to instrument Vertica\n\n[Please rate this dashboard](https://docs.google.com/forms/d/e/1FAIpQLSclR38J8WbbB2J1tHnllKUkzWZkJhf4SrJGyavpMd4t82NjnQ/viewform?usp=pp_url&entry.1615922415=Vertica) and let us know how we can improve it for you.\n" + } + }, + { + "title": "Disk Space Used by Tables", + "layout": { + "column": 3, + "row": 3, + "width": 6, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(projection_schema), latest(disk_space_used_gb) as 'Disk Space Used GB' FROM VerticaDiskSpaceUsedByTables FACET anchor_table_name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Disk Space Free %", + "layout": { + "column": 9, + "row": 3, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(disk_space_free_percent) FROM VerticaDiskStorage facet node_name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Disk Space", + "layout": { + "column": 11, + "row": 3, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(disk_space_free_gb) as 'Free GB', latest(disk_space_used_gb) as 'Used GB' FROM VerticaFreeDiskSpace" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Disk Storage Status", + "layout": { + "column": 1, + "row": 5, + "width": 7, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(storage_path), latest(storage_status), latest(storage_usage) FROM VerticaDiskStorage FACET node_name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Long Running Queries Duration", + "layout": { + "column": 8, + "row": 5, + "width": 5, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(query_duration_mins), latest(rows_processed) FROM VerticaLongRunningQueries FACET user_name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Queries by User", + "layout": { + "column": 1, + "row": 7, + "width": 8, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(query_duration_us) as 'Query Duration us', latest(query_type), latest(query_start_epoch) FROM VerticaQueriesByUser FACET query" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Queries Processed Row Count by User", + "layout": { + "column": 9, + "row": 7, + "width": 4, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(processed_row_count) FROM VerticaQueriesByUser FACET query " + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Queries Reserved Extra Memory (bytes)", + "layout": { + "column": 1, + "row": 10, + "width": 12, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.bar" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(reserved_extra_memory_b) FROM VerticaQueriesByUser FACET query" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "User Information", + "layout": { + "column": 1, + "row": 13, + "width": 12, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(is_super_user), latest(resource_pool), latest(memory_cap_kb)as 'Memory Cap KB', latest(temp_space_cap_kb) as 'Temp Space Cap KB', latest(run_time_cap) FROM VerticaUserInformation FACET user_name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "User Sessions", + "layout": { + "column": 1, + "row": 15, + "width": 12, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(client_os_user_name) as 'Client OS User Name', latest(instanceType), latest(is_active), latest(node_name), latest(processorCount), latest(session_id) FROM VerticaUserDetails FACET user_name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "User Roles Information", + "layout": { + "column": 1, + "row": 17, + "width": 5, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(role_id) FROM VerticaUserRolesInformation where assigned_roles != '' facet assigned_roles" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Address Info", + "layout": { + "column": 6, + "row": 17, + "width": 7, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(city), latest(state), latest(zip) FROM VerticaDatabase facet population" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Resource Pool Assignments", + "layout": { + "column": 1, + "row": 19, + "width": 5, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(resource_pool) FROM VerticaResourcePoolAssignments facet user_name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Table Information", + "layout": { + "column": 6, + "row": 19, + "width": 7, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(is_flextable), latest(is_system_table), latest(is_temp_table) from VerticaTableInfo FACET table_name" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Vertica Active Events Code & Problem Descriptions", + "layout": { + "column": 1, + "row": 21, + "width": 12, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(event_code), latest(event_code_description),latest(event_problem_description) FROM VerticaActiveEvents facet event_posted_timestamp" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Vertica Active Events Status", + "layout": { + "column": 1, + "row": 23, + "width": 12, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(event_expiration), latest(event_severity), latest(reporting_node), latest(event_sent_to_channels) FROM VerticaActiveEvents facet event_posted_timestamp" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "License Consumption", + "layout": { + "column": 1, + "row": 25, + "width": 10, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.table" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(GET_COMPLIANCE_STATUS), latest(systemMemoryBytes) FROM VerticaLicenseConsumption" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + }, + { + "title": "Audit", + "layout": { + "column": 11, + "row": 25, + "width": 2, + "height": 2 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.billboard" + }, + "rawConfiguration": { + "facet": { + "showOtherSeries": false + }, + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT latest(AUDIT) as '' FROM VerticaAudit" + } + ], + "platformOptions": { + "ignoreTimeRange": false + } + } + } + ] + }, + { + "name": "Logs", + "description": null, + "widgets": [ + { + "title": "", + "layout": { + "column": 1, + "row": 1, + "width": 12, + "height": 1 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "viz.markdown" + }, + "rawConfiguration": { + "text": "## Logs\n\nVertica provides robust logging capabilities, allowing administrators to track and monitor database, diagnose issues, and ensure smooth data maintenance." + } + }, + { + "title": "Logs (Select your appropriate log variable)", + "layout": { + "column": 1, + "row": 2, + "width": 12, + "height": 3 + }, + "linkedEntityGuids": null, + "visualization": { + "id": "logger.log-table-widget" + }, + "rawConfiguration": { + "nrqlQueries": [ + { + "accountIds": [], + "query": "SELECT message FROM Log where logtype = {{logtype}} LIMIT MAX" + } + ] + } + } + ] + } + ], + "variables": [ + { + "name": "logtype", + "items": null, + "defaultValues": [], + "nrqlQuery": { + "accountIds": [], + "query": "SELECT uniques(logtype) FROM Log since 3 months ago" + }, + "title": "Select your logtype", + "type": "NRQL", + "isMultiSelection": true, + "replacementStrategy": "STRING" + } + ] +} \ No newline at end of file diff --git a/dashboards/vertica/vertica01.png b/dashboards/vertica/vertica01.png new file mode 100644 index 0000000000..5a720449ae Binary files /dev/null and b/dashboards/vertica/vertica01.png differ diff --git a/dashboards/vertica/vertica02.png b/dashboards/vertica/vertica02.png new file mode 100644 index 0000000000..97ccbdec3f Binary files /dev/null and b/dashboards/vertica/vertica02.png differ diff --git a/dashboards/vertica/vertica03.png b/dashboards/vertica/vertica03.png new file mode 100644 index 0000000000..32f973d265 Binary files /dev/null and b/dashboards/vertica/vertica03.png differ diff --git a/dashboards/vertica/vertica04.png b/dashboards/vertica/vertica04.png new file mode 100644 index 0000000000..b8830beafe Binary files /dev/null and b/dashboards/vertica/vertica04.png differ diff --git a/dashboards/vertica/vertica05.png b/dashboards/vertica/vertica05.png new file mode 100644 index 0000000000..5233413933 Binary files /dev/null and b/dashboards/vertica/vertica05.png differ diff --git a/data-sources/vertica/config.yml b/data-sources/vertica/config.yml new file mode 100644 index 0000000000..c08c173613 --- /dev/null +++ b/data-sources/vertica/config.yml @@ -0,0 +1,9 @@ +id: vertica +displayName: Vertica +description: | + Monitor the performance metrics of your Vertica database in real-time with New Relic Vertica. +install: + primary: + link: + url: https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/vertica-monitoring-integration +icon: logo.png diff --git a/data-sources/vertica/logo.png b/data-sources/vertica/logo.png new file mode 100644 index 0000000000..0492545ffb Binary files /dev/null and b/data-sources/vertica/logo.png differ diff --git a/quickstarts/vertica/config.yml b/quickstarts/vertica/config.yml new file mode 100644 index 0000000000..deeddc7dd6 --- /dev/null +++ b/quickstarts/vertica/config.yml @@ -0,0 +1,47 @@ + +slug: vertica +description: | + ## Why monitor Vertica? + Vertica is a high-performance, scalable data warehouse platform that is used by many organizations to store and analyze large datasets. However, like any complex system, Vertica can experience problems that can impact performance and reliability. + Here are the top three reasons why Vertica needs to be monitored: + ### Data skew and segmentation: + Vertica distributes data across multiple nodes, and each node processes a subset of the data. If the data is not distributed evenly across the nodes, it can cause data skew, which can lead to performance problems. Segmentation is another problem that can occur when the data is not distributed evenly across the nodes. Segmentation can cause queries to take longer to run, as they have to wait for all of the nodes to finish processing their portion of the query. + ### Resource utilization: + Vertica is a resource-intensive platform, and it is important to monitor resource utilization to ensure that the system is not overloaded. Resources to monitor include CPU, memory, and disk I/O. If any of these resources are maxed out, it can lead to performance problems. + ### Query performance: + Vertica is designed to handle complex queries on large datasets quickly and efficiently. However, it is important to monitor query performance to ensure that queries are running as expected. If you notice that queries are taking longer to run than usual, it may be a sign of a performance problem. + + ## Comprehensive monitoring quickstart for Vertica + + Vertica Quickstart shows how to monitor a Vertica database and run simple queries to analyze the performance. As modern databases become increasingly complex yet crucial to business operations, it is imperative to continually monitor their performance. Vertica, a high-performance analytics database, provides several performance monitoring methods. You can monitor the activity and health of a Vertica database through log files and system tables. + + ### What’s included in the Vertica quickstart? + + Install this quickstart to get preconfigured observability solutions: + - Includes pre-built alert if the disk usage exceeds 90% + - Informative dashboards (long running queries, disk usage, user informations, sessions and more). + +summary: | + Monitor your Vertica with New Relic infrastructure agent and NRI-Flex configuration. Get real-time insights into Vertica database and performance, including long running queries, queries duration, disk space, table information and more. +icon: logo.png +level: New Relic +authors: + - New Relic +title: Vertica +dashboards: + - vertica +alertPolicies: + - vertica +documentation: + - name: Vertica + description: | + Monitor the performance metrics of your Vertica database in real-time with New Relic Vertica. + url: >- + https://docs.newrelic.com/docs/infrastructure/host-integrations/host-integrations-list/vertica-monitoring-integration +dataSourceIds: + - vertica +keywords: + - vertica + - database + - infrastructure + - opentext diff --git a/quickstarts/vertica/logo.png b/quickstarts/vertica/logo.png new file mode 100644 index 0000000000..0492545ffb Binary files /dev/null and b/quickstarts/vertica/logo.png differ