consul-templaterb 1.5.5 → 1.5.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -1
- data/lib/consul/async/stats.rb +9 -1
- data/lib/consul/async/version.rb +1 -1
- data/samples/metrics.erb +10 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 304b95f065eeb5380e20568ab0d157b011b02e2990bcad5badffdc9cdbd74463
|
4
|
+
data.tar.gz: e3e520457339beea59c4d0caf4f21b42457ad67fb163d5f2a93ce227b0bb5602
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cf440dbc49f9f9834eae4fee2f8377e7dbcd06362ca8a7bf4ca0525d62ac5e426c2069f571a76e82081db10a43c55faea2c4a31050015cb4b5e060905d81017
|
7
|
+
data.tar.gz: 83a6958a169229cbb598a93440852f824e5cc8c65c6e2b751146e36e5371e8c6cc8bafd3bedfd2862e2323d2047eaa01ad6abc86c54bfbf4543034f61082b8e4
|
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,14 @@
|
|
2
2
|
|
3
3
|
## (UNRELEASED)
|
4
4
|
|
5
|
-
## 1.5.
|
5
|
+
## 1.5.6 (September 30, 2018)
|
6
|
+
|
7
|
+
IMPROVEMENTS:
|
8
|
+
|
9
|
+
* Added methods to get timestamps on each endpoint
|
10
|
+
* Use timestamps in [Prometheus template](samples/metrics.erb) to get more precise metrics
|
11
|
+
|
12
|
+
## 1.5.5 (September 27, 2018)
|
6
13
|
|
7
14
|
IMPROVEMENTS:
|
8
15
|
|
data/lib/consul/async/stats.rb
CHANGED
@@ -3,21 +3,25 @@ require 'consul/async/utilities'
|
|
3
3
|
module Consul
|
4
4
|
module Async
|
5
5
|
class EndPointStats
|
6
|
-
attr_reader :successes, :errors, :start, :body_bytes
|
6
|
+
attr_reader :successes, :errors, :start, :body_bytes, :last_error, :last_success
|
7
7
|
|
8
8
|
def initialize
|
9
9
|
@start = Time.now.utc
|
10
10
|
@successes = 0
|
11
11
|
@errors = 0
|
12
12
|
@body_bytes = 0
|
13
|
+
@last_error = @start
|
14
|
+
@last_success = @start
|
13
15
|
end
|
14
16
|
|
15
17
|
def on_response(res)
|
18
|
+
@last_success = Time.now.utc
|
16
19
|
@successes += 1
|
17
20
|
@body_bytes = body_bytes + res.http.response.bytesize
|
18
21
|
end
|
19
22
|
|
20
23
|
def on_error(_http)
|
24
|
+
@last_error = Time.now.utc
|
21
25
|
@errors += 1
|
22
26
|
end
|
23
27
|
|
@@ -34,6 +38,10 @@ module Consul
|
|
34
38
|
def body_bytes_human
|
35
39
|
Utilities.bytes_to_h(body_bytes)
|
36
40
|
end
|
41
|
+
|
42
|
+
def last_success_or_error
|
43
|
+
[@last_error, @last_success].max
|
44
|
+
end
|
37
45
|
end
|
38
46
|
end
|
39
47
|
end
|
data/lib/consul/async/version.rb
CHANGED
data/samples/metrics.erb
CHANGED
@@ -50,15 +50,15 @@
|
|
50
50
|
%>
|
51
51
|
# HELP consul_datacenters_count A gauge of number of datacenters available
|
52
52
|
# TYPE consul_nodes_count gauge
|
53
|
-
consul_datacenters_count <%= datacenters().count %>
|
53
|
+
consul_datacenters_count <%= datacenters().count %> <%= datacenters().endpoint.stats.last_success_or_error.to_i * 1000 %>
|
54
54
|
|
55
55
|
# HELP consul_nodes_count A gauge of number of nodes in the cluster
|
56
56
|
# TYPE consul_nodes_count gauge
|
57
|
-
consul_nodes_count <%= nodes().count %>
|
57
|
+
consul_nodes_count <%= nodes().count %> <%= nodes().endpoint.stats.last_success_or_error.to_i * 1000 %>
|
58
58
|
|
59
59
|
# HELP consul_services_count A gauge of the number of services
|
60
60
|
# TYPE consul_services_count gauge
|
61
|
-
consul_services_count <%= service_count %>
|
61
|
+
consul_services_count <%= service_count %> <%= services(tag: service_tag_filter).endpoint.stats.last_success_or_error.to_i * 1000 %>
|
62
62
|
|
63
63
|
# HELP consul_service_count A gauge of number instances of service with their current state
|
64
64
|
# TYPE consul_service_count gauge
|
@@ -71,20 +71,22 @@ consul_services_count <%= service_count %>
|
|
71
71
|
|
72
72
|
<%
|
73
73
|
json_backends = {}
|
74
|
+
now = Time.now.utc.to_i * 1000
|
74
75
|
backends.each_pair do |service_name, service_info|
|
76
|
+
last_update = service_info[:stats].last_success_or_error.to_i * 1000
|
75
77
|
service_info[:state].each_pair do |state_name, state_count|
|
76
|
-
%>consul_service_count{service="<%= service_name %>",state="<%= state_name %>"} <%= state_count %>
|
78
|
+
%>consul_service_count{service="<%= service_name %>",state="<%= state_name %>"} <%= state_count %> <%= last_update %>
|
77
79
|
<%
|
78
80
|
end
|
79
81
|
current_stats = service_info[:stats]
|
80
|
-
%>consul_service_stats_requests_total{service="<%= service_name %>",type="success"} <%= current_stats.successes %>
|
82
|
+
%>consul_service_stats_requests_total{service="<%= service_name %>",type="success"} <%= current_stats.successes %> <%= last_update %>
|
81
83
|
<%
|
82
84
|
if current_stats.errors > 0
|
83
|
-
%>consul_service_stats_requests_total{service="<%= service_name %>",type="errors"} <%= current_stats.errors %>
|
85
|
+
%>consul_service_stats_requests_total{service="<%= service_name %>",type="errors"} <%= current_stats.errors %> <%= last_update %>
|
84
86
|
<%
|
85
87
|
end
|
86
|
-
%>consul_service_stats_requests_bytes{service="<%= service_name %>"} <%= service_info[:stats].body_bytes %>
|
87
|
-
consul_service_stats_requests_bytes_per_sec{service="<%= service_name %>"} <%= service_info[:stats].bytes_per_sec %>
|
88
|
+
%>consul_service_stats_requests_bytes{service="<%= service_name %>"} <%= service_info[:stats].body_bytes %> <%= last_update %>
|
89
|
+
consul_service_stats_requests_bytes_per_sec{service="<%= service_name %>"} <%= service_info[:stats].bytes_per_sec %> <%= now %>
|
88
90
|
|
89
91
|
<%
|
90
92
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: consul-templaterb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SRE Core Services
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: em-http-request
|