Skip to content

Commit

Permalink
add bytes and bytes/s to performance data
Browse files Browse the repository at this point in the history
  • Loading branch information
elrayle committed Jun 4, 2019
1 parent 13f1051 commit 795896b
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 13 deletions.
14 changes: 10 additions & 4 deletions lib/qa/authorities/linked_data/find_term.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ def initialize(term_config)
@term_config = term_config
end

attr_reader :term_config, :full_graph, :filtered_graph, :language, :id, :uri, :access_time_s, :normalize_time_s
private :full_graph, :filtered_graph, :language, :id, :uri, :access_time_s, :normalize_time_s
attr_reader :term_config, :full_graph, :filtered_graph, :language, :id, :uri, :access_time_s, :normalize_time_s, :fetched_size, :normalized_size
private :full_graph, :filtered_graph, :language, :id, :uri, :access_time_s, :normalize_time_s, :fetched_size, :normalized_size

delegate :term_subauthority?, :prefixes, :authority_name, to: :term_config

Expand Down Expand Up @@ -60,6 +60,7 @@ def load_graph(url:)

access_end_dt = Time.now.utc
@access_time_s = access_end_dt - access_start_dt
@fetched_size = full_graph.triples.to_s.size if performance_data?
Rails.logger.info("Time to receive data from authority: #{access_time_s}s")
end

Expand All @@ -70,8 +71,9 @@ def normalize_results
json = perform_normalization

@normalize_time_s = normalize_end_dt - normalize_start_dt
@normalized_size = json.to_s.size if performance_data?
Rails.logger.info("Time to convert data to json: #{normalize_time_s}s")
json = append_performance_data(json) if performance_data? && !jsonld?
json = append_performance_data(json) if performance_data?
json
end

Expand Down Expand Up @@ -178,7 +180,7 @@ def jsonld?
end

def performance_data?
@performance_data == true
@performance_data == true && !jsonld?
end

def preds_for_term
Expand Down Expand Up @@ -254,6 +256,10 @@ def append_performance_data(results)
performance = { predicate_count: pred_count,
fetch_time_s: access_time_s,
normalization_time_s: normalize_time_s,
fetched_bytes: fetched_size,
normalized_bytes: normalized_size,
fetch_bytes_per_s: fetched_size / access_time_s,
normalization_bytes_per_s: normalized_size / normalize_time_s,
total_time_s: (access_time_s + normalize_time_s) }
{ performance: performance, results: results }
end
Expand Down
10 changes: 8 additions & 2 deletions lib/qa/authorities/linked_data/search_query.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ def initialize(search_config)
@search_config = search_config
end

attr_reader :search_config, :full_graph, :filtered_graph, :language, :access_time_s, :normalize_time_s
private :full_graph, :filtered_graph, :language, :access_time_s, :normalize_time_s
attr_reader :search_config, :full_graph, :filtered_graph, :language, :access_time_s, :normalize_time_s, :fetched_size, :normalized_size
private :full_graph, :filtered_graph, :language, :access_time_s, :normalize_time_s, :fetched_size, :normalized_size

delegate :subauthority?, :supports_sort?, :prefixes, :authority_name, to: :search_config

Expand Down Expand Up @@ -52,6 +52,7 @@ def load_graph(url:)

access_end_dt = Time.now.utc
@access_time_s = access_end_dt - access_start_dt
@fetched_size = full_graph.triples.to_s.size if performance_data?
Rails.logger.info("Time to receive data from authority: #{access_time_s}s")
end

Expand All @@ -64,6 +65,7 @@ def normalize_results

