fluent_logger_statistics 0.2.0 → 0.3.0
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 +15 -7
- data/lib/fluent_logger_statistics/app.rb +13 -11
- data/lib/fluent_logger_statistics/middleware.rb +5 -8
- data/lib/fluent_logger_statistics/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: ed0b43301c6beb92978b77b3eee67f05c8b7c3da
|
4
|
+
data.tar.gz: 74e98587db73f9270ffe91b603c0477bb37b408f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b12299eea163d97ced0722126efe21c0d5772a88d578e03359fa417d72c7d16575ff0de1f5e01949c72747b9a706eeb88f7d44a6ae9cb413baa2c1a6d97942e9
|
7
|
+
data.tar.gz: 1c086a9aba069c80b9f3b004c4e04dbcbbcd81cbe5fe553d8e218d043c2be65dd7e3c5622c7e18691e59d41d546c0c819c908900cc2480a4e69c049f4205e6f5
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
Middleware settings:
|
7
7
|
```ruby
|
8
8
|
Rails.configuration.middleware.use FluentLoggerStatistics::Middleware,
|
9
|
-
'/endpoint',
|
9
|
+
'/endpoint/',
|
10
10
|
{
|
11
11
|
resource_name1: fluent_logger1, # instance of Fluent::Logger::FluentLogger
|
12
12
|
resource_name2: fluent_logger2,
|
@@ -14,11 +14,19 @@ Rails.configuration.middleware.use FluentLoggerStatistics::Middleware,
|
|
14
14
|
}
|
15
15
|
```
|
16
16
|
|
17
|
-
After rails
|
17
|
+
After rails boots, then
|
18
18
|
```sh
|
19
|
-
$ curl http://rails-host/endpoint
|
20
|
-
{
|
21
|
-
|
22
|
-
|
23
|
-
|
19
|
+
$ curl http://rails-host/endpoint | jq .
|
20
|
+
{
|
21
|
+
"resource_name1": {
|
22
|
+
"buffer_bytesize": 0,
|
23
|
+
"buffer_limit": 8388608,
|
24
|
+
"buffer_usage_rate": 0
|
25
|
+
},
|
26
|
+
"resource_name2": {
|
27
|
+
"buffer_bytesize": 236,
|
28
|
+
"buffer_limit": 8388608,
|
29
|
+
"buffer_usage_rate": 2.8133392333984375e-05
|
30
|
+
}
|
31
|
+
}
|
24
32
|
```
|
@@ -2,8 +2,8 @@ module FluentLoggerStatistics
|
|
2
2
|
class App
|
3
3
|
include Rack::Utils
|
4
4
|
|
5
|
-
def initialize(
|
6
|
-
@
|
5
|
+
def initialize(fluent_loggers)
|
6
|
+
@fluent_loggers = fluent_loggers
|
7
7
|
end
|
8
8
|
|
9
9
|
ACCEPT_METHODS = ['GET'].freeze
|
@@ -16,16 +16,18 @@ module FluentLoggerStatistics
|
|
16
16
|
status = 200
|
17
17
|
header = {'Content-Type' => 'application/json'}
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
buffer_limit:
|
19
|
+
stats = @fluent_loggers.map{|k,v|
|
20
|
+
bytesize = v.pending_bytesize
|
21
|
+
limit_bytesize = v.limit
|
22
|
+
usage_rate = bytesize / limit_bytesize.to_f
|
23
|
+
[k, {
|
24
|
+
buffer_bytesize: bytesize,
|
25
|
+
buffer_limit: limit_bytesize,
|
26
26
|
buffer_usage_rate: usage_rate
|
27
|
-
}
|
28
|
-
|
27
|
+
}]
|
28
|
+
}.to_h
|
29
|
+
|
30
|
+
body = [ stats.to_json ]
|
29
31
|
|
30
32
|
[status, header, body]
|
31
33
|
end
|
@@ -2,20 +2,17 @@ require "fluent_logger_statistics/app"
|
|
2
2
|
|
3
3
|
module FluentLoggerStatistics
|
4
4
|
class Middleware
|
5
|
-
def initialize(app,
|
5
|
+
def initialize(app, path, loggers)
|
6
6
|
@app = app
|
7
|
-
@
|
8
|
-
|
9
|
-
[ path, App.new(logger) ]
|
10
|
-
}.to_h
|
7
|
+
@path = path
|
8
|
+
@fluent_app = App.new(loggers)
|
11
9
|
end
|
12
10
|
|
13
11
|
ACCEPT_METHODS = ['GET'].freeze
|
14
12
|
|
15
13
|
def call(env)
|
16
|
-
|
17
|
-
|
18
|
-
@fluent_apps[path].call(env)
|
14
|
+
if env['PATH_INFO'] == @path && ACCEPT_METHODS.include?(env['REQUEST_METHOD'])
|
15
|
+
@fluent_app.call(env)
|
19
16
|
else
|
20
17
|
@app.call(env)
|
21
18
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent_logger_statistics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takuya Kosugiyama
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|