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