ruby-grafana-reporter 0.6.1 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/VERSION.rb +2 -2
- data/lib/grafana/abstract_datasource.rb +4 -1
- data/lib/grafana/grafana.rb +16 -11
- data/lib/grafana/sql_datasource.rb +32 -10
- data/lib/grafana_reporter/application/webservice.rb +2 -2
- data/lib/grafana_reporter/asciidoctor/alerts_table_include_processor.rb +2 -2
- data/lib/grafana_reporter/asciidoctor/annotations_table_include_processor.rb +2 -2
- data/lib/grafana_reporter/asciidoctor/panel_image_block_macro.rb +2 -2
- data/lib/grafana_reporter/asciidoctor/panel_image_inline_macro.rb +2 -2
- data/lib/grafana_reporter/asciidoctor/panel_property_inline_macro.rb +2 -2
- data/lib/grafana_reporter/asciidoctor/panel_query_table_include_processor.rb +2 -2
- data/lib/grafana_reporter/asciidoctor/panel_query_value_inline_macro.rb +2 -2
- data/lib/grafana_reporter/asciidoctor/sql_table_include_processor.rb +2 -2
- data/lib/grafana_reporter/asciidoctor/sql_value_inline_macro.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e06395c66d098c01d5248872f7aac2bc8dd36c4f9c6f02774ffe022fd0cafc9f
|
|
4
|
+
data.tar.gz: 6ad05dfac340497fb0be61b14b6420a348b05dbd71b14e17b55553573cfcf3b8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 769a0c9258678b32100b21e38782ca668467ad2e016e63e3bc293d96311bb06d74b0b2a71f4033a576c71c94185e072ad37ac55d8d4cdc13a516a92f6c359895
|
|
7
|
+
data.tar.gz: 53a645d2db1eac77ed0e6977932b2947eb41efccf33f49f77db6c7ea4254ebd2f0c299fb1211546356734b744ca6359f36f392ae3afcf4243c835da3c7671bfa
|
data/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[](https://github.com/divinity666/ruby-grafana-reporter/blob/master/LICENSE)
|
|
2
|
-
[](https://ci.appveyor.com/project/divinity666/ruby-grafana-reporter/branch/master)
|
|
3
3
|
[](https://coveralls.io/github/divinity666/ruby-grafana-reporter?branch=master)
|
|
4
4
|
[](https://badge.fury.io/rb/ruby-grafana-reporter)
|
|
5
5
|
|
data/lib/VERSION.rb
CHANGED
|
@@ -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
|
-
|
|
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
|
data/lib/grafana/grafana.rb
CHANGED
|
@@ -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
|
-
|
|
90
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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:
|
|
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.
|
|
209
|
+
rubygems_version: 3.1.4
|
|
210
210
|
signing_key:
|
|
211
211
|
specification_version: 4
|
|
212
212
|
summary: Reporter Service for Grafana
|