Untitled

 avatar
unknown
yaml
2 years ago
14 kB
4
Indexable
source:

  # Global parameter, hides sheets with raw data
  # Overrides 'report -> content -> processor -> data -> hide' paramter if specified
  hide_data: False

  # Default settings for all input data files,
  # can be changed separately for each file
  default:

    # Redefine CSV file delimiter, default value is ","
    # separator: ","

    # Redefine CSV file header
    # header:
    #   - custom_field_1
    #   - custom_field_2

    # Mandatory prop, all input data must have a timestamp
    timeindex: TRANSACT_TIME

    # If the timestamp is not a number, then you need to convert it
    # to the datetime format, for example, the time 2019/05/31 10:21:34.567890
    # can be converted as follows:
    # date_parser: "lambda s: datetime.datetime (int (s [: 4]), int (s [5: 7]), int (s [8:10]), int (s [11:13]), int (s [14:16]), int (s [17:19]))"

    # Filtering of all input data at the reading stage, specify
    # only data that should be in the report to save resources
    # data_filter: reportable == 'Y' & seconds >= 10

    # List of columns from the input CSV file to be read
    fields: #Alert_Name,Instrument_ID,Alert_Trigger_Count,Alert_Time_,Transact_Time,Latency
      - INSTRUMENT_ID
      - ALERT_TRIGGER_COUNT
      - TRANSACT_TIME
      - LATENCY

      # You can specify the type of value for some fields explicitly
      #- messagetype: category
      #- reportable: str


  # List of files with input data
  # If -L and -S command line options are specified, this setting is ignored
#  list:
      # Short name of the file with data to be displayed on graphs and tables
      # Can be set via the command line as: -L R1
#    - label: R1
      # The data file must be in CSV format.
      # File may be compressed, supported formats: gz, zip, bz2
      # Can be set via the command line as: -S sources/2019_08_23__02_24_CONST_test.csv
#      file: sources/2019_08_23__02_24_CONST_test.csv
#    - label: R2
#      file: sources/2019_08_23__19_18_CONST_test.csv

# Description of the report structure
report:

  # Report Name
  # May be overridden by the command line parameter: -O test_report.xlsx
  name: test_report.xlsx

  # Brief description of report content
  # May be overridden by the command line parameter: -T 'TEST Latency Report'
  title: Latency Report

  # Report content as a list of data handlers and their parameters
  content:

    # Frequency distribution builds graphs, where on the X axis
    # are all values ​​of the specified metric in ascending order, and
    # on the Y axis the number of records with the specified metric value
    - FrequencyDistribution:

        # Setting affects the display of data on the title page
        title:

          # Disables or enables links to graphs with data, by default
          # links are added to the title page (True)
          links: False

        # Input data settings
        data:

          # Hide the sheet with data, by default the data is shown (False)
          # May be overriden by 'source -> hide_data'
          hide: True

          # The chart's sheet (max length is 30 characters)
          # If there are any agregations specified then it is possible to split different
          # charts across different sheets by specifying either {group_name} or {group_value} marks
          # E.g. "LD{group_name}" will result in: LD total" and "LD messagetype"
          sheet: LD

          #  Add grouped values to the same chart (false) or split (true = default)
          split_by_group_values: false

          # When True then any group which contains at least one field with nan values
          # will return an empty data set. E.g.:
          # groupby:
          #   - a & b
          # a contains values [A], b contains [B, nan]
          # When True, then the following groups will be created: A_B
          # When False, then: A_B + A_nan
          ignore_nan_values: True


          # Defines how many samples will be displayed on the chart
          # 100.0 means that all values will be displayd
          # 99.0 (default) means that 0.01% out of all values will be hidden
          # scale: 100.0

          # Data grouping
          groupby:
#            - messagetype
            # Each list item adds a new group of charts
            # - tif

            # Possible combinations of parameters
            # - messagetype & tif

          # This optional filter can be used to filter out data which
          # should not be displaye on the graph
          # filter: second> = 10

          # The main metric by which the calculation will be made
          metric:

            # Metric name
            name: LATENCY

            # Metric data format, optional parameter. If specified and
            # the names of the chart axes are not set, then the axes
            # will be named automatically, e.g. Latency, us
            unit: us

            # All data for which the metric exceeds the specified value will be discarded
            max: 800

            # All data for which the metric is less than the specified value will be discarded
            min: 0

            # Apply this function to all metric values
            # transform: "lambda x: int(x/1000)"

        # Chart settings
        chart:
          # Chart title
          title: Roundtrip Latency Distribution

          # Width of the graph in pixels
          width: 900

          # Graph height in pixels
          height: 400

          # Chart type, it is recommended not to change this value
          # type: line

          # Chart subtype, it is recommended not to change this value
          # subtype: straight

          # Legend display settings
          # legend:

            # Location of the legend
            # position: right

          # X axis settings
          x:

            # Show or hide gridlines, defaulted to False
            gridlines: True

            # Axis name, can be ignored
            # label: Latency, us

            # Axis type, it is recommended not to change this value
            # type: auto

            # Show axis intersection
            # crossing: None

            # Enable logarithmic scale for axis
            # log_base: None

            # Limit the upper axis value by 1000
            # max: 1000

            # Limit the lover axis value by 0
            # min: 0

          # Y axis settings are the same as for X
          y:
            gridlines: True
            # label: samples
            # type: auto
            # crossing: None
            # log_base: None
            # max: None
            # min: None

          # The number of columns over which the graphs will be distributed,
          # by default, all graphs are placed one above the other (1)
          # | chart 1 |
          # | chart 2 |
          # when the value is set to (2), then
          # | chart 1 | chart 2 |
          # | chart 3 | chart 4 |
          # columns: 1

          # Graph props, do not change the below settings
          # series:

            # Series name
            # name: some_name

            # Data categories
            # categories:

              # The name of the list with raw data
              # sheet: some_sheet

              # Th number of a column with data
              # column: 0

              # The first line with the data
              # start: 0

              # The last line with the data
              # end: 0

            # The same settings as for categories

            # values:
              # sheet: some_sheet
              # column: 0
              # start: 0
              # end: 0
            # trendline:
              # type: polynominal
              # order: 3

    # Normilized frequency distribution builds graphs, where on the X axis
    # are all values ​​of the specified metric in ascending order, and
    # on the Y axis is the occurrence of the metric value.
    # Settings are the same as for FrequencyDistribution
    - NormalizedFrequencyDistribution:
        title:
          links: False
        data:
          hide: True
          groupby:
