fluent-plugin-mongokpi 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +13 -12
- data/fluent-plugin-mongokpi.gemspec +1 -1
- data/lib/fluent/plugin/out_mongokpi.rb +2 -2
- metadata +2 -2
data/README.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
## Description
|
4
4
|
Fluent BufferedOutput plugin: counting chunk, inserting counts to MongoDB
|
5
|
+
version 2.4 or newer MongoDB is required (using setOnInsert command)
|
5
6
|
|
6
7
|
## Installation
|
7
8
|
$ gem install fluent-plugin-mongokpi
|
@@ -78,12 +79,12 @@ log
|
|
78
79
|
MongoDB
|
79
80
|
|
80
81
|
db.kpiCol20131125.find()
|
81
|
-
{ "_id" : "
|
82
|
-
"hh" :
|
83
|
-
{ "_id" : "
|
84
|
-
"hh" :
|
85
|
-
{ "_id" : "
|
86
|
-
"hh" :
|
82
|
+
{ "_id" : "git2013112520", "count" : 3, "count1xx" : 1, "count2xx" : 1, "count3xx" : 1, "count4xx" : 0, "count5xx" : 0, "countOver" : 0,
|
83
|
+
"hh" : 20, "okRatio" : 1, "responseTimeAve" : 2000, "responseTimeMax" : 3000, "responseTimeMin" : 1000, "responseTimeSum" : 6000, "site" : "git", "yyyymmdd" : 20131125 }
|
84
|
+
{ "_id" : "blog2013112520", "count" : 2, "count1xx" : 0, "count2xx" : 0, "count3xx" : 0, "count4xx" : 4, "count5xx" : 1, "countOver" : 0,
|
85
|
+
"hh" : 20, "okRatio" : 1, "responseTimeAve" : 4500, "responseTimeMax" : 5000, "responseTimeMin" : 4000, "responseTimeSum" : 9000, "site" : "blog", "yyyymmdd" : 20131125 }
|
86
|
+
{ "_id" : "total2013112520", "count" : 5, "count1xx" : 0, "count2xx" : 0, "count3xx" : 0, "count4xx" : 0, "count5xx" : 0, "countOver" : 0,
|
87
|
+
"hh" : 20, "okRatio" : 1, "responseTimeAve" : 3000, "responseTimeMax" : 5000, "responseTimeMin" : 1000, "responseTimeSum" : 15000, "site" : "total", "yyyymmdd" : 20131125 }
|
87
88
|
|
88
89
|
### sample: access log (detail)
|
89
90
|
config
|
@@ -109,13 +110,13 @@ MongoDB
|
|
109
110
|
db.kpiCol20131125.find()
|
110
111
|
{ "_id" : "git201311252003", "count" : 3, "count1xx" : 1, "count2xx" : 1, "count3xx" : 1, "count4xx" : 0, "count5xx" : 0, "countOver" : 0,
|
111
112
|
"counter" : [ 0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
|
112
|
-
"hh" :
|
113
|
+
"hh" : 20, "mm" : 3, "okRatio" : 1, "qpsAve" : 0, "qpsMax" : 2, "qpsMin" : 0, "responseTimeAve" : 2000, "responseTimeMax" : 3000, "responseTimeMin" : 1000, "responseTimeSum" : 6000, "site" : "git", "yyyymmdd" : 20131125 }
|
113
114
|
{ "_id" : "blog201311252003", "count" : 2, "count1xx" : 0, "count2xx" : 0, "count3xx" : 0, "count4xx" : 4, "count5xx" : 1, "countOver" : 0,
|
114
115
|
"counter" : [ 0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
|
115
|
-
"hh" :
|
116
|
+
"hh" : 20, "mm" : 3, "okRatio" : 1, "qpsAve" : 0, "qpsMax" : 2, "qpsMin" : 0, "responseTimeAve" : 4500, "responseTimeMax" : 5000, "responseTimeMin" : 4000, "responseTimeSum" : 9000, "site" : "blog", "yyyymmdd" : 20131125 }
|
116
117
|
{ "_id" : "total201311252003", "count" : 5, "count1xx" : 0, "count2xx" : 0, "count3xx" : 0, "count4xx" : 0, "count5xx" : 0, "countOver" : 0,
|
117
118
|
"counter" : [ 0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
|
118
|
-
"hh" :
|
119
|
+
"hh" : 20, "mm" : 3, "okRatio" : 1, "qpsAve" : 0, "qpsMax" : 4, "qpsMin" : 0, "responseTimeAve" : 3000, "responseTimeMax" : 5000, "responseTimeMin" : 1000, "responseTimeSum" : 15000, "site" : "total", "yyyymmdd" : 20131125 }
|
119
120
|
|
120
121
|
### sample: app log
|
121
122
|
config
|
@@ -136,9 +137,9 @@ log
|
|
136
137
|
MongoDB
|
137
138
|
|
138
139
|
db.kpiCol20131125.find()
|
139
|
-
{ "_id" : "git201311252248", "count" : 3, "hh" :
|
140
|
-
{ "_id" : "blog201311252248", "count" : 2, "hh" :
|
141
|
-
{ "_id" : "total201311252248","count" : 5, "hh" :
|
140
|
+
{ "_id" : "git201311252248", "count" : 3, "hh" : 22, "mm" : 48, "site" : "git", "yyyymmdd" : 20131125 }
|
141
|
+
{ "_id" : "blog201311252248", "count" : 2, "hh" : 22, "mm" : 48, "site" : "blog", "yyyymmdd" : 20131125 }
|
142
|
+
{ "_id" : "total201311252248","count" : 5, "hh" : 22, "mm" : 48, "site" : "total", "yyyymmdd" : 20131125 }
|
142
143
|
|
143
144
|
## Contributing
|
144
145
|
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "fluent-plugin-mongokpi"
|
7
|
-
spec.version = "0.0.
|
7
|
+
spec.version = "0.0.2"
|
8
8
|
spec.authors = ["Hatayama Hideharu"]
|
9
9
|
spec.email = ["h.hiddy@gmail.com"]
|
10
10
|
spec.description = %q{Fluent BufferedOutput plugin: counting chunk, inserting counts to make kpi count on MongoDB}
|
@@ -292,7 +292,7 @@ module Fluent
|
|
292
292
|
{:upsert => true}
|
293
293
|
)
|
294
294
|
# add supplemental fields using existing data
|
295
|
-
# NOTICE: this operation is not
|
295
|
+
# NOTICE: this operation is not atomic, then the field value is not reliable in highly distributed processing.
|
296
296
|
updated_result = collection.find({'_id' => key})
|
297
297
|
if updated_result.nil?
|
298
298
|
$log.info "there is no updated result for the key: #{key}" if updated_result.nil?
|
@@ -300,7 +300,7 @@ module Fluent
|
|
300
300
|
end
|
301
301
|
updated_doc = updated_result.to_a[0]
|
302
302
|
set_hash = {}
|
303
|
-
set_hash['responseTimeAve'] = updated_doc['responseTimeSum'] /
|
303
|
+
set_hash['responseTimeAve'] = updated_doc['responseTimeSum'] / updated_doc[count_name]
|
304
304
|
if !updated_doc['responseTimeMax'].nil? && updated_doc['responseTimeMax'] > doc['responseTimeMax']
|
305
305
|
set_hash['responseTimeMax'] = updated_doc['responseTimeMax']
|
306
306
|
else
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-mongokpi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-12-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|