Alteryx Analytics Hub Knowledge Base

Definitive answers from Alteryx Analytics Hub experts.

Monitoring an Alteryx Analytics Hub Environment

DavidHa
Alteryx
Alteryx
Created

Introduction


Alteryx Analytics Hub provides a robust and powerful environment for users to collaborate and share data and analytic assets, schedule and scale workloads of any size, and automate business critical applications, all in a secure and governed environment. An application providing these services must be monitored for responsiveness, uptime, and ongoing performance. This article walks through an approach to monitoring an Alteryx Analytics Hub environment using open source technologies built on Prometheus and Grafana. These are not the only technologies that could be used, but they have been chosen for this example due to their open availability and popularity among DevOps professionals. 

A high-level overview of the components needed for this approach are presented here, with more details in the sections below.
  • Grafana - a popular visualization platform for metrics and dashboards.
  • Prometheus - a time-series database that collects the monitoring data from various endpoints.
  • Windows Metrics Exporter - an application to expose Windows host metrics (CPU, Memory, etc...) as a Prometheus endpoint.
  • Postgres Exporter - an application to expose PostgreSQL database metrics as a Prometheus endpoint. 
  • NSSM - an application to easily build a Windows Service to control another Windows executable. 
 

Analytics Hub Metrics Endpoint

 

An Alteryx Analytics Hub deployment exposes monitoring information via an API endpoint, at /api/v1/metrics. For example:
 

https://localhost/api/v1/metrics 


Available metrics include:
 

  • The number of requests made by type (ex. GET, POST)
  • Paths taken in the application
  • Response Times and HTTP status codes for requests
  • Analytics Hub start time
  • NodeJS CPU and Memory metrics
No manual configuration is needed to enable these metrics, as they are included and enabled with a default installation. 
 

Windows Host Metrics Endpoint

 

The Analytics Hub metrics above provide useful monitoring information of the Analytics Hub application. However, an administrator would likely want to also monitor key performance statistics of the server that Analytics Hub is deployed on, including things such as CPU utilization, Used Memory, Free Memory, and Disk usage. This is available through the Prometheus Community as part of the Windows Exporter project, using Windows Management Instrumentation (WMI). The Windows Exporter application can also show the status of Windows Services, so that they can be monitored to ensure key services are up and healthy. 

If the Analytics Hub deployment has additional Worker machines, the Windows Exporter package should be installed and configured on the primary Analytics Hub machine and all remote Workers. After installing this application, it is recommended to use NSSM to configure it as a Windows Service so that it can be easily managed and configured for automatic startup. When running, Windows Host metrics will be exposed at: 
 

http://localhost:9182/metrics


Postgres Exporter Metrics Endpoint


In addition to monitoring the Analytics Hub application, and the underlying Windows server, an administrator might want to monitor the PostgreSQL database which serves as the Analytics Hub persistence layer. This is easily accomplished with the Postgres Exporter GitHub project. The PostgreSQL metrics display advanced information such as the number of active sessions, transactions, amount of data being fetched and updated, etc... This can be a useful way for an administrator to monitor if the database size is growing or if there is contention. Postgres Exporter requires a configuration file (queries.yaml) which is included in the project. This file defines what statistics from PostgreSQL to monitor, and it can be customized for the advanced user. 

After installing this application, it is recommended to use NSSM to configure it as a Windows Service so that it can be easily managed and configured for automatic startup. When running, PostgreSQL metrics will be exposed at: 
 

http://localhost:9187/metrics
 

Prometheus Configuration


