Automic DB Metric Visualization

The Automic DB metric was enabled with v21.0.9++ and cannot be turned off.
A WorkProcess picked at random performes the check hourly.
This test is the same as the one performed during the system's startup and it is represented with U#3533 in the log file.


To use this dashboard do the following:
  • BEFORE importing the zip file, make sure that SQLI variables are allowed (client 0 - UC_SYSTEM_SETTINGS / SQLVAR_INTERNAL = Y).
  • Within the zip file you find the XML import and an additional file for the AWI. That file must be placed in the AUTOINSTALL folder.
  • All other settings needed are checked by the script and prompted, if some need adjustment.
  • To fill the dashboard charts with data, run the script '_AE.DBOPEN.GET.VALUES.FOR.PERF.METRIC.CHARTS'.
    • this script should be scheduled to run hourly 2 minutes after the hour in v21++ and 2 minutes before the hour in v24++.
    • the system will perform the check every full hour sharp in v21 and 5 minutes before every full hour in v24++.
  • the (i) icon can be used on each chart to get detailed information on the values presented.

here are some sample charts from our lab and production systems

What does the Test Perform?


The performance test runs the same four database operations (INSERT / SELECT / ROLLBACK / SELECT) 1000 times and checks how long it took to perform each operation.

These are the SQL's looped 1000 times.
Bind parameter used for insert:


                                                DIVDB_PK = 1
                                                DIVDB_String = std::string    string_check_utf8  = u8"abcxyz_ABCXYZ_\u00E4\u00F6\u00FC_\u00DF_\u00C4\u00D6\u00DC_\u00E7\u0153_\u00C7\u0152_\u6C34\u51E8\u571F_\U0001F606_\U0001F34C_0123456789";
                                                DIVDB_Memo = std::u16string string_check_utf16 = u"abcxyz_ABCXYZ_\u00E4\u00F6\u00FC_\u00DF_\u00C4\u00D6\u00DC_\u00E7\u0153_\u00C7\u0152_\u6C34\u51E8\u571F_\U0001F606_\U0001F34C_0123456789";
                                                DIVDB_Date = 2001.10.20 23:45:58
                                                
 
Looks within a trace:

                                                20241102/104401.005 - U00009909 TRACE: (DB-DATA: divdb_)           0x7ffcbb396ab0 000255
                                                00000000  61626378 797A5F41 42435859 5A5FC3A4  >abcxyz_ABCXYZ_..<
                                                00000010  C3B6C3BC 5FC39F5F C384C396 C39C5FC3  >...._.._......_.<
                                                00000020  A7C5935F C387C592 5FE6B0B4 E587A8E5  >..._...._.......<
                                                00000030  9C9F5FF0 9F98865F F09F8D8C 5F303132  >.._...._...._012<
                                                00000040  33343536 37383900 00000000 00000000  >3456789.........<
                                                00000050  00000000 00000000 00000000 00000000  >................<
                                                000000F0  00000000 00000000 00000000 000000      >...............<
                                                20241102/104401.005 - Length date  :16
                                                20241102/104401.005 - U00009909 TRACE: (DB-DATA: date)           0x7ffcbb396aa0 000016
                                                00000000  D1070A00 14001700 2D003A00 00000000  >........-.:.....<
                                                20241102/104401.005 - Length divd  :100
                                                20241102/104401.005 - U00009909 TRACE: (DB-DATA: divd) 0x7ffcbb396bb0 000256
                                                00000000  61006200 63007800 79007A00 5F004100  >a.b.c.x.y.z._.A.<
                                                00000010  42004300 58005900 5A005F00 E400F600  >B.C.X.Y.Z._.....<
                                                00000020  FC005F00 DF005F00 C400D600 DC005F00  >.._..._......._.<
                                                00000030  E7005301 5F00C700 52015F00 346CE851  >..S._...R._.4l.Q<
                                                00000040  1F575F00 3DD806DE 5F003CD8 4CDF5F00  >.W_.=..._.<.L._.<
                                                00000050  30003100 32003300 34003500 36003700  >0.1.2.3.4.5.6.7.<
                                                00000060  38003900 00000000 00000000 00000000  >8.9.............<
                                                00000070  00000000 00000000 00000000 00000000  >................<
                                                000000F0  00000000 00000000 00000000 00000000  >................<
                                                
 
