ProjectWise Performance Report

Hello everyone,

For those of you at the conference, this was the dashboard I showed in my presentation and for those not at the conference, this is a dashboard on performance monitoring inside of ProjectWise using PowerShell.  Please find the attached documents to getting started with setting up performance monitoring on your system.  There is a PowerShell script that needs to be run on some kind of scheduled task at the various locations you want to test, the template for the PowerBi report and a setup document to help you link the results from your script with PowerBi.  For any questions or discussion please post to this thread.  Enjoy!

Thanks,

Marty

UPDATE March 16, 2020

Change log
- Now supports WSG metrics, activated with the -IncludeWSGData switch (requires PWPS_WSG to be installed if activated)
- Added more verbose logging
- Added Environment table and WSG table to output
- Updated the call to get currently connected users (should perform better)
- Now only clears files created by the script from the working directory (was previously clearing everything)
Notes
- If you do not want WSG data returned you do not need to activate the switch, or change your current script in any way.
- If you do with to collect WSG data please remember to install PWPS_WSG the same way you install PWPS_DAB
- A new datatable is returned for Environment data, which will be added to the output dataset
- No breaking changes have been made.

ProjectWise_Performance_Report_1.0.7zProjectWise_Performance_Report_Example_2.0.zip ProjectWise_Performance_Dashboard_1.0.zip

Parents Reply Children
  • I have successfully implemented the reporting and dashboard using SQLite database – it was easier than expected.
    I am getting the following error for the environment attribute: anyone seeing similar behavior?

  • We need the actual command line.  Please upgrade to the latest version of PWPS_DAB.

    Mark Weisman | Bentley Systems

  • i am running version 23.0.4.0 of PWPS_DAB.

    Running this Powershell script:

    #region Module Import
    Import-Module PWPS_DAB -Verbose
    $PWPS_DABVersion = (Get-Module -Name PWPS_DAB | Where-Object ModuleType -eq 'Binary').Version.ToString()
    Import-Module "C:\Program Files\WindowsPowerShell\Modules\pwps_dab\$PWPS_DABVersion\HelperFunctions.psm1" -Verbose
    #endregion
    
    #region variables
    $Datasource = 'test-pw.vd.dk:PWSAND1'
    #endregion 
    
    #region Return Metrics
    $PWPerformanceReportVariables = @{
        Connection = "VD LAN";
        Location = $ENV:VD_LOKALITET;
        ConnectingViaCache = "False"
        Datasource = $Datasource
        OutputType = "DataTable"
        TestParentPath = "PWPerfReport"
        TestFileSizeInMB = 5
        EnvironmentTableName = "ENV_Dokument"
        EnvironmentName = "Dokument"
        EnvironmentColumnName = "TITEL"
    }
    $PerformanceDataset = Get-PWPerformanceReportData @PWPerformanceReportVariables -UseBentleyIMS -Verbose

    throws this error - which is strange as it first fails to find it, and afterwards fail to create it, because it already exists:

    VERBOSE: Building ProjectWise test environment...
    VERBOSE: Environment Name: Dokument
    VERBOSE: Environment Table Name: ENV_Dokument
    VERBOSE: Environment Column Name: TITEL
    WARNING: Error processing SQL Select statement 'SELECT e.o_envname, t.o_tabname, c.column_name from
     dms_env e LEFT JOIN dms_tabs t on e.o_tabno = t.o_tabno LEFT JOIN INFORMATION_SCHEMA.COLUMNS c on 
    t.o_tabname = c.TABLE_NAME WHERE e.o_envname = 'Dokument' AND t.o_tabname = 'ENV_Dokument' and c.co
    lumn_name = 'TITEL''
    VERBOSE: Checking for environment :Dokument'...
    WARNING: Specified environment not found! Creating environment...
    New-PWEnvironment : Environment 'Dokument' already exists.
    At C:\Program Files\WindowsPowerShell\Modules\pwps_dab\23.0.4.0\HelperFunctions.psm1:4189 char:13
    +             New-PWEnvironment @NewPWEnvironment -Verbose | Out-Null
    +             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (Dokument:String) [New-PWEnvironment], Exception
        + FullyQualifiedErrorId : Environment already exists.,PWPS_DAB.NewPWEnvironment

    Running this Powershell script to verify, that the environment exists:

    $Environments = Get-PWEnvironments
    $Environments | Where-Object {$_.Name -eq 'Dokument' -and $_.TableName -eq 'ENV_Dokument' -and $_.AttributeNames -contains 'TITEL'}

    Returns the Environment:

    PS C:\Users\thbn> $Environments = Get-PWEnvironments
    $Environments | Where-Object {$_.Name -eq 'Dokument' -and $_.TableName -eq 'ENV_Dokument' -and $_.AttributeNames -contains 'TITEL'}
    
    
    ID             : 123
    Name           : Dokument
    TableID        : 23
    TableName      : ENV_Dokument
    AttributeCount : 56
    AttributeNames : {VERSION1, A_ATTRNO, FIRMA, VEJDIREKTORATETOVERSKRIFT...}

  • Try running it without specifying the EnvironmentTableName, EnvironmentName, and EnvironmentColumnName. These are not required and it appears the specified environment already exists.

  • I have tried that - it tries to create a new Test Environment, if the variables is not defined.
    It fails generating the new Environment (user has administrative rights).