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