test/plugin/base_test.rb in fluent-plugin-google-cloud-0.7.21 vs test/plugin/base_test.rb in fluent-plugin-google-cloud-0.7.22

- old
+ new

@@ -18,10 +18,19 @@ require 'webmock/test_unit' require 'prometheus/client' require_relative 'constants' +module Monitoring + # Prevent OpenCensus from writing to the network. + class OpenCensusMonitoringRegistry + def export + nil + end + end +end + # Unit tests for Google Cloud Logging plugin module BaseTest include Constants def setup @@ -901,11 +910,11 @@ [ [APPLICATION_DEFAULT_CONFIG, 1, [''], dynamic_log_names], # [] returns nil for any index. [ENABLE_SPLIT_LOGS_BY_TAG_CONFIG, log_entry_count, dynamic_log_names, []] ].each do |(config, request_count, request_log_names, entry_log_names)| - setup_prometheus + clear_metrics setup_logging_stubs do @logs_sent = [] d = create_driver(config + ENABLE_PROMETHEUS_CONFIG, 'test', true) log_entry_count.times do |i| d.emit("tag#{i}", 'message' => log_entry(i)) @@ -2142,12 +2151,13 @@ DATAPROC_CLUSTER_UUID) stub_metadata_request('instance/attributes/dataproc-region', DATAPROC_REGION) end - def setup_prometheus + def clear_metrics Prometheus::Client.registry.instance_variable_set('@metrics', {}) + OpenCensus::Stats.ensure_recorder.clear_stats end # Metadata Agent. def metadata_request_url(local_resource_id) @@ -2718,9 +2728,28 @@ # Sum up all metric values regardless of the labels. metric.values.values.reduce(0.0, :+) else metric.get(labels) end + assert_equal(expected_value, metric_value) + end + + def assert_opencensus_metric_value(metric_name, expected_value, labels = {}) + metric_name = Monitoring::OpenCensusMonitoringRegistry + .translate_metric_name(metric_name) + labels = labels.map { |k, v| [k.to_s, v.to_s] }.to_h + stats_recorder = OpenCensus::Stats.ensure_recorder + view_data = stats_recorder.view_data metric_name + assert_not_nil(view_data) + # For now assume all metrics are counters. + assert_kind_of(OpenCensus::Stats::Aggregation::Sum, + view_data.view.aggregation) + assert_true(view_data.view.measure.int64?) + tag_values = view_data.view.columns.map { |column| labels[column] } + metric_value = 0 + if view_data.data.key? tag_values + metric_value = view_data.data[tag_values].value + end assert_equal(expected_value, metric_value) end # Defined in specific gRPC or REST files. def expected_operation_message2