Interface FlowGenOptions

  • All Superinterfaces:
    org.opennms.nephron.CortexOptions, org.apache.beam.sdk.transforms.display.HasDisplayData, org.opennms.nephron.NephronOptions, org.apache.beam.sdk.options.PipelineOptions
    All Known Subinterfaces:
    BenchmarkOptions

    public interface FlowGenOptions
    extends org.opennms.nephron.NephronOptions
    Defines the distribution of generated flows. Parameters can be grouped into the following areas:
    Randomness
    • seed
    • playbackMode
    • startMs (only use in playback mode)
    Flow instances
    • fixedWindowsSizeMs (inherited from NephronOptions)
    • numWindows
    • flowsPerWindow || flowsPerSecond
    Flow attributes
    • numExporters, numInterfaces, numApplications, numHosts, numDscps, numEcns
    • lastSwitchedSigma, flowDurationLambda
    • Method Detail

      • getSeed

        @Long(123456L)
        Long getSeed()
      • setSeed

        void setSeed​(Long num)
      • getFlowsPerWindow

        @Long(1000L)
        Long getFlowsPerWindow()
      • setFlowsPerWindow

        void setFlowsPerWindow​(Long num)
      • getMinSplits

        @Integer(1)
        Integer getMinSplits()
      • setMinSplits

        void setMinSplits​(Integer num)
      • getMaxSplits

        @Integer(1)
        Integer getMaxSplits()
      • setMaxSplits

        void setMaxSplits​(Integer num)
      • getNumWindows

        @Integer(10)
        Integer getNumWindows()
      • setNumWindows

        void setNumWindows​(Integer num)
      • getMinExporter

        @Integer(2)
        Integer getMinExporter()
      • setMinExporter

        void setMinExporter​(Integer num)
      • getNumExporters

        @Integer(5)
        Integer getNumExporters()
      • setNumExporters

        void setNumExporters​(Integer num)
      • getNumClockSkewGroups

        @Integer(1)
        Integer getNumClockSkewGroups()
      • setNumClockSkewGroups

        void setNumClockSkewGroups​(Integer num)
      • getClockSkewMs

        @Long(10000L)
        Long getClockSkewMs()
      • setClockSkewMs

        void setClockSkewMs​(Long num)
      • getMinInterface

        @Integer(3)
        Integer getMinInterface()
      • setMinInterface

        void setMinInterface​(Integer num)
      • getNumInterfaces

        @Integer(1)
        Integer getNumInterfaces()
      • setNumInterfaces

        void setNumInterfaces​(Integer num)
      • getNumProtocols

        @Integer(10)
        Integer getNumProtocols()
      • setNumProtocols

        void setNumProtocols​(Integer num)
      • getNumApplications

        @Integer(10)
        Integer getNumApplications()
      • setNumApplications

        void setNumApplications​(Integer num)
      • getNumHosts

        @Integer(5)
        Integer getNumHosts()
      • setNumHosts

        void setNumHosts​(Integer num)
      • getNumEcns

        @Integer(4)
        Integer getNumEcns()
      • setNumEcns

        void setNumEcns​(Integer num)
      • getNumDscps

        @Integer(17)
        Integer getNumDscps()
      • setNumDscps

        void setNumDscps​(Integer num)
      • getLastSwitchedSigmaMs

        @Long(0L)
        Long getLastSwitchedSigmaMs()
        The standard derivation of a normal distribution that determines the shift of the end of a flow with regard to an end that would be calculated by a linear time progression.

        The values less than one standard deviation away from the mean account for 68.27% of the set; while two standard deviations from the mean account for 95.45%; and three standard deviations account for 99.73%.

      • setLastSwitchedSigmaMs

        void setLastSwitchedSigmaMs​(Long millis)
      • getFlowDurationLambda

        @Double(0.5)
        Double getFlowDurationLambda()
        The lambda (decay) factor of an exponential distribution that determines flow durations.

        The following table shows some probability values for specific flow durations.

        Probabilty of some flow durations
        durationl=0.25l=0.5l=1.0
        10.220.390.63
        20.390.630.86
        30.530.780.95
        40.630.860.98
        50.710.920.99
        60.780.950.997
        100.920.990.99999
        200.990.999991
        For example if lambda is 0.5 then 39% of flows have a length shorter than 1 second and 99% of flows have a length that is shorter than 10 seconds..
      • setFlowDurationLambda

        void setFlowDurationLambda​(Double lambda)
      • getPlaybackMode

        @Boolean(true)
        Boolean getPlaybackMode()
        In playback mode timestamps are calculated based on the given start whereas in non-playback mode the current time is used. In non-playback mode either the setting for flowsPerWindow or flowsPerSecond is calculated:
        • If flowsPerSecond is set then flowsPerWindow is calculated by flowsPerSec * windowSizeInSec
        • otherwise flowsPerSecond is calculated by flowsPerWindow / windowSizeInSec
      • setPlaybackMode

        void setPlaybackMode​(Boolean value)
      • getStartMs

        @Long(1500000000000L)
        Long getStartMs()
      • setStartMs

        void setStartMs​(Long num)
      • getFlowsPerSecond

        @Long(0L)
        Long getFlowsPerSecond()
      • setFlowsPerSecond

        void setFlowsPerSecond​(Long value)