org.apache.storm.loadgen

## Class TopologyLoadConf

- java.lang.Object
- - org.apache.storm.loadgen.TopologyLoadConf

-     public class TopologyLoadConf
      extends Object

  Configuration for a simulated topology.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `List<LoadCompConf>` | `bolts`
    `String` | `name`
    `List<LoadCompConf>` | `spouts`
    `List<InputStream>` | `streams`
    `Map<String,Object>` | `topoConf`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TopologyLoadConf(String name, Map<String,Object> topoConf, List<LoadCompConf> spouts, List<LoadCompConf> bolts, List<InputStream> streams)` Constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `TopologyLoadConf` | `anonymize()` Create a new version of this topology with identifiable information removed.
    `static TopologyLoadConf` | `fromConf(File file)` Parse the TopologyLoadConf from a file in YAML format.
    `static TopologyLoadConf` | `fromConf(Map<String,Object> conf)` Parse the TopologyLoadConf from a config map.
    `double` | `getAllEmittedAggregate()` Get the messages emitted per second in aggregate across all streams in the topology.
    `double` | `getSpoutEmittedAggregate()` Get the messages emitted per second in aggregate for all of the spouts in the topology.
    `double` | `getTridentEstimatedEmittedAggregate()` Try and guess at the actual number of messages emitted per second by a trident topology, not the number of batches.
    `boolean` | `looksLikeTrident()` Try to see if this looks like a trident topology.
    `TopologyLoadConf` | `overrideSlowExecs(Map<String,SlowExecutorPattern> topoSpecific)` Override the SlowExecutorPattern for given components.
    `TopologyLoadConf` | `replaceShuffleWithLocalOrShuffle()`
    `TopologyLoadConf` | `scaleParallel(double v, Map<String,Double> topoSpecific)` Scale all of the components in the topology by a percentage (but keep the throughput the same).
    `TopologyLoadConf` | `scaleThroughput(double v, Map<String,Double> topoSpecific)` Scale the throughput of the entire topology by a percentage.
    `Map<String,Object>` | `toConf()` Covert this into a Map config.
    `String` | `toYamlString()` Convert this into a YAML String.
    `TopologyLoadConf` | `withName(String baseName)`
    `void` | `writeTo(File file)` Write this out to a file in YAML format.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### name

          public final String name

    - #### topoConf

          public final Map<String,Object> topoConf

    - #### spouts

          public final List<LoadCompConf> spouts

    - #### bolts

          public final List<LoadCompConf> bolts

    - #### streams

          public final List<InputStream> streams

  - ### Constructor Detail

    - #### TopologyLoadConf

          public TopologyLoadConf(String name,
                                  Map<String,Object> topoConf,
                                  List<LoadCompConf> spouts,
                                  List<LoadCompConf> bolts,
                                  List<InputStream> streams)

      Constructor.

      Parameters:
        `name` - the name of the topology.
        `topoConf` - the config for the topology
        `spouts` - the spouts for the topology
        `bolts` - the bolts for the topology
        `streams` - the streams for the topology

  - ### Method Detail

    - #### fromConf

          public static TopologyLoadConf fromConf(File file)
                                           throws IOException

      Parse the TopologyLoadConf from a file in YAML format.

      Parameters:
        `file` - the file to read from
      Returns:
        the parsed conf
      Throws:
        `IOException` - if there is an issue reading the file.

    - #### fromConf

          public static TopologyLoadConf fromConf(Map<String,Object> conf)

      Parse the TopologyLoadConf from a config map.

      Parameters:
        `conf` - the config with the TopologyLoadConf in it
      Returns:
        the parsed instance.

    - #### writeTo

          public void writeTo(File file)
                       throws IOException

      Write this out to a file in YAML format.

      Parameters:
        `file` - the file to write to.
      Throws:
        `IOException` - if there is an error writing to the file.

    - #### toYamlString

          public String toYamlString()

      Convert this into a YAML String.

      Returns:
        this as a YAML String.

    - #### toConf

          public Map<String,Object> toConf()

      Covert this into a Map config.

      Returns:
        this as a Map config.

    - #### withName

          public TopologyLoadConf withName(String baseName)

    - #### scaleParallel

          public TopologyLoadConf scaleParallel(double v,
                                                Map<String,Double> topoSpecific)

      Scale all of the components in the topology by a percentage (but keep the throughput the same).

      Parameters:
        `v` - the amount to scale them by. 1.0 is nothing, 0.5 cuts them in half, 2.0 doubles them.
      Returns:
        a copy of this with the needed adjustments made.

    - #### scaleThroughput

          public TopologyLoadConf scaleThroughput(double v,
                                                  Map<String,Double> topoSpecific)

      Scale the throughput of the entire topology by a percentage.

      Parameters:
        `v` - the amount to scale it by 1.0 is nothing 0.5 cuts it in half and 2.0 doubles it.
      Returns:
        a copy of this with the needed adjustments made.

    - #### overrideSlowExecs

          public TopologyLoadConf overrideSlowExecs(Map<String,SlowExecutorPattern> topoSpecific)

      Override the SlowExecutorPattern for given components.

      Parameters:
        `topoSpecific` - what we are going to use to override.
      Returns:
        a copy of this with the needed adjustments made.

    - #### anonymize

          public TopologyLoadConf anonymize()

      Create a new version of this topology with identifiable information removed.

      Returns:
        the anonymized version of the TopologyLoadConf.

    - #### looksLikeTrident

          public boolean looksLikeTrident()

      Try to see if this looks like a trident topology. NOTE: this will not work for anonymized configs

      Returns:
        true if it does else false.

    - #### getAllEmittedAggregate

          public double getAllEmittedAggregate()

      Get the messages emitted per second in aggregate across all streams in the topology.

      Returns:
        messages per second.

    - #### getSpoutEmittedAggregate

          public double getSpoutEmittedAggregate()

      Get the messages emitted per second in aggregate for all of the spouts in the topology.

      Returns:
        messages per second.

    - #### getTridentEstimatedEmittedAggregate

          public double getTridentEstimatedEmittedAggregate()

      Try and guess at the actual number of messages emitted per second by a trident topology, not the number of batches. This does not work on an anonymized conf.

      Returns:
        messages per second or 0 if this does not look like a trident topology.

    - #### replaceShuffleWithLocalOrShuffle

          public TopologyLoadConf replaceShuffleWithLocalOrShuffle()

Copyright © 2021 The Apache Software Foundation. All rights reserved.