Class: Dbwatcher::Storage::Api::QueryAPI

Inherits:
BaseAPI
  • Object
show all
Defined in:
lib/dbwatcher/storage/api/query_api.rb

Instance Method Summary collapse

Methods inherited from BaseAPI

#create, #initialize, #limit, #where

Methods included from Concerns::DataNormalizer

#extract_value, #normalize_change, #normalize_hash_keys, #normalize_operation, #normalize_record_id, #normalize_session_data, #normalize_table_name, #normalize_timestamp

Constructor Details

This class inherits a constructor from Dbwatcher::Storage::Api::BaseAPI

Instance Method Details

#allArray<Hash>

Get all filtered queries

Returns:

  • (Array<Hash>)

    filtered queries



51
52
53
54
# File 'lib/dbwatcher/storage/api/query_api.rb', line 51

def all
  queries = fetch_queries
  apply_filters(queries)
end

#between(start_date, end_date) ⇒ QueryAPI

Filter queries between dates

Parameters:

  • start_date (Date, String)

    start date

  • end_date (Date, String)

    end date

Returns:

  • (QueryAPI)

    self for method chaining



41
42
43
44
45
46
# File 'lib/dbwatcher/storage/api/query_api.rb', line 41

def between(start_date, end_date)
  start_str = start_date.is_a?(String) ? start_date : start_date.strftime("%Y-%m-%d")
  end_str = end_date.is_a?(String) ? end_date : end_date.strftime("%Y-%m-%d")
  @date_range = Date.parse(start_str)..Date.parse(end_str)
  self
end

#by_table(table_name) ⇒ QueryAPI

Filter queries by table name

Parameters:

  • table_name (String)

    table name to filter by

Returns:

  • (QueryAPI)

    self for method chaining



31
32
33
34
# File 'lib/dbwatcher/storage/api/query_api.rb', line 31

def by_table(table_name)
  filters[:table_name] = table_name
  self
end

#for_date(date) ⇒ QueryAPI

Filter queries by date

Parameters:

  • date (Date, String)

    date to filter by

Returns:

  • (QueryAPI)

    self for method chaining



13
14
15
16
# File 'lib/dbwatcher/storage/api/query_api.rb', line 13

def for_date(date)
  @date = date.is_a?(String) ? date : date.strftime("%Y-%m-%d")
  self
end

#slow_only(threshold: 100) ⇒ QueryAPI

Filter to slow queries only

Parameters:

  • threshold (Integer) (defaults to: 100)

    duration threshold in milliseconds

Returns:

  • (QueryAPI)

    self for method chaining



22
23
24
25
# File 'lib/dbwatcher/storage/api/query_api.rb', line 22

def slow_only(threshold: 100)
  filters[:slow_threshold] = threshold
  self
end