influxdb 0.6.1 → 0.6.2
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/.rubocop.yml +4 -0
- data/.travis.yml +15 -13
- data/CHANGELOG.md +5 -0
- data/influxdb.gemspec +1 -1
- data/lib/influxdb.rb +1 -0
- data/lib/influxdb/client/http.rb +3 -1
- data/lib/influxdb/config.rb +1 -0
- data/lib/influxdb/logging.rb +1 -0
- data/lib/influxdb/max_queue.rb +1 -0
- data/lib/influxdb/point_value.rb +7 -6
- data/lib/influxdb/query/core.rb +2 -2
- data/lib/influxdb/query/measurement.rb +1 -0
- data/lib/influxdb/query/series.rb +1 -0
- data/lib/influxdb/timestamp_conversion.rb +23 -0
- data/lib/influxdb/version.rb +1 -1
- data/lib/influxdb/writer/async.rb +2 -0
- data/spec/influxdb/cases/query_batch_spec.rb +26 -26
- data/spec/influxdb/cases/query_cluster_spec.rb +2 -1
- data/spec/influxdb/cases/query_continuous_query_spec.rb +6 -4
- data/spec/influxdb/cases/query_core_spec.rb +2 -2
- data/spec/influxdb/cases/query_series_spec.rb +4 -4
- data/spec/influxdb/cases/query_with_params_spec.rb +2 -2
- data/spec/influxdb/cases/querying_issue_7000_spec.rb +34 -14
- data/spec/influxdb/cases/querying_spec.rb +155 -60
- data/spec/influxdb/cases/retry_requests_spec.rb +11 -11
- data/spec/influxdb/cases/show_field_keys_spec.rb +5 -5
- data/spec/influxdb/cases/udp_client_spec.rb +1 -1
- data/spec/influxdb/cases/write_points_spec.rb +19 -19
- data/spec/influxdb/client_spec.rb +4 -4
- data/spec/influxdb/config_spec.rb +9 -9
- data/spec/influxdb/point_value_spec.rb +8 -8
- data/spec/influxdb/time_conversion_spec.rb +26 -0
- data/spec/spec_helper.rb +1 -0
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7762707820de5633483a02078dd8d6254fbda6bd412fbf56c67e8517bd51684
|
4
|
+
data.tar.gz: 3ba80a79c409b7768a65616cf2f6b1e7a6097c862799a56cf5a9bc419a5c49e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 76cf43822faa5426b10160f7bb40cbd48af59a4cd1bfd494cd7978a82484b984e35440e3f714491884f78e6d497163567c162e66164c602bb7eeefe84c7b86a9
|
7
|
+
data.tar.gz: 742e37b48e925a5e0985570cc502a976c41f9059258d6347a9a132d8a4ef452d070f344aa20e4880a1b0bd800a887220816c9c370f2a176a04855a18dc865b98
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
@@ -8,9 +8,9 @@ before_install:
|
|
8
8
|
- bin/provision.sh
|
9
9
|
rvm:
|
10
10
|
- 2.2.9
|
11
|
-
- 2.3.
|
12
|
-
- 2.4.
|
13
|
-
- 2.5.
|
11
|
+
- 2.3.8
|
12
|
+
- 2.4.5
|
13
|
+
- 2.5.3
|
14
14
|
- ruby-head
|
15
15
|
env:
|
16
16
|
- TEST_TASK=spec
|
@@ -20,29 +20,31 @@ matrix:
|
|
20
20
|
- rvm: jruby-head
|
21
21
|
- rvm: ruby-head
|
22
22
|
- rvm: jruby-9.1.5.0
|
23
|
-
- rvm: 2.5.
|
23
|
+
- rvm: 2.5.3
|
24
24
|
env: influx_version=nightly channel=nightlies
|
25
25
|
include:
|
26
|
-
- rvm: 2.5.
|
26
|
+
- rvm: 2.5.3
|
27
27
|
env: TEST_TASK=rubocop
|
28
28
|
- rvm: jruby-9.1.5.0
|
29
29
|
- rvm: jruby-head
|
30
30
|
env: JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-Xss2m -J-Xmx256M'
|
31
|
-
- rvm: 2.5.
|
31
|
+
- rvm: 2.5.3
|
32
32
|
env: influx_version=1.0.2 pkghash=88f6c30fec2c6e612e802e23b9161fdfc7c5c29f6be036f0376326445aff0037
|
33
|
-
- rvm: 2.5.
|
33
|
+
- rvm: 2.5.3
|
34
34
|
env: influx_version=1.1.0 pkghash=f1520a2e18e0ab47e8a8810671e07d5a47960e54f7553b78bebe7d3c7594742f
|
35
|
-
- rvm: 2.5.
|
35
|
+
- rvm: 2.5.3
|
36
36
|
env: influx_version=1.2.4 pkghash=2fac8391e04aa1bec9151e8f0d8f18df030c866af2b4963ab7d86c6ddc172182
|
37
|
-
- rvm: 2.5.
|
37
|
+
- rvm: 2.5.3
|
38
38
|
env: influx_version=1.3.6 pkghash=6406cdd21466bcb832b967078adaa9f07cb6ae524a6579c15141692031f5f840
|
39
|
-
- rvm: 2.5.
|
39
|
+
- rvm: 2.5.3
|
40
40
|
env: influx_version=1.4.3 pkghash=0477080f1d1cf8e1242dc7318280b9010c4c45cf6a415a2a5de607ae17fa0359
|
41
|
-
- rvm: 2.5.
|
41
|
+
- rvm: 2.5.3
|
42
42
|
env: influx_version=1.5.2 pkghash=42fede7b497bdf30d4eb5138db218d1add986fca4fce4a8bcd9c7d6dabaf572a
|
43
|
-
- rvm: 2.5.
|
43
|
+
- rvm: 2.5.3
|
44
44
|
env: influx_version=1.6.1 pkghash=a833ac16890182a75983c61e5fe6471ae27cbab7984d7b7361034887b7428de2
|
45
|
-
- rvm: 2.5.
|
45
|
+
- rvm: 2.5.3
|
46
|
+
env: influx_version=1.7.0 pkghash=0615a395b3f8e68455b0a8a2584d00ff8694f62caf77468900f7cf0a77f2b8be
|
47
|
+
- rvm: 2.5.3
|
46
48
|
env: influx_version=nightly channel=nightlies
|
47
49
|
fail_fast: true
|
48
50
|
addons:
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
For the full commit log, [see here](https://github.com/influxdata/influxdb-ruby/commits/master).
|
4
4
|
|
5
|
+
## v0.6.2, released 2018-11-30
|
6
|
+
|
7
|
+
- Added `InfluxDB.convert_timestamp` utility to convert a `Time` to a
|
8
|
+
timestamp with (taken from PR influxdb-rails#53 by @ChrisBr).
|
9
|
+
|
5
10
|
## v0.6.1, released 2018-08-23
|
6
11
|
|
7
12
|
- Fix `InfluxDB::Client#delete_retention_policy`: the database name
|
data/influxdb.gemspec
CHANGED
@@ -21,6 +21,6 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
spec.add_development_dependency "rspec", "~> 3.6"
|
24
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
24
|
+
spec.add_development_dependency "rubocop", "~> 0.60.0"
|
25
25
|
spec.add_development_dependency "webmock", "~> 3.0"
|
26
26
|
end
|
data/lib/influxdb.rb
CHANGED
data/lib/influxdb/client/http.rb
CHANGED
@@ -58,6 +58,7 @@ module InfluxDB
|
|
58
58
|
unless (config.retry == -1 || retry_count <= config.retry) && !stopped?
|
59
59
|
raise InfluxDB::ConnectionError, "Tried #{retry_count - 1} times to reconnect but failed."
|
60
60
|
end
|
61
|
+
|
61
62
|
log(:warn) { "Failed to contact host #{host}: #{e.inspect} - retrying in #{delay}s." }
|
62
63
|
sleep delay
|
63
64
|
delay = [config.max_delay, delay * 2].min
|
@@ -96,13 +97,14 @@ module InfluxDB
|
|
96
97
|
end
|
97
98
|
|
98
99
|
errors = errors_from_response(parsed_response)
|
99
|
-
|
100
100
|
raise InfluxDB::QueryError, errors if errors
|
101
|
+
|
101
102
|
options.fetch(:parse, false) ? parsed_response : response
|
102
103
|
end
|
103
104
|
|
104
105
|
def errors_from_response(parsed_resp)
|
105
106
|
return unless parsed_resp.is_a?(Hash)
|
107
|
+
|
106
108
|
parsed_resp
|
107
109
|
.fetch('results', [])
|
108
110
|
.fetch(0, {})
|
data/lib/influxdb/config.rb
CHANGED
data/lib/influxdb/logging.rb
CHANGED
data/lib/influxdb/max_queue.rb
CHANGED
data/lib/influxdb/point_value.rb
CHANGED
@@ -21,11 +21,11 @@ module InfluxDB
|
|
21
21
|
private
|
22
22
|
|
23
23
|
ESCAPES = {
|
24
|
-
measurement:
|
25
|
-
tag_key:
|
26
|
-
tag_value:
|
27
|
-
field_key:
|
28
|
-
field_value:
|
24
|
+
measurement: [' '.freeze, ','.freeze],
|
25
|
+
tag_key: ['='.freeze, ' '.freeze, ','.freeze],
|
26
|
+
tag_value: ['='.freeze, ' '.freeze, ','.freeze],
|
27
|
+
field_key: ['='.freeze, ' '.freeze, ','.freeze, '"'.freeze],
|
28
|
+
field_value: ["\\".freeze, '"'.freeze],
|
29
29
|
}.freeze
|
30
30
|
|
31
31
|
private_constant :ESCAPES
|
@@ -34,7 +34,7 @@ module InfluxDB
|
|
34
34
|
# rubocop:disable Layout/AlignParameters
|
35
35
|
str = str.encode "UTF-8".freeze, "UTF-8".freeze,
|
36
36
|
invalid: :replace,
|
37
|
-
undef:
|
37
|
+
undef: :replace,
|
38
38
|
replace: "".freeze
|
39
39
|
# rubocop:enable Layout/AlignParameters
|
40
40
|
|
@@ -46,6 +46,7 @@ module InfluxDB
|
|
46
46
|
|
47
47
|
def escape_values(values)
|
48
48
|
return if values.nil?
|
49
|
+
|
49
50
|
values.map do |k, v|
|
50
51
|
key = escape(k.to_s, :field_key)
|
51
52
|
val = escape_value(v)
|
data/lib/influxdb/query/core.rb
CHANGED
@@ -74,8 +74,8 @@ module InfluxDB
|
|
74
74
|
|
75
75
|
def write(data, precision, retention_policy = nil, database = nil)
|
76
76
|
params = {
|
77
|
-
db:
|
78
|
-
precision:
|
77
|
+
db: database || config.database,
|
78
|
+
precision: precision || config.time_precision,
|
79
79
|
}
|
80
80
|
|
81
81
|
params[:rp] = retention_policy if retention_policy
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module InfluxDB #:nodoc:
|
2
|
+
TIMESTAMP_CONVERSIONS = {
|
3
|
+
"ns" => 1e9.to_r,
|
4
|
+
nil => 1e9.to_r,
|
5
|
+
"u" => 1e6.to_r,
|
6
|
+
"ms" => 1e3.to_r,
|
7
|
+
"s" => 1.to_r,
|
8
|
+
"m" => 1.to_r / 60,
|
9
|
+
"h" => 1.to_r / 60 / 60,
|
10
|
+
}.freeze
|
11
|
+
private_constant :TIMESTAMP_CONVERSIONS
|
12
|
+
|
13
|
+
# Converts a Time to a timestamp with the given precision.
|
14
|
+
#
|
15
|
+
# `convert_timestamp(Time.now, "ms")` might return `1543533308243`.
|
16
|
+
def self.convert_timestamp(time, time_precision)
|
17
|
+
factor = TIMESTAMP_CONVERSIONS.fetch(time_precision) do
|
18
|
+
raise "Invalid time precision: #{time_precision}"
|
19
|
+
end
|
20
|
+
|
21
|
+
(time.to_r * factor).to_i
|
22
|
+
end
|
23
|
+
end
|
data/lib/influxdb/version.rb
CHANGED
@@ -19,10 +19,12 @@ module InfluxDB
|
|
19
19
|
WORKER_MUTEX = Mutex.new
|
20
20
|
def worker
|
21
21
|
return @worker if @worker
|
22
|
+
|
22
23
|
WORKER_MUTEX.synchronize do
|
23
24
|
# this return is necessary because the previous mutex holder
|
24
25
|
# might have already assigned the @worker
|
25
26
|
return @worker if @worker
|
27
|
+
|
26
28
|
@worker = Worker.new(client, config)
|
27
29
|
end
|
28
30
|
end
|
@@ -65,26 +65,26 @@ describe InfluxDB::Client do
|
|
65
65
|
|
66
66
|
let :response do
|
67
67
|
{ "results" => [{ "statement_id" => 0,
|
68
|
-
"series"
|
69
|
-
|
70
|
-
|
68
|
+
"series" => [{ "name" => "requests_per_minute",
|
69
|
+
"columns" => %w[time value],
|
70
|
+
"values" => [%w[2018-04-02T00:00:00Z 204]] }] },
|
71
71
|
{ "statement_id" => 1 },
|
72
72
|
{ "statement_id" => 2,
|
73
|
-
"series"
|
74
|
-
|
75
|
-
|
73
|
+
"series" => [{ "name" => "requests_per_minute",
|
74
|
+
"columns" => %w[time value],
|
75
|
+
"values" => [%w[2018-04-02T00:00:00Z 204]] }] }] }
|
76
76
|
end
|
77
77
|
|
78
78
|
let :expected_result do
|
79
79
|
[
|
80
|
-
[{ "name"
|
81
|
-
"tags"
|
82
|
-
"values" => [{ "time"
|
80
|
+
[{ "name" => "requests_per_minute",
|
81
|
+
"tags" => nil,
|
82
|
+
"values" => [{ "time" => "2018-04-02T00:00:00Z",
|
83
83
|
"value" => "204" }] }],
|
84
84
|
[],
|
85
|
-
[{ "name"
|
86
|
-
"tags"
|
87
|
-
"values" => [{ "time"
|
85
|
+
[{ "name" => "requests_per_minute",
|
86
|
+
"tags" => nil,
|
87
|
+
"values" => [{ "time" => "2018-04-02T00:00:00Z",
|
88
88
|
"value" => "204" }] }],
|
89
89
|
]
|
90
90
|
end
|
@@ -113,24 +113,24 @@ describe InfluxDB::Client do
|
|
113
113
|
|
114
114
|
let :response do
|
115
115
|
{ "results" => [{ "statement_id" => 0,
|
116
|
-
"series"
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
116
|
+
"series" => [{ "name" => "requests_per_minute",
|
117
|
+
"tags" => { "status_code" => "200" },
|
118
|
+
"columns" => %w[time value],
|
119
|
+
"values" => [%w[2018-04-02T00:00:00Z 204]] },
|
120
|
+
{ "name" => "requests_per_minute",
|
121
|
+
"tags" => { "status_code" => "500" },
|
122
|
+
"columns" => %w[time value],
|
123
|
+
"values" => [%w[2018-04-02T00:00:00Z 204]] }] }] }
|
124
124
|
end
|
125
125
|
|
126
126
|
let :expected_result do
|
127
|
-
[[{ "name"
|
128
|
-
"tags"
|
129
|
-
"values" => [{ "time"
|
127
|
+
[[{ "name" => "requests_per_minute",
|
128
|
+
"tags" => { "status_code" => "200" },
|
129
|
+
"values" => [{ "time" => "2018-04-02T00:00:00Z",
|
130
130
|
"value" => "204" }] },
|
131
|
-
{ "name"
|
132
|
-
"tags"
|
133
|
-
"values" => [{ "time"
|
131
|
+
{ "name" => "requests_per_minute",
|
132
|
+
"tags" => { "status_code" => "500" },
|
133
|
+
"values" => [{ "time" => "2018-04-02T00:00:00Z",
|
134
134
|
"value" => "204" }] }]]
|
135
135
|
end
|
136
136
|
|
@@ -49,7 +49,8 @@ describe InfluxDB::Client do
|
|
49
49
|
describe "#list_cluster_admins" do
|
50
50
|
let(:response) do
|
51
51
|
{ "results" => [{ "statement_id" => 0,
|
52
|
-
"series"
|
52
|
+
"series" => [{ "columns" => %w[user admin],
|
53
|
+
"values" => [["dbadmin", true], ["foobar", false]] }] }] }
|
53
54
|
end
|
54
55
|
let(:expected_result) { ["dbadmin"] }
|
55
56
|
|
@@ -17,10 +17,12 @@ describe InfluxDB::Client do
|
|
17
17
|
let(:database) { "testdb" }
|
18
18
|
let(:response) do
|
19
19
|
{ "results" => [{ "statement_id" => 0,
|
20
|
-
"series"
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
"series" => [{ "name" => "otherdb",
|
21
|
+
"columns" => %w[name query],
|
22
|
+
"values" => [["clicks_per_hour", "CREATE CONTINUOUS QUERY clicks_per_hour ON otherdb BEGIN SELECT count(name) INTO \"otherdb\".\"default\".clicksCount_1h FROM \"otherdb\".\"default\".clicks GROUP BY time(1h) END"]] },
|
23
|
+
{ "name" => "testdb",
|
24
|
+
"columns" => %w[name query],
|
25
|
+
"values" => [["event_counts", "CREATE CONTINUOUS QUERY event_counts ON testdb BEGIN SELECT count(type) INTO \"testdb\".\"default\".typeCount_10m_byType FROM \"testdb\".\"default\".events GROUP BY time(10m), type END"]] }] }] }
|
24
26
|
end
|
25
27
|
|
26
28
|
let(:expected_result) do
|
@@ -16,8 +16,8 @@ describe InfluxDB::Client do
|
|
16
16
|
|
17
17
|
let :response do
|
18
18
|
{ "results" => [{ "statement_id" => 0,
|
19
|
-
"series"
|
20
|
-
|
19
|
+
"series" => [{ "name" => "requests_per_minute",
|
20
|
+
"columns" => %w[time value] }] }] }
|
21
21
|
end
|
22
22
|
|
23
23
|
before do
|
@@ -6,10 +6,10 @@ describe InfluxDB::Client do
|
|
6
6
|
described_class.new(
|
7
7
|
"database",
|
8
8
|
{
|
9
|
-
host:
|
10
|
-
port:
|
11
|
-
username:
|
12
|
-
password:
|
9
|
+
host: "influxdb.test",
|
10
|
+
port: 9999,
|
11
|
+
username: "username",
|
12
|
+
password: "password",
|
13
13
|
time_precision: "s"
|
14
14
|
}.merge(args)
|
15
15
|
)
|
@@ -18,8 +18,8 @@ describe InfluxDB::Client do
|
|
18
18
|
|
19
19
|
let(:response) do
|
20
20
|
{ "results" => [{ "statement_id" => 0,
|
21
|
-
"series"
|
22
|
-
|
21
|
+
"series" => [{ "name" => "requests_per_minute",
|
22
|
+
"columns" => %w[time value] }] }] }
|
23
23
|
end
|
24
24
|
|
25
25
|
before do
|
@@ -7,10 +7,10 @@ require "json"
|
|
7
7
|
describe InfluxDB::Client do
|
8
8
|
let(:subject) do
|
9
9
|
described_class.new "database", {
|
10
|
-
host:
|
11
|
-
port:
|
12
|
-
username:
|
13
|
-
password:
|
10
|
+
host: "influxdb.test",
|
11
|
+
port: 9999,
|
12
|
+
username: "username",
|
13
|
+
password: "password",
|
14
14
|
time_precision: "s"
|
15
15
|
}.merge(args)
|
16
16
|
end
|
@@ -33,11 +33,11 @@ describe InfluxDB::Client do
|
|
33
33
|
|
34
34
|
let(:response_line_1) do
|
35
35
|
{ "results" => [{ "statement_id" => 0,
|
36
|
-
"series"
|
36
|
+
"series" => [{ "name" => "cpu", "tags" => { "region" => "pl" }, "columns" => %w[time temp value], "values" => [["2015-07-07T15:13:04Z", 34, 0.343443]] }] }] }
|
37
37
|
end
|
38
38
|
let(:response_line_2) do
|
39
39
|
{ "results" => [{ "statement_id" => 0,
|
40
|
-
"series"
|
40
|
+
"series" => [{ "name" => "cpu", "tags" => { "region" => "us" }, "columns" => %w[time temp value], "values" => [["2015-07-07T14:58:37Z", 92, 0.3445], ["2015-07-07T14:59:09Z", 68, 0.8787]] }] }] }
|
41
41
|
end
|
42
42
|
let(:response) do
|
43
43
|
JSON.generate(response_line_1) + "\n" + JSON.generate(response_line_2)
|
@@ -62,28 +62,48 @@ describe InfluxDB::Client do
|
|
62
62
|
|
63
63
|
let(:response_line_1) do
|
64
64
|
{ "results" => [{ "statement_id" => 0,
|
65
|
-
"series"
|
65
|
+
"series" => [{ "name" => "access_times.service_1",
|
66
|
+
"tags" => { "code" => "200", "result" => "failure", "status" => "OK" },
|
67
|
+
"columns" => %w[time value],
|
68
|
+
"values" => [["2015-07-08T07:15:22Z", 327]] }] }] }
|
66
69
|
end
|
67
70
|
let(:response_line_2) do
|
68
71
|
{ "results" => [{ "statement_id" => 0,
|
69
|
-
"series"
|
72
|
+
"series" => [{ "name" => "access_times.service_1",
|
73
|
+
"tags" => { "code" => "500", "result" => "failure", "status" => "Internal Server Error" },
|
74
|
+
"columns" => %w[time value],
|
75
|
+
"values" => [["2015-07-08T06:15:22Z", 873]] }] }] }
|
70
76
|
end
|
71
77
|
let(:response_line_3) do
|
72
78
|
{ "results" => [{ "statement_id" => 0,
|
73
|
-
"series"
|
79
|
+
"series" => [{ "name" => "access_times.service_2",
|
80
|
+
"tags" => { "code" => "200", "result" => "failure", "status" => "OK" },
|
81
|
+
"columns" => %w[time value],
|
82
|
+
"values" => [["2015-07-08T07:15:22Z", 943]] }] }] }
|
74
83
|
end
|
75
84
|
let(:response_line_4) do
|
76
85
|
{ "results" => [{ "statement_id" => 0,
|
77
|
-
"series"
|
86
|
+
"series" => [{ "name" => "access_times.service_2",
|
87
|
+
"tags" => { "code" => "500", "result" => "failure", "status" => "Internal Server Error" },
|
88
|
+
"columns" => %w[time value],
|
89
|
+
"values" => [["2015-07-08T06:15:22Z", 606]] }] }] }
|
78
90
|
end
|
79
91
|
let(:response) do
|
80
92
|
JSON.generate(response_line_1) + "\n" + JSON.generate(response_line_2) + "\n" + JSON.generate(response_line_3) + "\n" + JSON.generate(response_line_4)
|
81
93
|
end
|
82
94
|
let(:expected_result) do
|
83
|
-
[{ "name"
|
84
|
-
|
85
|
-
|
86
|
-
{ "name"
|
95
|
+
[{ "name" => "access_times.service_1",
|
96
|
+
"tags" => { "code" => "200", "result" => "failure", "status" => "OK" },
|
97
|
+
"values" => [{ "time" => "2015-07-08T07:15:22Z", "value" => 327 }] },
|
98
|
+
{ "name" => "access_times.service_1",
|
99
|
+
"tags" => { "code" => "500", "result" => "failure", "status" => "Internal Server Error" },
|
100
|
+
"values" => [{ "time" => "2015-07-08T06:15:22Z", "value" => 873 }] },
|
101
|
+
{ "name" => "access_times.service_2",
|
102
|
+
"tags" => { "code" => "200", "result" => "failure", "status" => "OK" },
|
103
|
+
"values" => [{ "time" => "2015-07-08T07:15:22Z", "value" => 943 }] },
|
104
|
+
{ "name" => "access_times.service_2",
|
105
|
+
"tags" => { "code" => "500", "result" => "failure", "status" => "Internal Server Error" },
|
106
|
+
"values" => [{ "time" => "2015-07-08T06:15:22Z", "value" => 606 }] }]
|
87
107
|
end
|
88
108
|
let(:query) { "SELECT * FROM /access_times.*/" }
|
89
109
|
|