Power BI Workspace Metrics
This app provides Power BI users inventory information, metadata, and comprehensive metrics history for up to thirty days.
Get insights into your Power BI environment that you have access to (including relationships and lineage between gateways, data sources, datasets, reports, dashboards, and tiles), the refresh schedule, and metrics related to refresh history. This allows you to identify models that may require optimization by analyzing refresh history, optimize your refresh schedule, and identify assets that may be affected by data sources, etc.
Description
Need insight into your Power BI environment and report on Power BI Workspace Metrics? Need to know the best time slot to schedule your Power BI refresh? Want to know how your Power BI refreshes are performing? The ability to take an inventory of your environment, view refresh schedules, view gateway, data sources, datasets, reports, dashboards, and their lineage as well as the ability to review refresh performance is critical to an efficient, optimized Power BI environment.
This solution, Power BI Workspace Metrics, will be updated regularly, typically in line with Power BI Rest API updates. Make sure you’re running the latest version. The report will have a version displayed and notify you if there is a new version available.
Demo
Ideaboard
Submit ideas for enhancements of the product: https://vizbp.com/powerdax-ideas/
Download the solution
The solution can be downloaded from your account from vizbp.com after purchase.
- On vizbp.com, access the Customer Dashboard.
- On the sidebar menu, select Downloads.
- You will see all of your purchases and the download links for each.
Install the solution
The solution can be downloaded from your account from vizbp.com.
- For using with Power BI Desktop on your local machine, the custom connector (Power BI Workspace Metrics.mez) has to be downloaded and Power BI Desktop configured to allow third-party connectors: https://docs.microsoft.com/en-us/power-bi/desktop-connector-extensibility
Be patient. It takes a few minutes to install and refresh metrics. If the solution shows blank metrics, press F5 to refresh your browser.
Get solution refresh history
To check the last time your Power BI Workspace Metrics solution refreshed, click Settings > Datasets > Power BI Workspace Metrics > Refresh History. The last refresh is shown, or click Refresh history to see scheduled and on demand refreshes.
Monitor workspaces with the solution
Now that you’ve installed the solution, you can see metrics for the workspaces in your organization you are an admin of. The solution provides a detailed metric report.
Dashboard
You can create a customized dashboard that summarizes key metrics for workspaces for which of which you are admin. This can include any of the metrics already in the Power BI Workspace Metrics solution or create your own!
Reports
Reports provide more detailed metrics. To see reports for workspaces for which you are an admin, in Reports, click Power BI Workspace Metrics. Or, from the dashboard, click a metric cell to go to the underlying report. At the bottom of the report, there are twelve tabs: Cover – Provides metadata about the solution including version information, link to the item, item documentation, and a link to submit ideas for enhancement. Content – Provides an overall view of Power BI artifacts and a breakdown by workspace listing. Refresh – Provides detailed metrics on the refresh performance for all datasets of which you are admin. Refresh Today - Provides the same information but filtered for the current day’s performance. Refresh Schedule - Provides detail metrics regarding the refresh schedule distribution. Capacities - Provides detailed metadata regarding the capacities of which you are admin. Dataflows – Is a placeholder tab for when dataflow information is provided via the API. Datasources– Provides detailed metadata around datasources and the datasets utilizing the data sources. Gateways– Provides detailed metadata around gateways, the data sources configured on the gateways, and the datasets utilizing the data sources. Topology - Provides complete lineage of all Power BI datasets. DirectQuery - Provides DirectQuery cache refresh schedules. Administration – Provides Power BI tenant administration configuration metadata. Each tab opens a page where you can filter metrics by capacity and date range. If no filters are selected, the report defaults to show the past week’s metrics for all capacities that are reporting metrics.
Cover Tab
The Cover tab contains documentation of the solution, a product link contact information, version information, and a link to submit feature requests.
Field | Description |
This Version | Currently installed app version. |
Latest Version | Latest version available to download. |
Last Updated | Date and time the product listing was last updated. |
Product Link | Link to the product on vizbp.com. |
Feature Request | Link to submit feature requests to the author of the product to review. |
Content Tab
The Content tab shows an overall count of Power BI artifacts and a breakdown by workspace listing. As well, it shows a breakdown of import vs non-import (service created solutions) Power BI artifacts.
- Tiles of the overall count of Imports, Datasets, Reports, Dashboards, and Members of the Power BI workspaces in which you are an admin.
- Listing of all Workspaces with a count of Imports, Datasets, Reports, Dashboards, and Members of the Power BI workspaces in which you are an admin.
- Listing of Imports of the Power BI workspaces in which you are an admin.
- Listing of non-Imported solutions of the Power BI workspaces in which you are an admin.
All listings can be cross-filtered to show content of specific Workspaces.
Top Tiles
Field | Description |
Workspaces | Number of workspaces of which you are admin. |
Datasets | Number of datasets of which you are admin. |
Reports | Number of reports of which you are admin. |
Dashboards | Number of dashboards of which you are admin. |
Members | Number of members of the workspaces of which you are an admin. |
What content is in each workspace?
Field | Description |
groupName | Name of each workspace of which you are admin. |
Imports | Number of imports in the workspaces of which you are admin. |
Datasets | Number of datasets of which you are admin. |
Reports | Number of reports of which you are admin. |
Dashboards | Number of dashboards of which you are admin. |
Members | Number of members of the workspaces of which you are an admin. |
What are the details about our imported solutions?
Field | Description |
groupName | Name of each Workspace of which you are admin. |
importName | Name of artifact imported. |
reportName | Name of report(s) aligned to the import(s). |
datasetName | Name of dataset(s) aligned to the import(s). |
Imports | Number of imports in the workspaces of which you are admin. |
Datasets | Number of datasets of which you are admin. |
Reports | Number of reports of which you are admin. |
What are the details about our non-imported solutions?
Field | Description |
groupName | Name of each Workspace of which you are admin. |
reportName | Name of report(s) aligned to the import(s). |
datasetName | Name of dataset(s) aligned to the import(s). |
Imports | Number of imports in the workspaces of which you are admin. |
Datasets | Number of datasets of which you are admin. |
Reports | Number of reports of which you are admin. |
Refresh Tab
The Refresh tab shows performance information for all datasets of which you are admin.
- Count of Datasets, Refreshes, and average refresh Duration over the time period selected.
- Listing of all Datasets with a count of Refreshes and average refresh Duration.
- Count of Refreshes by hour.
- Average refresh Duration by hour.
- Average refresh Duration and count of Refreshes by day over the time period selected.
- Average refresh Duration by day of week.
- Count of Refreshes by day of week.
All visuals can be cross-filtered.
Top Tiles
Field | Description |
Datasets Refreshed | Number of dataset(s) of which you are admin that have been refreshed over the time period selected. |
Refreshes | Number of refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Date Slicer
Field | Description |
Date | Relative time period for which to review refresh history and performance of dataset(s) of which you are admin. |
How many refreshes and avg duration over the period selected?
Field | Description |
datasetName | The name of the dataset(s) of which you are admin. |
configuredBy | The owner of the dataset(s) of which you are admin. |
Refreshes | Number of refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. |
How many refreshes were there by hour?
Field | Description |
Hour Number | Hour number converted to the user’s local time zone. |
Refreshes | Number of refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Datasets Refreshed | Number of dataset(s) of which you are admin that have been refreshed over the time period selected. |
What is the average duration by hour?
Field | Description |
Hour Number | Hour number converted to the user’s local time zone. |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Datasets Refreshed | Number of dataset(s) of which you are admin that have been refreshed over the time period selected. |
What is the avg duration and number of refreshes over time?
Field | Description |
startDate | Date of which a refresh was performed. |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Refreshes | Number of refresh(es) for the dataset(s) of which you are admin over the time period selected. |
What is the avg duration by day of week?
Field | Description |
Day Name | Day of week of which a refresh was performed. |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Datasets Refreshed | Number of dataset(s) of which you are admin that have been refreshed over the time period selected. |
How many refreshes were there by day of week?
Field | Description |
Day Name | Day of week of which a refresh was performed. |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Datasets Refreshed | Number of dataset(s) of which you are admin that have been refreshed over the time period selected. |
Refresh Today Tab
The Refresh Today tab shows performance information for all datasets of which you are admin and their refresh performance for the current day.
- Count of Workspaces refreshed, Datasets refreshed, count of Refreshes, average refresh Duration, number of Failures, and current refreshes Running for the current day.
- Count of Refresh by status.
- Count of Refresh by status and owner (owner of the dataset).
- Listing of refresh details including workspace, dataset, owner, start time, end time, duration, and error.
- Datasets that failed refresh but have not had a successful refresh after.
All visuals can be cross-filtered. The refresh failure card can be utilized as a dashboard data alert to notify someone or trigger a Flow.
Top Tiles
Field | Description |
Workspaces Refreshed | Number of workspace(s) of which you are admin that have had a dataset refreshed over the time period selected. |
Datasets Refreshed | Number of dataset(s) of which you are admin that have been refreshed over the time period selected. |
Refreshes | Number of refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Failure (No Success After) | Dataset(s) that had a failed refresh today and have not had a successful refresh after the failed refresh. |
Refreshes | Number of refresh(es) for the dataset(s) of which you are admin over the time period selected. |
What is the status of today’s refreshes?
Field | Description |
status | The status of the refresh performed today on the dataset(s) of which you are admin. |
Refreshes | Number of refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Datasets Refreshed | Number of dataset(s) of which you are admin that have been refreshed over the time period selected. |
How many refreshes ran by configuredBy?
Field | Description |
configuredBy | The owner of the dataset(s) of which you are admin. |
status | The status of the refresh performed today on the dataset(s) of which you are admin. |
Refreshes | Number of refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Datasets Refreshed | Number of dataset(s) of which you are admin that have been refreshed over the time period selected. |
What are the refresh details today?
Field | Description |
groupName | Name of each workspace of which you are admin. |
datasetName | Name of dataset(s) aligned to the import(s). |
configuredBy | The owner of the dataset(s) of which you are admin. |
startTime | The start time of the dataset refresh for those datasets refreshed today of the Power BI workspaces in which you are an admin. |
endTime | The end time of the dataset refresh for those datasets refreshed today of the Power BI workspaces in which you are an admin. |
Duration | The duration of the dataset refresh for those datasets refreshed today of the Power BI workspaces in which you are an admin. |
What datasets have failed a refresh w/o a successful refresh thereafter?
Field | Description |
datasetName | Name of dataset(s) aligned to the import(s). |
groupName | Name of each workspace of which you are admin. |
configuredBy | The owner of the dataset(s) of which you are admin. |
Failure (No Success After) | Dataset(s) that had a failed refresh today and have not had a successful refresh after the failed refresh. |
Refresh Schedule Tab
The Refresh Schedule tab shows the distribution of the refresh schedule for all datasets of which you are admin as well as the number of typically running refreshes by half hour.
- Count of Refreshes scheduled by day of week.
- Average Duration by dataset; total and just successful refreshes over the time period selected.
- Count of scheduled Refreshes and number of Refreshes still running at that time based on average refresh Duration.
- Scatter chart showing average refresh Duration and count of Refresh by dataset.
- Average Duration by source type; total and just successful refreshes over the time period selected.
All visuals can be cross-filtered. The Refreshes Scheduled and Still Running visual can be utilized to pinpoint the optimal time to schedule a new solution or reschedule an existing solution.
How many refreshes are scheduled per day?
Field | Description |
Day Name | Day of week of which a refresh was performed. |
Day | Day of the month of which a refresh was performed. |
Refreshes (Scheduled) | Number of dataset(s) of which you are admin that have a refresh scheduled. |
How many refreshes are scheduled/active by half hour?
Field | Description |
Half Hour | Half hour converted to the user’s local time zone.Refreshes (Scheduled)Number of dataset(s) of which you are admin that have a refresh scheduled. |
Refreshes (Still Running) | Number of dataset(s) of which you are admin that are still running based on the dataset’s average refresh duration. |
Refreshes (Total) | Number of dataset(s) of which you are admin that either have a refresh scheduled or are still running based on the dataset’s average refresh duration. |
Date slicer
Field | Description |
Date | Relative time period for which to review refresh history and performance of dataset(s) of which you are admin. |
What is the avg duration by dataset?
Field | Description |
datasetName | The name of the dataset(s) of which you are admin. |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. ** includes failed refreshes |
Duration (Success) | The average duration in minutes for the successful refresh(es) for the dataset(s) of which you are admin over the time period selected. |
What is the avg duration and # refreshes by dataset?
Field | Description |
datasetName | The name of the dataset(s) of which you are admin. |
Date | Date to analyze refreshes that occurred on that date. |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. ** includes failed refreshes |
Refreshes | Number of refresh(es) for the dataset(s) of which you are admin over the time period selected. |
What is the avg duration by source type?
Field | Description |
datasourceType | The type of datasource(s) utilized by the dataset(s) of which you are admin. |
server | The server(s) aligned to the datasource(s). |
kind | The kind of data source. |
path | The path of the data source (typically used with folder sources). |
Duration | The average duration in minutes for the refresh(es) for the dataset(s) of which you are admin over the time period selected. ** includes failed refreshes |
Duration (Success) | The average duration in minutes for the successful refresh(es) for the dataset(s) of which you are admin over the time period selected. |
Capacities Tab
The Capacities tab shows each capacity of which you are admin and detailed metadata regarding those capacities.
- Count of Capacities, Workspaces, Datasources, b, Reports, Dashboards, and Tiles
- Listing of Capacities.
- Listing of Capacities and their settings.
- Capacity metrics will be added if/when made available via the API.
All visuals can be cross-filtered.
What are our capacities?
Field | Description |
capacityId | The id of the capacity(s) of which you are admin. |
capacityName | The name of the capacity(s) of which you are admin. |
capacityUserAccessRight | The access rights you have on the capacity(s) of which you are admin. |
region | The region the capacity(s) are configured in. |
sku | The sku (sizing) of the capacity(s) of which you are admin. |
state | The current state of the capacity(s) of which you are admin. |
How many artifacts do we have in our environment?
Field | Description |
Capacities | Number of capacities of which you are admin. |
Workspaces | Number of workspaces of which you are admin. |
Datasources | Number of datasources utilized by the datasets of which you are admin. |
Datasets | Number of datasets of which you are admin. |
Reports | Number of reports of which you are admin. |
Dashboards | Number of dashboards of which you are admin. |
Tiles | Number of dashboard tiles of which you are admin. |
What are our capacity workloads?
Field | Description |
capacityId | The id of the capacity(s) of which you are admin. |
capacityName | The name of the capacity(s) of which you are admin. |
capacityUserAccessRight | The access rights you have on the capacity(s) of which you are admin. |
region | The region the capacity(s) are configured in. |
sku | The sku (sizing) of the capacity(s) of which you are admin. |
state | The current state of the capacity(s) of which you are admin. |
workloadName | The name of the workload of the capacity(s) of which you are admin. |
maxMeemoryPercentageSetByUser | The max memory percentage configured for the workload of the capacity(s) of which you are admin. |
state | The state of the capacity workload of the capacity(s) of which you are admin. |
Dataflows Tab
Dataflow information will be added once made available via the API.
Datasources Tab
- Listing of Datasource(s) and their connection information (Database, Server, Kind, and Path).
- Count of Datasource(s), the count of Dataset(s) they are used by, the count of Report(s), and the count of Dashboard(s) utilizing those Dataset(s).
- Listing of reporting artifacts (Workspace(s), Dataset(s), who they are Configured By, Report(s), and Dashboard(s) using the Datasource(s) for a full lineage view.
All visuals can be cross-filtered. This tab allows you to see what reporting artifacts are using each of your Datasource(s).
What datasources are being used?
Field | Description |
datasourceType | The datasource type. |
database | The connection database.serverThe connection server. |
url | The connection url. |
kind | The connection kind. |
path | The connection path. |
connectionString | The datasource connection string. Available only for DirectQuery. |
name | The datasource name. Available only for DirectQuery. |
Datasources | The count of datasource(s) with this configuration of the Power BI workspaces in which you are an admin. |
How many artifacts are using the datasource(s)?
Field | Description |
Datasources | The count of datasource(s) of which you are admin. |
Datasets | The count of dataset(s) using the datasource(s) of which you are admin. |
Reports | The count of report(s) connected to the dataset(s) using the datasource(s) of which you are admin. |
Dashboards | The count of dashboard(s) using the report(s) connected to the dataset(s) using the datasource(s) of which you are admin. |
What reports and datasets are using those datasources?
Field | Description |
groupName | The groupName where the reporting artifacts are located that are using the datasource(s) of which you are admin. |
datasetName | The name of the dataset(s) using the datasource(s) of which you are admin. |
configuredBy | The “owner” of the dataset(s) using the datasource(s) of which you are admin. |
reportName | The name(s) of the report(s) using the datasource(s) of which you are admin. |
dashboardName | The name(s) of the dashboard(s) using the datasource(s) of which you are admin. |
Gateways Tab
- Listing of Gateways, their version, the server installed on, and the gateway contact.
- Count of Datasources configured on the Gateway(s), the count of Datasets using the Datasources configured on the Gateway(s).
- Listing and count of Datasource type and Datasource name by Gateway.
- Listing of Datasets utilizing the Datasource(s) on the Gateway(s).
All visuals can be cross-filtered. This tab allows you to see what Datasource(s) and Dataset(s) are configured for each Gateway.
What gateways am I an admin of?
Field | Description |
gatewayName | The name(s) of the gateway(s) of which you are admin. |
gatewayVersion | The version(s) of the gateway(s) of which you are admin. |
gatewayMachine | The machine(s) on which the gateway(s) of which you are admin are installed. This is the machine the primary gateway is installed on if in a cluster. |
gatewayContact | The contact/owner the gateway(s) of which you are admin. |
How many artifacts are using the gateway(s)?
Field | Description |
Datasources configured on Gateway | The count of datasource(s) configured on the gateway(s) of which you are admin. |
Datasets Used on Gateways | The count of dataset(s) using the datasource(s) configured on the gateway(s) of which you are admin. |
Datasources Used on Gateways | The count of datasource(s) used in the dataset(s) using the datasource(s) configured on the gateway(s) of which you are admin. |
What datasources are configured on the gateway?
Field | Description |
datasourceType | The type of datasource(s) utilized by the dataset(s) of which you are admin. |
datasourceName | The name of the datasource(s) utilized by the dataset(s) of which you are admin. |
gatewayName | The name(s) of the gateway(s) of which you are admin. |
Datasources Used on Gateways | The count of datasource(s) used in the dataset(s) using the datasource(s) configured on the gateway(s) of which you are admin. |
Topology Tab
- Topology listing from Capacity(s) to Workspace(s) to Datasource(s) – Datasource(s) to Gateway(s) – to Dataset(s) to Report(s) to Dashboard(s) to Dashboard Tile(s).
All visuals can be cross-filtered. This tab allows you to see what the lineage between all Power BI artifacts. You can filter a Gateway to see all artifacts aligned to the Gateway. You can filter down from a Capacity to see everything aligned to the Capacity. You can filter up from a Dashboard Tile to see everything aligned to the Dashboard Tile.
Capacities
Field | Description |
capacityName | The name of the capacity(s) of which you are admin. |
region | The region the capacity(s) are configured in. |
sku | The sku (sizing) of the capacity(s) of which you are admin. |
state | The current state of the capacity(s) of which you are admin. |
Capacities | Number of capacities of which you are admin. |
Workspaces
Field | Description |
groupName | Name of each workspace of which you are admin. |
isOnDedicatedCapacity | True/False if workspace is assigned to a Premium Capacity. |
isReadOnly | True/False if workspace is configured as read only (Members can only view Power BI content) vs editable (Members can edit Power BI content). |
Workspaces | Number of workspaces of which you are admin. |
Datasources | Number of datasources utilized by the datasets of which you are admin. |
Gateways
Field | Description |
gatewayName | The name(s) of the gateway(s) of which you are admin. |
gatewayVersion | The version(s) of the gateway(s) of which you are admin. |
gatewayMachine | The machine(s) on which the gateway(s) of which you are admin are installed. This is the machine the primary gateway is installed on if in a cluster. |
type | The gateway type. |
gatewayContact | The contact/owner the gateway(s) of which you are admin. |
Gateways | The number of gateway(s) of which you are admin. |
Gateway Datasources | Number of datasource(s) configured on the gateway(s) of which you are admin. |
Datasets
Field | Description |
datasetName | The name of the dataset(s) of which you are admin. |
configuredBy | The owner of the dataset(s) of which you are admin. |
isOnPremGatewayRequired | Dataset requires an On-premises Data Gateway. |
isRefreshable | Can this dataset be refreshed. |
isEffectiveIdentityRequired | Dataset requires effective identity. |
isEffectiveIdentityRolesRequired | Dataset requires roles. |
addRowsAPIEnabled | Whether dataset allows adding new rows. |
Datasets | Number of dataset(s) of which you are admin. |
Reports | Number of report(s) of which you are admin. |
Reports
Field | Description |
reportName | The name of the report(s) of which you are admin. |
webUrl | The report web url. |
isOwnedByMe | Report is in a workspace you are an admin of. |
Reports | Number of report(s) of which you are admin. |
Dashboards | Number of dashboard(s) of which you are admin aligned to the reports. |
Dashboards
Field | Description |
dashboardName | The name of the dashboard(s) of which you are admin. |
isReadOnly | Dashboard is read only. |
Dashboards | Number of dashboard(s) of which you are admin aligned to the reports. |
Tiles | Number of dashboard tile(s) of which you are admin aligned to the dashboard(s). |
Tiles
Field | Description |
dashboardName | The name of the dashboard(s) of which you are admin. |
reportName | The name of the report(s) of which you are admin. |
datasetName | The name of the dataset(s) of which you are admin. |
tileTitle | The dashboard tile display name. |
tileSubTitle | The dashboard tile sub title name. |
Tiles | Number of dashboard tile(s) of which you are admin aligned to the dashboard(s). |
DirectQuery Tab
- Listing of Datasets configured for DirectQuery.
- Schedules configured for DirectQuery cache refresh.
All visuals can be cross-filtered. This tab allows you to see what datasets are configured for DirectQuery cache refresh. If the frequency shows a value, this is the value in minutes – i.e. refresh every [frequency] minutes.
What groups / datasets are configured to refresh cache?
Field | Description |
groupName | Name of each workspace of which you are admin. |
datasetName | Name of dataset(s) aligned to the import(s). |
DirectQuery Refreshes | The number of refresh(es) configured for DirectQuery sources. |
What are the DirectQuery cache refresh schedules?
Field | Description |
groupName | Name of each workspace of which you are admin. |
datasetName | Name of dataset(s) aligned to the import(s). |
frequency | The refresh frequency in minutes, supported values are 15, 30, 60, 120, and 180. |
days | Days to execute the refresh. |
localTimes | Times to execute the refresh within each day. |
DirectQuery Refreshes | The number of refresh(es) configured for DirectQuery sources. |
Administration Tab
- Administration configuration for Power BI tenant.
All visuals can be cross-filtered. More administration functionality will be added if made available via the API.
How are administration features configured?
Field | Description |
featureName | The feature name. |
featureState | The feature state. |
featureExtendedState | The feature extended state. |
usage | The token generation usage (in %) from the limitation on shared capacity. |
Want to build it yourself?
https://powerdax.com/how-to-analyze-your-power-bi-environment-and-review-solution-performance/
Take a look at the product and see if it would be valuable for you or your organization. It is available on vizbp.com:
https://vizbp.com/downloads/power-bi-workspace-metrics/
While there, take a look at other solutions people like me are making available for free or for purchase. Take a look at becoming a seller yourself and offering your solutions in the marketplace.
https://vizbp.com/sell/
While here, take a look at my other articles related to vizbp.com:
Reviews
There are no reviews yet.