After configuring the above endpoints, the next step is to setup a server to monitor these endpoints using Prometheus. This can be a Windows or Linux server. Prometheus comes with a configuration file, prometheus.yml. This file defines the endpoints that Prometheus will scrape and store in its database. To monitor the endpoints created above, add the below lines to your prometheus.yml file. This will monitor the Analytics Hub, Windows Exporter, and PostgreSQL endpoints that were created earlier. Be sure to edit the configuration to match your environment. 
 
  - job_name: aah-monitoring
    scrape_interval: 10s
    scrape_timeout: 5s
    metrics_path: /api/v1/metrics
    scheme: https
    static_configs:
    # Change the hostname and domain name below to match your Alteryx Analytics Hub URL.
    - targets:
      - analyticshub.companydomain.com
    tls_config:
      insecure_skip_verify: true

  - job_name: wmi-postgres-monitoring
    scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path: /metrics
    scheme: http
    static_configs:
    # Change the hostname and domain name below to match your Alteryx Analytics Hub URL.
    # Leave the ports the same
    # If you have multiple remote Worker machines, add a line for each with port 9182 to monitor the WMI data from each.
    - targets:
      - analyticshub.companydomain.com:9182
      - analyticshub.companydomain.com:9187


After configuring the prometheus.yml file, it is recommended to configure Prometheus to run as a Windows Service using NSSM if installed on Windows.  Once started, the Prometheus user interface is available at:
 

http://localhost:9090

Under the Status menu, click on Targets, and you can see all of the endpoints that Prometheus is configured to monitor, as well as the status of the endpoints (UP or DOWN). When the desired endpoints all display an UP state, move on to configuring the Grafana dashboards. 



Grafana Dashboards


Grafana can also be deployed on a Windows or Linux server, and for simplicity can be installed on the same machine as Prometheus. If installing on Windows, it is again recommended to use NSSM to configure Grafana as a Windows Service for automatic startup. Once up and running, the Grafana user interface is available at:
http://localhost:3000
With Grafana up and running, only three dashboards are needed to monitor each of the endpoints described above. A dashboard could be built to combine all of the information into a single view as well. 

 

Analytics Hub Dashboard


The Analytics Hub Dashboard displays metrics from the Analytics Hub Metrics Endpoint. A sample dashboard is attached and can be modified to fit your needs. This can be used to see which Sites are most accessed, which application paths are visited and the related response times, and even the number of logins and job executions.


 

Windows Host Dashboard


Many Grafana dashboards are available for displaying the Windows Host Metrics from WMI.  In the attached sample, we have also modified the dashboard to report the status of the Alteryx Analytics Hub Windows Services. A sample view of the Windows Host dashboard is below.


 

PostgreSQL Dashboard

 

Grafana provides a downloadable dashboard in JSON format that can be easily imported for viewing Postgres data. If the Postgres Exporter from Prometheus shown above was installed then no additional configuration is needed in the PostgreSQL dashboard.  A sample view of that dashboard is below. 


 

Importing Dashboards in Grafana

 

Grafana makes it easy for users to import dashboards using Grafana JSON files. The Grafana JSON files are a JSON representation of the Grafana dashboard (layout, styles, variables, queries etc.) that are used to import a pre-built dashboard to Grafana. To import the sample Analytics Hub, Windows Host, and PostgreSQL dashboards attached to this article, proceed as follows.

  1. Download the Grafana JSON files included below. 
  2. Navigate to your Grafana instance and login. 
  3. Hover over the plus (+) icon in the navigation bar on the left and select Import. 
  4. Select "Upload JSON file", browse to, and select the Grafana JSON file to import and click Open.
  5. On the Import Options screen:
    1. (Optional) Change the name of the dashboard
    2. Select the Folder for the dashboard to appear in.
    3. Select the prometheus datasource for the dashboard to use.
    4. Click Import to finish the dashboard import process.


Conclusion


This article has shown a strategy for monitoring an Alteryx Analytics Hub environment. Each organization will have different tools and standards, and should adhere to those when developing a monitoring solution. This approach relies on other software and as such, only the Analytics Hub provided metrics (those at endpoint /api/v1/metrics) are supported by Alteryx. The Prometheus scraping and Grafana dashboards are provided as samples and are not supported by Alteryx. If you have other approaches that have worked well, please leave a comment below. 
Attachments
No ratings
Comments
deepika_durvasula
7 - Meteor

Hi David

 

Is there any approach to interface Alteryx with Grafana for monitoring the workflows present in server ?

 

Thanks in advance,

Deepika.