#            - messagetype
          metric:
            name: LATENCY
            unit: us
            max: 800
            min: 0
        chart:
          title: TEST Roundtrip Latency Distribution - Normalized
          width: 900
          height: 400
          x:
            gridlines: True
          y:
            gridlines: True

    # Build message rate chart (messages per second)
    - MessageRate:

        # Setting affects the display of data on the title page
        title:

          # Disables or enables links to graphs with data, by default
          # links are added to the title page (True)
          links: False

        # Input data settings
        data:

          # Hide the sheet with data, by default the data is shown (False)
          # May be overriden by 'source -> hide_data'
          hide: True

          # This optional filter can be used to filter out data which
          # should not be displaye on the graph
          # filter: second> = 10

          # Sort data by this field, used only with "unique" option
          # By default the metric name is used
          sort: LATENCY

          # Specify data orderm used only with "unique" option
          # May be "asc" or "desc" (default)
          # order: desc

          # Drop duplicate records considering the "sort" and "order" parameters
#          unique:
#            - sendtime

        # Below Settings are the same as for FrequencyDistribution
        chart:
          title: Message Rate
          width: 900
          height: 400

    # Builds a time series chart, where Х shows message rate per second and
    # Y shows the metrics value for a given second
    - TimeSeries:

        # Setting affects the display of data on the title page
        title:

          # Disables or enables links to graphs with data, by default
          # links are added to the title page (True)
          links: False

          # Show statistics tables on the title page
          tables: True

        # Enable or disable message rate chart
        # Will be shown on the second Y axis
        # draw_rates: False

        # Below Settings are the same as for FrequencyDistribution,
        # except for "aggregate"
        data:
          hide: True
          # The chart's sheet (max length is 30 characters)
          # If there are any agregations specified then it is possible to split different
          # charts across different sheets by specifying either {group_name} or {group_value} marks
          # E.g. "Time Series {group_name}" will result in: TimeSeries total" and "TimeSeries messagetype"
          sheet: TimeSeries
          filter: second >= 10

          # This optional filter can be used to filter out data which
          # should not be displaye on the graph
          # filter: second> = 10

          # Sort data by this field, used only with "unique" option
          # By default the metric name is used
          sort: LATENCY

          # Specify data orderm used only with "unique" option
          # May be "asc" or "desc" (default)
          # order: desc

          # List of aggregate functions
          # The display name of the aggregate function can be redefined
          # - mean: avg
          aggregate:

            # Max value among all for a given second
            - max

            # Mean value among all for a given second
            - mean

            # Std deviation for a given second
            # - std

            # Min value among all for a given second
            # - min

            # Median value among all for a given second
            # - median

            # Max value for 99.9th percentile for a given second
            # - 99.9

            # Max value for 99.0th percentile for a given second
            # - 99.0 max

            # Mean value for 95th percentile for a given second
            # - 95 mean

          groupby:
#            - messagetype

          metric:
            name: LATENCY
            unit: us

            # Apply this function to all metric values
            # transform: "lambda x: int(x/1000)"

          # Show time instead of samples count on the X axis
          # show_time_axis: True
          # Force to use rates on X axis
          # force_use_rates: True

          # Fill zero with spaces instead of "0"
          # fill_zero_nan: True

        chart:
          title: Roundtrip Latency
          width: 900
          height: 400

    # Adds table to the title list with the specified aggregations
    - Table:
        # Change table name
        # title: Statistics

        data:

          # List of aggregate functions
          aggregate:

            # Number of samples of a given group
            - count

            # Number of samples of a given group divided by the total number of messages
            - percentage

            # Max value over all samples
            # - max

            # Mean value over all samples
            # - mean

            # Std deviation over all samples
            # - std

            # Min value over all samples
            # - min

            # Median value over all samples
            # - median

            # Max value for 99.9th percentile over all samples
            # - 99.9

            # Max value for 99.0th percentile over all samples
            # - 99.0 max

            # Mean value for 95th percentile over all samples
            # - 95 mean

          groupby:
#            - messagetype

          # The metric is used with all aggregation functions except for "count" and "percentage"
          metric:
            name: LATENCY
            unit: us