/
Check-in-check-out Test Report (Ramsons) [ECS]

Check-in-check-out Test Report (Ramsons) [ECS]


Test status: PASSED

Overview In progress

  • Regression testing of Check-In/Check-Out (CI/CO) fixed load tests on okapi based environment in Ramsons ECS release.
  • The purposes of CI/CO testing:
    • To define response times of transaction controllers for Check-In and Check-Out
    • To define the response times for requests that take longer than 100 milliseconds

    • To find any trends for resource utilization and recommend improvements
    • To check how system behaves over extended period during longevity test
    • Compare results (current and previous)

Summary

  • Common results:
  • Tests #1, #2, #3, #4
  • Test #5
  • Comparison with Quesnelia results:
    • CI/CO response times degradation (Tests #1, #2, #3, #4): 
      • Test,#vUsersCheck-Out Controller (CO)Check-In Controller (CI)
        1

        220 

        330 

        475 

    • CI/CO response times (test #5 - longevity test):
      • 30 vUsers - 13% improved in CO  and 8% degraded in CI flow.

Resources

  • CPU utilization
  • Memory consumption
  • RDS CPU utilization average
  • CPU (User) usage by broker

Recommendations & Jiras

  • mod-serials-management-b affect DB connection growth 200 connection in average. Disabling this module do not affect response times or error rate but significantly decrease DB connection number.

Test Runs 

The following table contains  tests configuration information

Test #

vUsersRamp-up, sec

Duration, sec 

1

8802700
2202002700
3303002700
4757502700
53030086400

Results

Errors:

  • Error messages: 

Response time

The table contains results of Check-in, Check-out tests in Ramsons release. 

Test #1, #2, #3, #4

 Graph (Response times) Test #1


 Graph (Response times) Test #2


 Graph (Response times) Test #3


 Graph (Response times) Test #4



8 vUsers  (test #1)20 vUsers  (test #2)30 vUsers  (test #3)75 vUsers  (test #4)
Requests

Response Times (ms)

 Response Times (ms) Response Times (ms) Response Times (ms)
Label#Samples95th pctAverage#Samples95th pctAverage#Samples95th pctAverage#Samples95th pctAverage
Check-Out Controller171314501153260513271123238012781120729018231637
Check-In Controller1295838590194370655918047375565499872646
POST_circulation/check-out-by-barcode (Submit_barcode_checkout)1712503340260445032423814113207285589400
POST_circulation/check-in-by-barcode (Submit_barcode_checkin)1297452298193938627417963832695509441285

GET_circulation/loans (Submit_patron_barcode)
1715256192260323818823802321887282378243
GET_circulation/loans (Submit_barcode_checkout)1712263191260423518923862471907289383242
GET_inventory/items (Submit_barcode_checkout)








7283299136

Test #5

 Graph (Response times) Test #5


 30 vUsers Longevity test


Requests
Samples, Response Times (ms)
Label#Samples95th pctAverage
Check-Out Controller5532913111095
Check-In Controller41677621493
POST_circulation/check-out-by-barcode (Submit_barcode_checkout)55327394312
POST_circulation/check-in-by-barcode (Submit_barcode_checkin)41678310216
GET_circulation/loans (Submit_patron_barcode)55329226184
GET_circulation/loans (Submit_barcode_checkout)55327227185
GET_inventory/items (Submit_barcode_checkout)553297454

Comparisons

This table has comparison between average values of response times of Ramsons and Quesnelia releases


8 vUsers   (test #1)20 vUsers   (test #2)30 vUsers   (test #3)75 vUsers   (test #4)
RequestsResponse Times, milliseconds

QuesneliaRamsons

QuesneliaRamsons

QuesneliaRamsons

QuesneliaRamsons

LabelAverageDelta,msDifference,%AverageDelta,msDifference,%AverageDelta,msDifference,%AverageDelta,msDifference,%
Check-Out Controller910115324326.70%893112323025.76%899112022124.58%1176163746139.20%
Check-In Controller47659011423.95%44155911826.76%43555612127.82%54664610018.32%

Comparison of longevity test

30 vUsers Longevity  (test #5)
Response Times, milliseconds

QuesneliaRamsons

AverageAverageDelta,msDifference,%
12581095-163-12.96%
458493357.64%


API requests where response times >= 100 milliseconds

API

75 vUsers  Ramsons

Average, ms

POST_circulation/check-out-by-barcode (Submit_barcode_checkout)400
POST_circulation/check-in-by-barcode (Submit_barcode_checkin)285
GET_circulation/loans (Submit_patron_barcode)243
GET_circulation/loans (Submit_barcode_checkout)242
GET_inventory/items (Submit_barcode_checkout)136

Resources Utilization

CPU Utilization

During 45 minute tests CPU utilized mostly during high load (75 vUsers) by okapi - 84%, mod-authtoken spiked every 3 minutes from 5 to 30%, mod-inventory-storage - 23%, mod-inventory - 17%, mod-pubsub - 17%, nginx-okapi - 10%, mod-circulation - 10%, mod-circulation-storage - 3%

During longevity CPU utilized mostly by okapi - 37%, mod-authtoken spiked every 3 minutes from 5 to 20%, mod-inventory - 12%, mod-pubsub - 11%, mod-circulation - 5%, mod-circulation-storage - 3%

 CPU utilization by modules
CPU8 vUsersCPU20 vUsersCPU30 vUsersCPU75 vUsersCPU30 vUsers Longevity
mod-pubsub-b3.14okapi-b4.8okapi-b6.65nginx-okapi12.94okapi-b5.61
okapi-b2.19mod-pubsub-b3.48mod-pubsub-b3.6okapi-b11.85mod-pubsub-b3.61
mod-inventory-b1.34mod-inventory-storage-b1.73mod-inventory-storage-b2.34mod-inventory-storage-b5.65mod-inventory-b2.08
mod-inventory-storage-b0.82mod-inventory-b1.62mod-inventory-b1.71mod-pubsub-b4.15mod-inventory-storage-b2.01
mod-users-b0.42mod-authtoken-b0.86mod-circulation-b1.16mod-circulation-b2.36mod-circulation-b1.06
mod-authtoken-b0.42mod-users-b0.86mod-users-b1.12mod-authtoken-b2.3mod-users-b0.96
mod-circulation-b0.4mod-circulation-b0.82mod-authtoken-b1.1mod-inventory-b2.11nginx-okapi0.89
mod-search-b0.38nginx-okapi0.74nginx-okapi1.08mod-users-b2.04mod-authtoken-b0.86
mod-source-record-storage-b0.37mod-circulation-storage-b0.66mod-circulation-storage-b0.83mod-circulation-storage-b1.6mod-circulation-storage-b0.78
mod-circulation-storage-b0.35mod-configuration-b0.42mod-configuration-b0.62mod-configuration-b1.04mod-configuration-b0.54
nginx-okapi0.32mod-search-b0.38mod-search-b0.57mod-feesfines-b0.95mod-search-b0.42
mod-configuration-b0.23mod-source-record-storage-b0.38mod-feesfines-b0.42mod-search-b0.62mod-feesfines-b0.36
mod-source-record-manager-b0.16mod-feesfines-b0.3mod-source-record-storage-b0.37pub-okapi0.59mod-source-record-storage-b0.32
mod-feesfines-b0.14pub-okapi0.17pub-okapi0.25mod-source-record-storage-b0.38pub-okapi0.2
mod-quick-marc-b0.12mod-source-record-manager-b0.15mod-dcb-b0.16mod-patron-blocks-b0.23mod-source-record-manager-b0.17
mod-dcb-b0.12mod-dcb-b0.13mod-source-record-manager-b0.15mod-source-record-manager-b0.15mod-quick-marc-b0.13
mod-entities-links-b0.1mod-patron-blocks-b0.11mod-patron-blocks-b0.12mod-dcb-b0.14mod-dcb-b0.13
mod-patron-blocks-b0.07mod-quick-marc-b0.11mod-quick-marc-b0.11mod-quick-marc-b0.11mod-entities-links-b0.12
pub-okapi0.07mod-entities-links-b0.1mod-entities-links-b0.1mod-entities-links-b0.1mod-patron-blocks-b0.12
mod-oa-b0.04mod-users-bl-b0.05mod-users-bl-b0.04mod-patron-b0.05mod-data-import-b0.04
mod-di-converter-storage-b0.04mod-oa-b0.04mod-oa-b0.04mod-users-bl-b0.04mod-users-bl-b0.04
mod-data-import-b0.04mod-data-import-b0.04mod-patron-b0.04mod-oa-b0.04mod-di-converter-storage-b0.04
mod-users-bl-b0.04mod-di-converter-storage-b0.04mod-data-import-b0.04mod-data-import-b0.04mod-oa-b0.04
mod-patron-b0.04mod-patron-b0.04mod-di-converter-storage-b0.04mod-di-converter-storage-b0.04edge-patron-b0.03
edge-patron-b0.03edge-patron-b0.03edge-patron-b0.04edge-patron-b0.04mod-patron-b0.03
pub-edge0pub-edge0pub-edge0pub-edge0pub-edge0

Tests #1, #2, #3, #4

After applying CPU parameter = 0 in container revisions we can see a relative resource utilization by modules only


Test #5


Memory Consumption

Tests #1, #2, #3, #4 and test #5 

 Memory usage by modules

Tests #1, #2, #3, #4



Test #5



RDS CPU Utilization

RDS CPU utilized:

8 vUsers - %, 20 vUsers - %, 30 vUsers - %, 75 vUsers - % During longevity test CPU 

Tests #1, #2, #3, #4


Test #5


RDS Database Connections

For 45 minute and longevity tests RDS used max  connections. Without test it was connections.

Tests #1, #2, #3, #4


Test #5


CPU (User) usage by broker

Edit: As MSK cluster is linked to all PTF clusters so the time range which can reflect only CI/CO during longevity test (test #5) - from midnight till 7 a.m. Max consumption rate here - 10%. Also we may observe impact of other CI/CO tests - the max consumption rate - 40% for all clusters (tests #1, #2, #3, #4).

Tests #1, #2, #3, #4

Test #5


Database load

Load by sqls (AAS) - SQL statements
Tests #1, #2, #3, #4

Test #5

Edit: During 45 minute tests (#1, #2, #3, #4) we see that the longest request is UPDATE fs09000000_mod_inventory_storage.item SET with 38 ms/request

During longevity test (#5) INSERT INTO fs09000000_mod_pubsub.audit_message - 41 ms and SELECT fs09000000_mod_inventory_storage.count_estimate - 107 ms.

Other observation is that we see a lot of UPDATE fs09000000_mod_login.auth_attempts and INSERT INTO fs09000000_mod_authtoken.refresh_tokens which is new. It may be connected to every 10 minutes token refresh.

Tests #1, #2, #3, #4




Test #5





Appendix

Infrastructure

PTF -environment rcon
  • rcon 12 m6g.2xlarge EC2 instances located in US East (N. Virginia)us-east-1 
  • 1 instance of db.r6g.xlarge database instance: Writer instance
  • MSK fse-test
      • 4 kafka.m7g.xlarge brokers in 2 zones (2 brokers per zone)
      • Apache Kafka version 3.7.x, metadata mode - KRaft

      • EBS storage volume per broker 300 GiB

      • auto.create.topics.enable=true
      • log.retention.minutes=480
      • default.replication.factor=2
      • revision - 26
  • OpenSearch 2.13 ptf-test cluster
    • r6g.2xlarge.search 4 data nodes

    • r6g.large.search 3 dedicated master nodes

DB table records size:

  • cs00000int_0001
    • instances -            1163924
    • items -                  2091901
    • holding records - 1348036

Modules

 All modules


Methodology/Approach

Description

Testing includes data preparation step and testing itself

  • Data preparation for each test takes up to 20 minutes and consists of truncating involved in testing tables, populating data and updating statuses of items.
  • Test itself depends on duration and virtual users number creating necessary load.

In Ramsons token expiration set to 10 minutes by default so to run any tests use new login implementation from the script. Pay attention to Backend Listener. Replace value of application parameter to make the results visible in Grafana dashboard.

Module configuration recommended setup

Update revision in source-record-storage module to exclude every 30 minutes SQL statements - delete rows in marc_indexers (miWITH deleted_rows

{
"name": "srs.marcIndexers.delete.interval.seconds",
"value": "86400"
},

Update mod-serials module. Set number of task with 0 to exclude significant database connection growth.

DB trigger setup in Ramsons

Usual PTF CI/CO data preparation script won’t work in Ramsons. To solve that disable trigger updatecompleteupdateddate_item_insert_update before data preparation for the tenant and enable it before test start.

The sql file was updated to do that step from the script.

Data preparation

First step

  • To prepare data establish connection by AWS keys, then run from bash .sql script first (take from the title of code block and replace [PASSWORD] with correct password.
export PGPASSWORD='[PASSWORD]';psql -f checkin-checkout-db-restore.sql -a --echo-all -h 127.0.0.1 -U folio
-- Disable trigger
ALTER TABLE fs09000000_mod_inventory_storage.item
DISABLE TRIGGER updatecompleteupdateddate_item_insert_update;

TRUNCATE TABLE fs09000000_mod_patron_blocks.user_summary;
TRUNCATE TABLE fs09000000_mod_circulation_storage.loan;
TRUNCATE TABLE fs09000000_mod_circulation_storage.audit_loan;
TRUNCATE TABLE fs09000000_mod_circulation_storage.request;
TRUNCATE TABLE fs09000000_mod_circulation_storage.patron_action_session;
TRUNCATE TABLE fs09000000_mod_circulation_storage.scheduled_notice;
TRUNCATE TABLE fs09000000_mod_notify.notify_data;

UPDATE fs09000000_mod_inventory_storage.item 
SET jsonb = jsonb_set(jsonb, '{status, name}', '"Available"')
WHERE jsonb->'status'->>'name' != 'Available';

UPDATE fs09000000_mod_users.users 
SET jsonb = jsonb_set(jsonb, '{active}', '"true"') 
WHERE jsonb->'active' != 'true';

-- Enable trigger
ALTER TABLE fs09000000_mod_inventory_storage.item
ENABLE TRIGGER updatecompleteupdateddate_item_insert_update;

Second step

  • Run command from scripts folder uploaded to S3 bucket ./circ-data-load.sh psql_rcp1.conf [tenant] - where replace [tenant] with tenant Id, change parameters in psql_rcp1.conf file with valid data.
  • Troubleshooting:
    • If the command executed from local machine you may encounter with too long query error message. To solve it use PGAdmin to run 2 long queries UPDATE ${TENANT}_mod_inventory_storage.item SET jsonb = jsonb_set(jsonb, '{status, name}', '\"Checked out\"') where id IN.
    • Other possible issue - incorrect encoding (on Windows machine). To solve it just add ENCODING 'UTF8'
      • Use pattern: copy ${TENANT}_mod_circulation_storage.loan(id, jsonb) FROM '${LOANS}' DELIMITER E'\t'  ENCODING 'UTF8'


Use .jmx file script for Ramson release. If any changes were made then upload the artefacts to S3 bucket and AWS instance load generator.


To start test from AWS instance (load generator) use template for the command. Test locally before start.

 8 vUsers - 
nohup jmeter -n -t /home/ptf/testdata/RCON/PERF-983_CICO/circulation_checkInCheckOut_rcon.jmx -l rcon_8vusers.jtl -e -o /home/ptf/testdata/RCON/PERF-983_CICO/results/8vusers -JGlobal_duration=2700 -JVUSERS=8 -JRAMP_UP=80


20vUsers - 
nohup jmeter -n -t /home/ptf/testdata/RCON/PERF-983_CICO/circulation_checkInCheckOut_rcon.jmx -l rcon_20vusers.jtl -e -o /home/ptf/testdata/RCON/PERF-983_CICO/results/20vusers -JGlobal_duration=2700 -JVUSERS=20 -JRAMP_UP=200


30vUsers - 
nohup jmeter -n -t /home/ptf/testdata/RCON/PERF-983_CICO/circulation_checkInCheckOut_rcon.jmx -l rcon_30vusers.jtl -e -o /home/ptf/testdata/RCON/PERF-983_CICO/results/30vusers -JGlobal_duration=2700 -JVUSERS=30 -JRAMP_UP=300


75vUsers - 
nohup jmeter -n -t /home/ptf/testdata/RCON/PERF-983_CICO/circulation_checkInCheckOut_rcon.jmx -l rcon_75vusers.jtl -e -o /home/ptf/testdata/RCON/PERF-983_CICO/results/75vusers -JGlobal_duration=2700 -JVUSERS=75 -JRAMP_UP=750

30vUsers - longevity
nohup jmeter -n -t /home/ptf/testdata/RCON/PERF-983_CICO/circulation_checkInCheckOut_rcon.jmx -l rcon_30vusers_long.jtl -e -o /home/ptf/testdata/RCON/PERF-983_CICO/results/30vusers_long -JGlobal_duration=86400 -JVUSERS=30 -JRAMP_UP=300


Test CI/CO with 8, 20, 30, 75 concurrent users for 45 minutes each. 

Test CI/CO with 30 users for 24 hours to detect any trends in memory. 

To create widgets in AWS dashboard to monitor and collect CI/CO related modules parameters (service CPU and Memory) use these json:

 CPU and Memory widget jsons
JSON widgets to monitor service CPU consumption
{
"metrics": [
[ "AWS/ECS", "CPUUtilization", "ServiceName", "pub-edge", "ClusterName", "rcp1-pvt", { "region": "us-east-1" } ],
[ "...", "mod-eusage-reports-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-pubsub-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-data-export-spring-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-data-import-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-rtac-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-users-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-organizations-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-graphql-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-event-config-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-audit-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-organizations-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-tags-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-ncip-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-feesfines-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-user-import-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "pub-okapi", ".", ".", { "region": "us-east-1" } ],
[ "...", "okapi-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-entities-links-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-sender-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "nginx-okapi", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-circulation-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-kb-ebsco-java-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-dcb-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-dematic-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-oai-pmh-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-inventory-update-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-search-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-orders-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-orders-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-invoice-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-circulation-item-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-batch-print-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-sip2-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-inventory-storage-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-licenses-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "nginx-edge", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-invoice-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-login-saml-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-agreements-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-di-converter-storage-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-erm-usage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-copycat-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-courses-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-oa-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-email-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-serials-management-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-patron-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-permissions-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-gobi-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-configuration-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-calendar-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-patron-blocks-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-fqm-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-service-interaction-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-circulation-storage-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-caiasoft-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-finance-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-authtoken-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-connexion-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-ncip-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-notes-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-bulk-operations-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-oai-pmh-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-erm-usage-harvester-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-settings-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-notify-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-source-record-storage-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-quick-marc-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-login-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-inventory-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-rtac-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-inn-reach-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-lists-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-finance-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-password-validator-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-orders-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-fqm-manager-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-dcb-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-source-record-manager-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-users-bl-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-template-engine-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-courses-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-patron-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-ebsconet-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-data-export-worker-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-remote-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-inn-reach-b", ".", ".", { "region": "us-east-1", "visible": false } ]
],
"view": "timeSeries",
"period": 60,
"yAxis": {
"left": {
"min": 0
}
},
"stacked": false,
"title": "CI/CO Service CPU Utilization",
"region": "us-east-1",
"stat": "Average"
}
JSON widgets to monitor service Memory consumption
{
"metrics": [
[ "AWS/ECS", "MemoryUtilization", "ServiceName", "pub-edge", "ClusterName", "rcp1-pvt", { "region": "us-east-1" } ],
[ "...", "mod-eusage-reports-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-pubsub-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-data-export-spring-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-data-import-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-rtac-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-users-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-organizations-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-graphql-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-event-config-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-audit-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-organizations-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-tags-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-ncip-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-feesfines-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-user-import-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "pub-okapi", ".", ".", { "region": "us-east-1" } ],
[ "...", "okapi-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-entities-links-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-sender-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "nginx-okapi", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-circulation-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-kb-ebsco-java-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-dcb-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-dematic-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-oai-pmh-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-inventory-update-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-search-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-orders-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-orders-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-invoice-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-circulation-item-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-batch-print-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-sip2-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-inventory-storage-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-licenses-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "nginx-edge", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-invoice-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-login-saml-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-agreements-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-di-converter-storage-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-erm-usage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-copycat-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-courses-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-oa-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-email-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-serials-management-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-patron-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-permissions-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-gobi-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-configuration-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-calendar-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-patron-blocks-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-fqm-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-service-interaction-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-circulation-storage-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-caiasoft-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-finance-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-authtoken-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "edge-connexion-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-ncip-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-notes-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-bulk-operations-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-oai-pmh-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-erm-usage-harvester-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-settings-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-notify-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-source-record-storage-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-quick-marc-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-login-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-inventory-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-rtac-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-inn-reach-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-lists-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-finance-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-password-validator-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-orders-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-fqm-manager-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-dcb-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-source-record-manager-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-users-bl-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-template-engine-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-courses-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-patron-b", ".", ".", { "region": "us-east-1" } ],
[ "...", "mod-ebsconet-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-data-export-worker-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "mod-remote-storage-b", ".", ".", { "region": "us-east-1", "visible": false } ],
[ "...", "edge-inn-reach-b", ".", ".", { "region": "us-east-1", "visible": false } ]
],
"view": "timeSeries",
"period": 60,
"yAxis": {
"left": {
"min": 0
}
},
"stacked": false,
"title": "CI/CO Service Memory Usage",
"region": "us-east-1",
"stat": "Average"
}

File with raw data
Use the file to get raw data and comparison tables