graphite-api 0.3.0 → 0.3.1
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 +30 -14
- data/lib/graphite-api/connector.rb +7 -4
- data/lib/graphite-api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 971a57f1632c01fa383fcafd604fb0c020e55039
|
4
|
+
data.tar.gz: b49356560ef58767756cb38c5110685307ec5113
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a31a71042953ac8b4cee6c23f29b934f6202b2e0f609a6b80b99d20b122683461f2a6e2bdb8ae25fb8fb07ebe5d6239499390c8beee2f329003656e8cdbc29d
|
7
|
+
data.tar.gz: 4e4d60ccf3f79cf80af1efad3018731f99e252c02ec0e281e6ec6414ee53c7e9b4fe66a8e19ad5f906a33ca7d9b25ec897d0c5299afd794ff5115a8ea97f92ac
|
data/README.md
CHANGED
@@ -41,19 +41,40 @@ rake install
|
|
41
41
|
```
|
42
42
|
|
43
43
|
## Client Usage
|
44
|
-
|
44
|
+
|
45
|
+
Creating a new UDP client
|
45
46
|
|
46
47
|
```ruby
|
47
48
|
require 'graphite-api'
|
48
49
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
)
|
50
|
+
options = {
|
51
|
+
# Required: valid URI {udp,tcp}://host:port/?timeout=seconds
|
52
|
+
graphite: "udp://graphite.example.com:2003",
|
53
|
+
|
54
|
+
# Optional: add example.prefix to each key
|
55
|
+
prefix: ["example","prefix"],
|
56
|
+
|
57
|
+
# Optional: results are aggregated in 60 seconds slices ( default is 60 )
|
58
|
+
slice: 60,
|
59
|
+
|
60
|
+
# Optional: send to graphite every 60 seconds ( default is 0 - direct send )
|
61
|
+
interval: 60,
|
62
|
+
|
63
|
+
# Optional: set the max age in seconds for records reanimation ( default is 12 hours )
|
64
|
+
cache: 4 * 60 * 60
|
65
|
+
}
|
66
|
+
|
67
|
+
client = GraphiteAPI.new options
|
68
|
+
```
|
69
|
+
|
70
|
+
TCP Client
|
71
|
+
```ruby
|
72
|
+
client = GraphiteAPI.new graphite: "tcp://graphite.example.com:2003"
|
73
|
+
```
|
74
|
+
|
75
|
+
TCP Client with 30 seconds timeout
|
76
|
+
```ruby
|
77
|
+
client = GraphiteAPI.new graphite: "tcp://graphite.example.com:2003?timeout=30"
|
57
78
|
```
|
58
79
|
|
59
80
|
Adding simple metrics
|
@@ -226,11 +247,6 @@ client.bla.bla.value2 27
|
|
226
247
|
<br/>
|
227
248
|
<img src="https://raw.github.com/kontera-technologies/graphite-api/master/examples/middleware_t1.png" align="center">
|
228
249
|
|
229
|
-
## TODO:
|
230
|
-
* Better documentation
|
231
|
-
* Use Redis for caching
|
232
|
-
* Multiple backends via client as well
|
233
|
-
|
234
250
|
## Bugs
|
235
251
|
|
236
252
|
If you find a bug, feel free to report it @ our [issues tracker](https://github.com/kontera-technologies/graphite-api/issues) on github.
|
@@ -45,7 +45,7 @@ module GraphiteAPI
|
|
45
45
|
def socket
|
46
46
|
@socket ||= begin
|
47
47
|
host, port = @uri.host, @uri.port
|
48
|
-
timeout = Hash[URI.decode_www_form(@uri.query.to_s)].fetch("timeout", 1)
|
48
|
+
timeout = Hash[URI.decode_www_form(@uri.query.to_s)].fetch("timeout", 1).to_f
|
49
49
|
addr = Socket.getaddrinfo host, nil, :INET
|
50
50
|
sockaddr = Socket.pack_sockaddr_in port, addr[0][3]
|
51
51
|
|
@@ -79,7 +79,7 @@ module GraphiteAPI
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def publish messages
|
82
|
-
Logger.debug [:connector_group, :publish, messages, @connectors]
|
82
|
+
Logger.debug [:connector_group, :publish, messages.size, @connectors]
|
83
83
|
Array(messages).each { |msg| @connectors.map {|c| c.puts msg} }
|
84
84
|
end
|
85
85
|
end
|
@@ -94,7 +94,7 @@ module GraphiteAPI
|
|
94
94
|
def puts message
|
95
95
|
counter = 0
|
96
96
|
begin
|
97
|
-
Logger.debug [:connector, :puts, @uri, message]
|
97
|
+
Logger.debug [:connector, :puts, @uri.to_s, message]
|
98
98
|
socket.puts message + "\n"
|
99
99
|
rescue Exception
|
100
100
|
@socket = nil
|
@@ -102,11 +102,14 @@ module GraphiteAPI
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
+
def inspect
|
106
|
+
"#<#{self.class}:#{object_id}: #{@uri}>"
|
107
|
+
end
|
108
|
+
|
105
109
|
private
|
106
110
|
|
107
111
|
def socket
|
108
112
|
if @socket.nil? || @socket.closed?
|
109
|
-
Logger.debug [:connector, :init, @uri]
|
110
113
|
@socket = @uri.scheme.eql?("tcp") ? TCPSocket.new(@uri) : UDPSocket.new(@uri)
|
111
114
|
end
|
112
115
|
@socket
|
data/lib/graphite-api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphite-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eran Barak Levi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|