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
DistributionMetricParameters: 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:
objectA
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:
objectMetric base class in ready-to-save format.
Initializes
MetricParameters: 
- 
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.MetricThe 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.MetricThe 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.MetricThe 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:
objectBase 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.MetricsPublisherA
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.MetricsPublisherA
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:
objectA
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.MetricsPublisherPublishes collected metrics to InfluxDB database.
- 
class 
apache_beam.testing.load_tests.load_test_metrics_utils.MeasureTime(namespace)[source]¶ Bases:
apache_beam.transforms.core.DoFnA 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.DoFnMetric 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.DoFnA 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.DoFnDoFn to assigned timestamps to elements.