apache_beam.testing.load_tests.load_test_metrics_utils module¶
Utility functions used for integrating Metrics API into load tests pipelines.
Metrics are send to BigQuery in following format: test_id | submit_timestamp | metric_type | value
The ‘test_id’ is common for all metrics for one run. Currently it is possible to have following metrics types: * runtime * total_bytes_count
- 
apache_beam.testing.load_tests.load_test_metrics_utils.parse_step(step_name)[source]¶
- Replaces white spaces and removes ‘Step:’ label - Parameters: - step_name (str) – step name passed in metric ParDo - Returns: - lower case step name without namespace and step label 
- 
apache_beam.testing.load_tests.load_test_metrics_utils.split_metrics_by_namespace_and_name(metrics, namespace, name)[source]¶
- Splits metrics list namespace and name. - Parameters: - Returns: - two lists - one of metrics which are matching filters and second of not matching 
- 
apache_beam.testing.load_tests.load_test_metrics_utils.get_generic_distributions(generic_dists, metric_id)[source]¶
- Creates flatten list of distributions per its value type. A generic distribution is the one which is not processed but saved in the most raw version. - Parameters: - generic_dists – list of distributions to be saved
- metric_id (uuid) – id of the current test run
 - Returns: - list of dictionaries made from - DistributionMetric
- 
apache_beam.testing.load_tests.load_test_metrics_utils.get_all_distributions_by_type(dist, metric_id)[source]¶
- Creates new list of objects with type of each distribution metric value. - Parameters: - dist (object) – DistributionMetric object to be parsed
- metric_id (uuid) – id of the current test run
 - Returns: - list of - DistributionMetricobjects
- 
apache_beam.testing.load_tests.load_test_metrics_utils.get_distribution_dict(metric_type, submit_timestamp, dist, metric_id)[source]¶
- Function creates - DistributionMetric- Parameters: - Returns: - dictionary prepared for saving according to schema 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.MetricsReader(project_name=None, bq_table=None, bq_dataset=None, publish_to_bq=False, influxdb_options=None, namespace=None, filters=None)[source]¶
- Bases: - object- A - MetricsReaderretrieves metrics from pipeline result, prepares it for publishers and setup publishers.- Initializes - MetricsReader.- Parameters: - 
get_counter_metric(result: apache_beam.runners.runner.PipelineResult, name: str) → int[source]¶
- Return the current value for a long counter, or -1 if can’t be retrieved. Note this uses only attempted metrics because some runners don’t support committed metrics. 
 
- 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.Metric(submit_timestamp, metric_id, value, metric=None, label=None)[source]¶
- Bases: - object- Metric base class in ready-to-save format. - Initializes - Metric- Parameters: 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.CounterMetric(counter_metric, submit_timestamp, metric_id)[source]¶
- Bases: - apache_beam.testing.load_tests.load_test_metrics_utils.Metric- The Counter Metric in ready-to-publish format. - Parameters: 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.DistributionMetric(dist_metric, submit_timestamp, metric_id, metric_type)[source]¶
- Bases: - apache_beam.testing.load_tests.load_test_metrics_utils.Metric- The Distribution Metric in ready-to-publish format. - Parameters: 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.RuntimeMetric(runtime_list, metric_id)[source]¶
- Bases: - apache_beam.testing.load_tests.load_test_metrics_utils.Metric- The Distribution Metric in ready-to-publish format. - Parameters: - runtime_list – list of distributions metrics from MetricResult with runtime name
- metric_id (uuid) – unique id to identify test run
 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.MetricsPublisher[source]¶
- Bases: - object- Base class for metrics publishers. 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.ConsoleMetricsPublisher[source]¶
- Bases: - apache_beam.testing.load_tests.load_test_metrics_utils.MetricsPublisher- A - ConsoleMetricsPublisherpublishes collected metrics to console output.
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.BigQueryMetricsPublisher(project_name, table, dataset, bq_schema=None)[source]¶
- Bases: - apache_beam.testing.load_tests.load_test_metrics_utils.MetricsPublisher- A - BigQueryMetricsPublisherpublishes collected metrics to BigQuery output.
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.BigQueryClient(project_name, table, dataset, bq_schema=None)[source]¶
- Bases: - object- A - BigQueryClientpublishes collected metrics to BigQuery output.
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.InfluxDBMetricsPublisherOptions(measurement, db_name, hostname, user=None, password=None)[source]¶
- Bases: - object
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.InfluxDBMetricsPublisher(options)[source]¶
- Bases: - apache_beam.testing.load_tests.load_test_metrics_utils.MetricsPublisher- Publishes collected metrics to InfluxDB database. 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.MeasureTime(namespace)[source]¶
- Bases: - apache_beam.transforms.core.DoFn- A distribution metric prepared to be added to pipeline as ParDo to measure runtime. - Initializes - MeasureTime.- namespace(str): namespace of metric 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.MeasureBytes(namespace, extractor=None)[source]¶
- Bases: - apache_beam.transforms.core.DoFn- Metric to measure how many bytes was observed in pipeline. - Initializes - MeasureBytes.- Parameters: - namespace (str) – metric namespace
- extractor – function to extract elements to be count
 - 
LABEL= 'total_bytes'¶
 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.CountMessages(namespace)[source]¶
- Bases: - apache_beam.transforms.core.DoFn- 
LABEL= 'total_messages'¶
 
- 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.MeasureLatency(namespace)[source]¶
- Bases: - apache_beam.transforms.core.DoFn- A distribution metric which captures the latency based on the timestamps of the processed elements. - Initializes - MeasureLatency.- namespace(str): namespace of metric - 
LABEL= 'latency'¶
 
- 
- 
class apache_beam.testing.load_tests.load_test_metrics_utils.AssignTimestamps[source]¶
- Bases: - apache_beam.transforms.core.DoFn- DoFn to assigned timestamps to elements.