graphite-api 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|