Monitor Polyspace Access Performance
You can query Polyspace® Access™ for various metrics related to user activity, background processes, and database usage. You can use these metrics to monitor the health of the Polyspace Access server, identify trends and potential issues, and optimize server performance and reliability.
To query Polyspace Access for the server metrics, use the polyspace/api/monitoring
endpoint. For example, if the Polyspace Access instance runs on a machine with hostname
access-example-server
on port 9443
, use this URL:
http(s)://access-example-server:9443/polyspace/api/monitoring
Server Metrics Format and Description
When you query Polyspace Access for server metrics, the server returns data in a human-readable Prometheus text-based format that you can easily integrate with a server performance monitoring platform. For more on the text-based Prometheus format, see Text-based format.
Sample Polyspace Access Server Response
This table describes the metrics that Polyspace Access returns.
Metric | Description |
---|---|
psaccess_db_size_bytes
| Size numBytes of the Polyspace Access database in
bytes. |
| Number of projects numProjects currently stored in
Polyspace Access. If active="false" the number represents
projects that are waiting for deletion in the
ProjectsWaitingForDeletion folder. Projects in this folder
are visible only to Polyspace Access administrators. |
| Number of runs numRuns currently stored in Polyspace
Access. If active="false" the number represents runs that are
waiting for deletion in the ProjectsWaitingForDeletion folder.
Runs in this folder are visible only to Polyspace Access administrators. |
psaccess_users_connected_total
| Number of users Polyspace counts only unique username logins. If the same user is logged in from two different devices or web browsers, it counts as one user login. |
psaccess_jobs_queued_total{type="upload | review_transfer | download |
project_deletion"} | Number of jobs
|
psaccess_jobs_processing_total{type="upload | review_transfer | download
| project_deletion"} | Number of jobs numJobs that Polyspace Access is
currently processing. See the description of
psaccess_jobs_queued_total for an explanation of the job
type. |
psaccess_jobs_completed_total{type="upload | review_transfer | download
| project_deletion"} | Number of jobs numJobs that Polyspace Access processed
successfully. See the description of psaccess_jobs_queued_total
for an explanation of the job type. |
psaccess_jobs_failed_total{type="upload | review_transfer | download |
project_deletion"} | Number of jobs numJobs that failed to complete. See
the description of psaccess_jobs_queued_total for an explanation
of the job type. |
psaccess_jobs_queued_delay_seconds{type="upload | review_transfer |
download | project_deletion"}
| Age queueAge in seconds of the oldest job in the
queue. See the description of psaccess_jobs_queued_total for an
explanation of the job type. |
psaccess_jobs_processing_delay_seconds{type="upload | review_transfer |
download | project_deletion"}
| Age jobAge in seconds of the oldest job that Polyspace
Access is currently processing. See the description of
psaccess_jobs_queued_total for an explanation of the job
type. |
Create Grafana Dashboard to Monitor Polyspace Access
This example shows how to configure a Prometheus data source to query Polyspace Access for server metrics and visualize the metrics in a Grafana® dashboard.
Prerequisites
A Grafana installation. For example, to run Grafana in Docker container. See Grafana Docker Image.
A Prometheus data source. For example, you can run Prometheus on Docker. See Prometheus Docker container.
Configure Prometheus Data Source
To configure Prometheus to scrape data from a target such as Polyspace Access, you use a YAML file
where you specify the URL of the target, the HTTP endpoint used to query the metrics, and other
parameters. Typically, the file is called prometheus.yml
.
This sample YAML file shows a configuration for a Polyspace Access instance which runs on a
machine with hostname access-example-server
using the default Polyspace Access
port (9443).
Note
This sample configuration disables the validation of the server certificate
(insecure_skip_verify
), which is not recommended in a typical
configuration.
global:
# How frequently to scrape targets by default.
scrape_interval: 15s
# How long until a scrape request times out.
scrape_timeout: 5s
scrape_configs:
- job_name: "polyspace"
tls_config:
insecure_skip_verify: true
metrics_path: '/polyspace/api/monitoring'
scheme: https
static_configs:
- targets: ["access-example-server:9443"]
scrape_config
section to add the
Polyspace Access parameters.After you create or edit your prometheus.yml
file, restart your Prometheus
instance to apply the changes and check that Prometheus is able to scrape the endpoint
polyspace/api/monitoring
. To view the status of scraped target, go to the
/targets
page of your Prometheus server web UI (for example
http://localhost:9090/targets
). If Prometheus is able to scrape the endpoint,
you see something similar to this:
Add Prometheus Data Source and Create Dashboard
To start monitoring your Polyspace Access server, add the Prometheus instance you configured in the previous section as a data source to Grafana. See Add a data source.
You can then create a dashboard to visualize the Polyspace Access server metrics or edit an existing dashboard to monitor Polyspace Access along with other tools. To create a dashboard, see Create a dashboard.
To view additional metrics about Polyspace Access, such as CPU usage or the performance characteristics of the different Polyspace Access docker containers, you can use external tools to export that data and then integrate it in your dashboard. For a list of libraries and server that export data as Prometheus metrics, see Exporters and Integrations.