ruby-grafana-reporter 0.6.1 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '00837acead340b75df1bc4dcdf93c05c8014c1317aae288191b592b77a660a7a'
4
- data.tar.gz: 2e072de19e45e7fe5f167f37ec4a88be2a482bf7843df96f059a9489e48760b6
3
+ metadata.gz: e06395c66d098c01d5248872f7aac2bc8dd36c4f9c6f02774ffe022fd0cafc9f
4
+ data.tar.gz: 6ad05dfac340497fb0be61b14b6420a348b05dbd71b14e17b55553573cfcf3b8
5
5
  SHA512:
6
- metadata.gz: eec08117ef1a83e7c0a016e80cce31c67fcf552253b63141a440951fa94f1168531b31131ae5cc79e50ac14bf4161a867b717f1c2bfb77ed6d0edac985b7cc38
7
- data.tar.gz: fe05d5a7baeb91411fb5942602cd66a66ae8dfcc65eedb7cf421617ffa6c827f5d2a11306dc33ffae9370033a35c10883c17c11f25d8a431bebaf7ae476af4ef
6
+ metadata.gz: 769a0c9258678b32100b21e38782ca668467ad2e016e63e3bc293d96311bb06d74b0b2a71f4033a576c71c94185e072ad37ac55d8d4cdc13a516a92f6c359895
7
+ data.tar.gz: 53a645d2db1eac77ed0e6977932b2947eb41efccf33f49f77db6c7ea4254ebd2f0c299fb1211546356734b744ca6359f36f392ae3afcf4243c835da3c7671bfa
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  [![MIT License](https://img.shields.io/github/license/divinity666/ruby-grafana-reporter.svg?style=flat-square)](https://github.com/divinity666/ruby-grafana-reporter/blob/master/LICENSE)
2
- [![Build Status](https://travis-ci.com/divinity666/ruby-grafana-reporter.svg?branch=master)](https://travis-ci.com/github/divinity666/ruby-grafana-reporter?branch=master)
2
+ [![Build Status](https://ci.appveyor.com/api/projects/status/5ac434885onmqpm4/branch/master?svg=true)](https://ci.appveyor.com/project/divinity666/ruby-grafana-reporter/branch/master)
3
3
  [![Coverage Status](https://coveralls.io/repos/github/divinity666/ruby-grafana-reporter/badge.svg?branch=master)](https://coveralls.io/github/divinity666/ruby-grafana-reporter?branch=master)
4
4
  [![Gem Version](https://badge.fury.io/rb/ruby-grafana-reporter.svg)](https://badge.fury.io/rb/ruby-grafana-reporter)
5
5
 
data/lib/VERSION.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Version information
4
- GRAFANA_REPORTER_VERSION = [0, 6, 1].freeze
4
+ GRAFANA_REPORTER_VERSION = [0, 6, 3].freeze
5
5
  # Release date
6
- GRAFANA_REPORTER_RELEASE_DATE = '2022-08-30'
6
+ GRAFANA_REPORTER_RELEASE_DATE = '2023-01-08'
@@ -170,6 +170,7 @@ module Grafana
170
170
  # TODO: check how multiple frames have to be handled
171
171
  data = data['frames']
172
172
  headers = []
173
+
173
174
  data.first['schema']['fields'].each do |headline|
174
175
  use_name_only = true
175
176
  if not headline['config'].nil?
@@ -180,7 +181,9 @@ module Grafana
180
181
  header = use_name_only ? headline['name'] : headline['config']['displayNameFromDS']
181
182
  headers << header
182
183
  end
183
- content = data.first['data']['values'][0].zip(data.first['data']['values'][1])
184
+
185
+ # zip all result values together, so that we have one complete table
186
+ content = data.first['data']['values'][0].zip(*data.first['data']['values'][1..])
184
187
  return { header: headers, content: content }
185
188
 
186
189
  rescue
@@ -86,15 +86,8 @@ module Grafana
86
86
  # @param datasource_uid [String] unique id of the searched datasource
87
87
  # @return [Datasource] Datasource for the specified datasource unique id
88
88
  def datasource_by_uid(datasource_uid)
89
- datasource = @datasources.select do |ds_name, ds|
90
- if (ds.nil?)
91
- # print debug info for https://github.com/divinity666/ruby-grafana-reporter/issues/29
92
- @logger.warn("Datasource with name #{ds_name} is nil, which should never happen. Check logs for details.")
93
- false
94
- else
95
- ds.uid == datasource_uid
96
- end
97
- end.values.first
89
+ clean_nil_datasources
90
+ datasource = @datasources.select { |ds_name, ds| ds.uid == datasource_uid }.values.first
98
91
  raise DatasourceDoesNotExistError.new('uid', datasource_uid) unless datasource
99
92
 
100
93
  datasource
@@ -105,7 +98,8 @@ module Grafana
105
98
  # @param datasource_id [Integer] id of the searched datasource
106
99
  # @return [Datasource] Datasource for the specified datasource id
107
100
  def datasource_by_id(datasource_id)
108
- datasource = @datasources.select { |_name, ds| ds.id == datasource_id.to_i }.values.first
101
+ clean_nil_datasources
102
+ datasource = @datasources.select { |name, ds| ds.id == datasource_id.to_i }.values.first
109
103
  raise DatasourceDoesNotExistError.new('id', datasource_id) unless datasource
110
104
 
111
105
  datasource
@@ -171,7 +165,18 @@ module Grafana
171
165
  @datasources.delete(ds_name)
172
166
  end
173
167
  end
174
- @datasources['default'] = @datasources[json['defaultDatasource']]
168
+
169
+ @datasources['default'] = @datasources[json['defaultDatasource']] if not @datasources[json['defaultDatasource']].nil?
170
+ end
171
+
172
+ def clean_nil_datasources
173
+ @datasources.delete_if do |name, ds|
174
+ if ds.nil?
175
+ # print debug info for https://github.com/divinity666/ruby-grafana-reporter/issues/29
176
+ @logger.warn("Datasource with name #{name} is nil, which should never happen. Check logs for details.")
177
+ end
178
+ ds.nil?
179
+ end
175
180
  end
176
181
  end
177
182
  end
@@ -15,17 +15,39 @@ module Grafana
15
15
  raise MissingSqlQueryError if query_description[:raw_query].nil?
16
16
 
17
17
  sql = replace_variables(query_description[:raw_query], query_description[:variables])
18
- request = {
19
- body: {
20
- from: query_description[:from],
21
- to: query_description[:to],
22
- queries: [rawSql: sql, datasourceId: id, format: 'table']
23
- }.to_json,
24
- request: Net::HTTP::Post
25
- }
26
-
27
18
  webrequest = query_description[:prepared_request]
28
- webrequest.relative_url = '/api/tsdb/query'
19
+ request = {}
20
+
21
+ ver = query_description[:grafana_version].split('.').map{|x| x.to_i}
22
+ if ver[0] >= 8
23
+ webrequest.relative_url = '/api/ds/query'
24
+ request = {
25
+ body: {
26
+ from: query_description[:from],
27
+ to: query_description[:to],
28
+ queries: [{
29
+ datasource: { type: type, uid: uid },
30
+ datasourceId: id,
31
+ rawSql: sql,
32
+ format: 'table',
33
+ # intervalMs: '',
34
+ # maxDataPoints: 999,
35
+ refId: 'A'
36
+ }]
37
+ }.to_json,
38
+ request: Net::HTTP::Post
39
+ }
40
+ else
41
+ webrequest.relative_url = '/api/tsdb/query'
42
+ request = {
43
+ body: {
44
+ from: query_description[:from],
45
+ to: query_description[:to],
46
+ queries: [rawSql: sql, datasourceId: id, format: 'table']
47
+ }.to_json,
48
+ request: Net::HTTP::Post
49
+ }
50
+ end
29
51
  webrequest.options.merge!(request)
30
52
 
31
53
  result = webrequest.execute(query_description[:timeout])
@@ -91,8 +91,8 @@ module GrafanaReporter
91
91
  @logger.error(e.message)
92
92
  socket.write http_response(400, 'Bad Request', e.message)
93
93
  rescue StandardError => e
94
- @logger.fatal(e.message)
95
- socket.write http_response(400, 'Bad Request', e.message)
94
+ @logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
95
+ socket.write http_response(400, 'Bad Request', "#{e.message}\n#{e.backtrace.join("\n")}")
96
96
  ensure
97
97
  socket.close
98
98
  end
@@ -76,8 +76,8 @@ module GrafanaReporter
76
76
  @report.logger.error(e.message)
77
77
  reader.unshift_line "|#{e.message}"
78
78
  rescue StandardError => e
79
- @report.logger.fatal(e.message)
80
- reader.unshift_line "|#{e.message}"
79
+ @report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
80
+ reader.unshift_line "|#{e.message}\n#{e.backtrace.join("\n")}"
81
81
  end
82
82
 
83
83
  reader
@@ -75,8 +75,8 @@ module GrafanaReporter
75
75
  @report.logger.error(e.message)
76
76
  reader.unshift_line "|#{e.message}"
77
77
  rescue StandardError => e
78
- @report.logger.fatal(e.message)
79
- reader.unshift_line "|#{e.message}"
78
+ @report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
79
+ reader.unshift_line "|#{e.message}\n#{e.backtrace.join("\n")}"
80
80
  end
81
81
 
82
82
  reader
@@ -56,8 +56,8 @@ module GrafanaReporter
56
56
  @report.logger.error(e.message)
57
57
  return create_paragraph(parent, e.message, attrs)
58
58
  rescue StandardError => e
59
- @report.logger.fatal(e.message)
60
- return create_paragraph(parent, e.message, attrs)
59
+ @report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
60
+ return create_paragraph(parent, "#{e.message}\n#{e.backtrace.join("\n")}", attrs)
61
61
  end
62
62
 
63
63
  attrs['target'] = image_path
@@ -58,8 +58,8 @@ module GrafanaReporter
58
58
  @report.logger.error(e.message)
59
59
  return create_inline(parent, :quoted, e.message)
60
60
  rescue StandardError => e
61
- @report.logger.fatal(e.message)
62
- return create_inline(parent, :quoted, e.message)
61
+ @report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
62
+ return create_inline(parent, :quoted, "#{e.message}\n#{e.backtrace.join("\n")}")
63
63
  end
64
64
 
65
65
  create_inline(parent, :image, nil, { target: image_path, attributes: attrs })
@@ -50,8 +50,8 @@ module GrafanaReporter
50
50
  @report.logger.error(e.message)
51
51
  return create_inline(parent, :quoted, e.message)
52
52
  rescue StandardError => e
53
- @report.logger.fatal(e.message)
54
- return create_inline(parent, :quoted, e.message)
53
+ @report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
54
+ return create_inline(parent, :quoted, "#{e.message}\n#{e.backtrace.join("\n")}")
55
55
  end
56
56
 
57
57
  # translate linebreaks to asciidoctor syntax
@@ -70,8 +70,8 @@ module GrafanaReporter
70
70
  @report.logger.error(e.message)
71
71
  reader.unshift_line "|#{e.message}"
72
72
  rescue StandardError => e
73
- @report.logger.fatal(e.message)
74
- reader.unshift_line "|#{e.message}"
73
+ @report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
74
+ reader.unshift_line "|#{e.message}\n#{e.backtrace.join("\n")}"
75
75
  end
76
76
 
77
77
  reader
@@ -66,8 +66,8 @@ module GrafanaReporter
66
66
  @report.logger.error(e.message)
67
67
  create_inline(parent, :quoted, e.message)
68
68
  rescue StandardError => e
69
- @report.logger.fatal(e.message)
70
- create_inline(parent, :quoted, e.message)
69
+ @report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
70
+ create_inline(parent, :quoted, "#{e.message}\n#{e.backtrace.join("\n")}")
71
71
  end
72
72
  end
73
73
 
@@ -64,8 +64,8 @@ module GrafanaReporter
64
64
  @report.logger.error(e.message)
65
65
  reader.unshift_line "|#{e.message}"
66
66
  rescue StandardError => e
67
- @report.logger.fatal(e.message)
68
- reader.unshift_line "|#{e.message}"
67
+ @report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
68
+ reader.unshift_line "|#{e.message}\n#{e.backtrace.join("\n")}"
69
69
  end
70
70
 
71
71
  reader
@@ -71,8 +71,8 @@ module GrafanaReporter
71
71
  @report.logger.error(e.message)
72
72
  create_inline(parent, :quoted, e.message)
73
73
  rescue StandardError => e
74
- @report.logger.fatal(e.message)
75
- create_inline(parent, :quoted, e.message)
74
+ @report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
75
+ create_inline(parent, :quoted, "#{e.message}\n#{e.backtrace.join("\n")}")
76
76
  end
77
77
  end
78
78
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-grafana-reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Kohlmeyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-30 00:00:00.000000000 Z
11
+ date: 2023-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor
@@ -206,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
206
  - !ruby/object:Gem::Version
207
207
  version: '0'
208
208
  requirements: []
209
- rubygems_version: 3.1.2
209
+ rubygems_version: 3.1.4
210
210
  signing_key:
211
211
  specification_version: 4
212
212
  summary: Reporter Service for Grafana