Test's logical flow:

                                                Start performance check loop. Number of iterations: 1000
                                                cnt = 0
                                                StartTimeMain
                                                while cnt LT 1000
                                                - StartTimeBind
                                                -- BindValues for INSERT
                                                - EndTimeBind
                                                - StartTimeInsert
                                                -- INSERT INTO DIVDB (DIVDB_PK,DIVDB_Memo,DIVDB_String,DIVDB_Date) VALUES(1, ?, ?, ?)
                                                -- UCUDB32 INSR RET 0000 HSTMT: 0x00000001ff0b90 VALUE: 0x00000001ff0b90 ALL: 0.00054 DB: 0.00054 ODBC: 0.00000 UDB: 0.00000
                                                - EndTimeInsert
                                                - StartTimeCloseStatementHandle
                                                -- UCUDB32 CLST RET 0000 HSTMT: 0x00000001ff0b90 VALUE: 0x00000001ff0b90 ALL: 0.00001 DB: 0.00001 ODBC: 0.00000 UDB: 0.00000
                                                - EndTimeCloseStatementHandle
                                                - StartTimeSelect
                                                -- SELECT DIVDB_String, DIVDB_Date, DIVDB_Memo FROM DIVDB where DIVDB_PK = 1
                                                -- UCUDB32 SLCT RET 0000 HSTMT: 0x00000001ff0b90 VALUE: 0x00000001ff0b90 ALL: 0.00024 DB: 0.00024 ODBC: 0.00000 UDB: 0.00000
                                                - EndTimeSelect
                                                - StartTimeFetch
                                                -- UCUDB32 READ RET 0000 HSTMT: 0x00000001ff0b90 VALUE: 0x00000000000001 ALL: 0.00000 DB: 0.00000 ODBC: 0.00000 UDB: 0.00000
                                                - EndTimeFetch
                                                - StartTimeCloseStatementHandle
                                                -- UCUDB32 CLST RET 0000 HSTMT: 0x00000001ff0b90 VALUE: 0x00000000000001 ALL: 0.00001 DB: 0.00001 ODBC: 0.00000 UDB: 0.00000
                                                - EndTimeCloseStatementHandle
                                                - StartTimeRollBack
                                                -- UCUDB32 RBCK RET 0000 HSTMT: 0x00000001ff0b90 VALUE: 0x00000000000001 ALL: 0.00033 DB: 0.00033 ODBC: 0.00000 UDB: 0.00000
                                                - EndTimeRollBack
                                                - StartTimeSelect
                                                -- SELECT DIVDB_String, DIVDB_Date, DIVDB_Memo FROM DIVDB where DIVDB_PK = 1
                                                -- UCUDB32 SLCT RET 0000 HSTMT: 0x00000001ff0b90 VALUE: 0x00000001ff0b90 ALL: 0.00015 DB: 0.00015 ODBC: 0.00000 UDB: 0.00000
                                                - EndTimeSelect
                                                - StartTimeFetch
                                                -- UCUDB32 READ RET 0001 HSTMT: 0x00000001ff0b90 VALUE: 0x00000001ff0b90 ALL: 0.00000 DB: 0.00000 ODBC: 0.00000 UDB: 0.00000
                                                - EndTimeFetch
                                                - StartTimeCloseStatementHandle
                                                -- UCUDB32 CLST RET 0000 HSTMT: 0x00000001ff0b90 VALUE: 0x00000001ff0b90 ALL: 0.00001 DB: 0.00001 ODBC: 0.00000 UDB: 0.00000
                                                - EndTimeCloseStatementHandle
                                                
                                                - cnt = cnt++
                                                
                                                endwhile
                                                EndTimeMain
                                                
 
The result is shown in the LogFile / StandardOut (if ucdbconntest is used). The same is shown every time a c-based CP/WP is started or the hourly build-in check is executed:
U00003533 UCUDB: Check of data source finished: No errors. Performance CPU/DB: '100411155'/'2791 (1000/0.358228 s)'

The value is calculated with:
1000 / (EndTimeMain - StartTimeMain (0,358228)) = DbValue (2791)