Performance degradation caused by bulk API integration scripts in Rally
search cancel

Performance degradation caused by bulk API integration scripts in Rally

book

Article ID: 451382

calendar_today

Updated On:

Products

Rally SaaS

Issue/Introduction

This article provides guidance on identifying and resolving performance degradation in the Rally environment caused by inefficient API integration scripts. Customers may observe slow loading times or performance drops when automated synchronization or reporting scripts process large datasets.

Environment

Rally SAAS

Cause

Performance issues are often caused by integration scripts that perform bulk exports of data (e.g., Portfolio Items, Defects) in a tight loop without implementing filters. Fetching the entire object hierarchy on every API call consumes significant server resources, causing latency for the specific integration and potentially impacting other concurrent user sessions

Resolution

To optimize API integration performance, transition from a full data dump to an incremental synchronization strategy.

  1. Analyze API Logs: Identify integration accounts performing high-volume, unfiltered requests (e.g., GET requests with pagesize=2000 and no query parameters).
  2. Implement LastUpdateDate Filtering: Configure the integration script to fetch only items modified since the last successful sync.
    • Old Query (Inefficient): GET /slm/webservice/v2/portfolioitem/Feature?pagesize=2000&fetch=true
    • Optimized Query: GET /slm/webservice/v2/portfolioitem/Feature?pagesize=200&query=(LastUpdateDate > "YYYY-MM-DDTHH:MM:SS.000Z")&order=LastUpdateDate ASC
  3. Manage Integration State:
    • Store the last_run_timestamp in the integration's local configuration.
    • On each run, query using the stored timestamp.
    • If the data retrieval is successful, update the last_run_timestamp to the current time.
  4. Verify Efficiency: Monitor the result set size. A well-optimized sync should typically return a significantly smaller subset of data (e.g., < 100 items per hour) rather than the full item hierarchy.