Class: SolidLog::UI::DataSource
- Inherits:
-
Object
- Object
- SolidLog::UI::DataSource
- Defined in:
- lib/solid_log/ui/data_source.rb
Instance Method Summary collapse
-
#all_facets ⇒ Object
Get all facets.
-
#entries(filters = {}) ⇒ Object
Query entries with filters.
-
#entry(id) ⇒ Object
Get single entry by ID.
-
#facets(field) ⇒ Object
Get facets for a field.
-
#health ⇒ Object
Get health metrics.
-
#job_timeline(job_id) ⇒ Object
Get job timeline.
-
#request_timeline(request_id) ⇒ Object
Get request timeline.
-
#search(query, filters = {}) ⇒ Object
Full-text search.
Instance Method Details
#all_facets ⇒ Object
Get all facets
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/solid_log/ui/data_source.rb', line 47 def all_facets if direct_db_mode? { level: SolidLog::SearchService.facets_for("level"), app: SolidLog::SearchService.facets_for("app"), env: SolidLog::SearchService.facets_for("env"), controller: SolidLog::SearchService.facets_for("controller"), action: SolidLog::SearchService.facets_for("action"), method: SolidLog::SearchService.facets_for("method"), status_code: SolidLog::SearchService.facets_for("status_code") } else result = api_client.all_facets result["facets"] end end |
#entries(filters = {}) ⇒ Object
Query entries with filters
7 8 9 10 11 12 13 |
# File 'lib/solid_log/ui/data_source.rb', line 7 def entries(filters = {}) if direct_db_mode? query_direct_db(filters) else query_http_api(filters) end end |
#entry(id) ⇒ Object
Get single entry by ID
16 17 18 19 20 21 22 23 |
# File 'lib/solid_log/ui/data_source.rb', line 16 def entry(id) if direct_db_mode? SolidLog::Entry.find(id) else result = api_client.entry(id) OpenStruct.new(result["entry"]) end end |
#facets(field) ⇒ Object
Get facets for a field
37 38 39 40 41 42 43 44 |
# File 'lib/solid_log/ui/data_source.rb', line 37 def facets(field) if direct_db_mode? SolidLog::SearchService.facets_for(field) else result = api_client.facets(field) result["values"] end end |
#health ⇒ Object
Get health metrics
91 92 93 94 95 96 97 |
# File 'lib/solid_log/ui/data_source.rb', line 91 def health if direct_db_mode? SolidLog::HealthService.metrics else api_client.health["metrics"] end end |
#job_timeline(job_id) ⇒ Object
Get job timeline
78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/solid_log/ui/data_source.rb', line 78 def job_timeline(job_id) if direct_db_mode? { job_id: job_id, entries: SolidLog::CorrelationService.job_timeline(job_id), stats: SolidLog::CorrelationService.job_stats(job_id) } else api_client.job_timeline(job_id) end end |
#request_timeline(request_id) ⇒ Object
Get request timeline
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/solid_log/ui/data_source.rb', line 65 def request_timeline(request_id) if direct_db_mode? { request_id: request_id, entries: SolidLog::CorrelationService.request_timeline(request_id), stats: SolidLog::CorrelationService.request_stats(request_id) } else api_client.request_timeline(request_id) end end |
#search(query, filters = {}) ⇒ Object
Full-text search
26 27 28 29 30 31 32 33 34 |
# File 'lib/solid_log/ui/data_source.rb', line 26 def search(query, filters = {}) if direct_db_mode? entries = SolidLog::SearchService.search(query) apply_filters(entries, filters) else result = api_client.search(query, filters) parse_entries_response(result) end end |