normalize_end_dt = Time.now.utc
@normalize_time_s = normalize_end_dt - normalize_start_dt
@normalized_size = json.to_s.size if performance_data?
Rails.logger.info("Time to convert data to json: #{normalize_time_s}s")
json = append_performance_data(json) if performance_data?
json
Expand Down Expand Up @@ -171,6 +173,10 @@ def append_performance_data(results)
performance = { result_count: results.size,
fetch_time_s: access_time_s,
normalization_time_s: normalize_time_s,
fetched_bytes: fetched_size,
normalized_bytes: normalized_size,
fetch_bytes_per_s: fetched_size / access_time_s,
normalization_bytes_per_s: normalized_size / normalize_time_s,
total_time_s: (access_time_s + normalize_time_s) }
{ performance: performance, results: results }
end
Expand Down
12 changes: 9 additions & 3 deletions spec/controllers/linked_data_terms_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,9 @@
results = JSON.parse(response.body)
expect(results).to be_kind_of Hash
expect(results.keys).to match_array ['performance', 'results']
expect(results['performance'].keys).to match_array ['result_count', 'fetch_time_s', 'normalization_time_s', 'total_time_s']
expect(results['performance'].keys).to match_array ['result_count', 'fetch_time_s', 'normalization_time_s',
'fetched_bytes', 'normalized_bytes', 'fetch_bytes_per_s',
'normalization_bytes_per_s', 'total_time_s']
expect(results['performance']['total_time_s']).to eq results['performance']['fetch_time_s'] + results['performance']['normalization_time_s']
expect(results['performance']['result_count']).to eq 3
expect(results['results'].count).to eq 3
Expand Down Expand Up @@ -475,7 +477,9 @@
results = JSON.parse(response.body)
expect(results).to be_kind_of Hash
expect(results.keys).to match_array ['performance', 'results']
expect(results['performance'].keys).to match_array ['predicate_count', 'fetch_time_s', 'normalization_time_s', 'total_time_s']
expect(results['performance'].keys).to match_array ['predicate_count', 'fetch_time_s', 'normalization_time_s',
'fetched_bytes', 'normalized_bytes', 'fetch_bytes_per_s',
'normalization_bytes_per_s', 'total_time_s']
expect(results['performance']['total_time_s']).to eq results['performance']['fetch_time_s'] + results['performance']['normalization_time_s']
expect(results['performance']['predicate_count']).to eq 15
expect(results['results']['predicates'].count).to eq 15
Expand Down Expand Up @@ -631,7 +635,9 @@
results = JSON.parse(response.body)
expect(results).to be_kind_of Hash
expect(results.keys).to match_array ['performance', 'results']
expect(results['performance'].keys).to match_array ['predicate_count', 'fetch_time_s', 'normalization_time_s', 'total_time_s']
expect(results['performance'].keys).to match_array ['predicate_count', 'fetch_time_s', 'normalization_time_s',
'fetched_bytes', 'normalized_bytes', 'fetch_bytes_per_s',
'normalization_bytes_per_s', 'total_time_s']
expect(results['performance']['total_time_s']).to eq results['performance']['fetch_time_s'] + results['performance']['normalization_time_s']
expect(results['performance']['predicate_count']).to eq 7
expect(results['results']['predicates'].count).to eq 7
Expand Down
12 changes: 9 additions & 3 deletions spec/lib/authorities/linked_data/find_term_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
end
it 'includes performance in return hash' do
expect(results.keys).to match_array [:performance, :results]
expect(results[:performance].keys).to match_array [:predicate_count, :fetch_time_s, :normalization_time_s, :total_time_s]
expect(results[:performance].keys).to match_array [:predicate_count, :fetch_time_s, :normalization_time_s,
:fetched_bytes, :normalized_bytes, :fetch_bytes_per_s,
:normalization_bytes_per_s, :total_time_s]
expect(results[:performance][:predicate_count]).to eq 7
expect(results[:performance][:total_time_s]).to eq results[:performance][:fetch_time_s] + results[:performance][:normalization_time_s]
end
Expand Down Expand Up @@ -218,9 +220,13 @@
end

context 'when alternate authority name is used to access loc' do
let(:results) { lod_loc.find('sh 85118553', subauth: 'subjects') }
before do
stub_request(:get, 'http://id.loc.gov/authorities/subjects/sh85118553')
.to_return(status: 200, body: webmock_fixture('lod_loc_term_found.rdf.xml'), headers: { 'Content-Type' => 'application/rdf+xml' })
allow(lod_loc.term_config).to receive(:authority_name).and_return('ALT_LOC_AUTHORITY')
end

before { allow(lod_loc.term_config).to receive(:authority_name).and_return('ALT_LOC_AUTHORITY') }
let(:results) { lod_loc.find('sh 85118553', subauth: 'subjects') }

it 'does special processing to remove blank from id' do
expect(results[:uri]).to eq 'http://id.loc.gov/authorities/subjects/sh85118553'
Expand Down
4 changes: 3 additions & 1 deletion spec/lib/authorities/linked_data/search_query_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
it 'includes performance in return hash' do
expect(results).to be_kind_of Hash
expect(results.keys).to match_array [:performance, :results]
expect(results[:performance].keys).to match_array [:result_count, :fetch_time_s, :normalization_time_s, :total_time_s]
expect(results[:performance].keys).to match_array [:result_count, :fetch_time_s, :normalization_time_s,
:fetched_bytes, :normalized_bytes, :fetch_bytes_per_s,
:normalization_bytes_per_s, :total_time_s]
expect(results[:performance][:total_time_s]).to eq results[:performance][:fetch_time_s] + results[:performance][:normalization_time_s]
expect(results[:performance][:result_count]).to eq 3
expect(results[:results].count).to eq 3
Expand Down

0 comments on commit 795896b

Please sign in to comment.