Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 3.52 KB

migration.rst

File metadata and controls

51 lines (37 loc) · 3.52 KB

Iago2 Migration Guide

Iago, despite being a vital piece of the application development and testing lifecycle, was written long ago and contains many outmoded design patterns. This includes parsing and eval-ing Scala config files, unnecessarily complex build and deployment steps, not running on TwitterServer or any modern application framework, and lots of blocking code and performance issues.

To solve these issues, Iago2 was developed based on Iago. It eliminates the old eval-ing Scala configuration syntax, and adopts TwitterServer with all its goodies such as metrics, async worker pools, and flag-based configuration.

Migrate Iago test to Iago2 test

  1. Download and unpack the Iago2 distribution. "mvn install -Dmaven.test.skip=true" to install Iago2 in your local maven repository.

  2. Add

    <dependency>

    <groupId>com.twitter</groupId> <artifactId>iago2</artifactId> <version>2.0.0</version>

    </dependency>

    to your load test project's dependencies list. Here is an example.

  3. Import "com.twitter.iago.?" instead of "com.twitter.parrot.?" in your code.

  4. If you defined custom logic of processing lines before, e.g. a test class extends RecordProcessor, make sure to create a config that extends FinagleParrotConfig (for Http service) or ThriftParrotConfig (for Thrift service), and specify it using the config flag in your bash script. See Implementing Your Test

  5. Convert your launcher config (the file implements ParrotLauncherConfig) to a script. Iag2 uses Flag instead of Eval to take parameters. See Configuring and Launching Your Test

    • Below is a table for mapping some of the Iago parameters to Iago2 parameters.

    Iago Launcher Config Parameter

    Iago2 Flag

    log

    -inputLog

    numFeederInstances

    -env.aurora.feederNumInstances

    createDistribution

    Please override the distribution method of FinagleParrotConfig or ThriftParrotConfig

    victims

    -victimDest, -victimServerSet, -victimHostPort, -victimZk, -victimZkPort

    customLogSource

    -logSource

    traceLevel

    -log.level

    • Here is an example script.