faye_audit 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e20aee92a1f642648a4e711cdaf74c7bf8fe9380
4
- data.tar.gz: 379fe7b060b183e89e6d9fdd6b21bafc6202aa3b
3
+ metadata.gz: 826233a5fd97882682eebc080ae71cde58b16e5b
4
+ data.tar.gz: 07c31fd8fe0db5d1588af768115be509d34e3431
5
5
  SHA512:
6
- metadata.gz: 4a35f6e1c63228f2227498be7f3bd3d3ca6b19fc89d946a4c991dfb49fcbd287c2e5e5f8b552c82a21b2c7c0789bce1c01a0f1b3bd7ba3689488b611f0b7fe2e
7
- data.tar.gz: 98eabca8e1e8eb3a456bdef2318b7e48ef2c93047c6a6d60b10fd03ad9d94f4694f6a5371c36da58ecdc28737c6cad3b1bc0ea91926eea9edbc3051b73039c13
6
+ metadata.gz: a2a4d6b15be5bd02c202754f5f14044abe2152f0d47b86cbb15a67c578b85a80be383af4f66b7b1e3ddbfd895670674f9d90dbfdfea85ac5fd88ec871e7e1820
7
+ data.tar.gz: 234d4a32592b350577d9a03307541fbc052d1af4d7e2df403cfd7f95156cb339bb99622565455c1ca308a475752a5a0a2dd04cc46f65245db3e4329e0327524b
data/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ # Change Log
2
+
3
+ ## [0.3.0](https://github.com/ShallmentMo/faye_audit/tree/0.3.0) (2016-04-25)
4
+ [Full Changelog](https://github.com/ShallmentMo/faye_audit/compare/0.2.0...0.3.0)
5
+
6
+ Try to inspect into `bayeux` to get the `client_count` and `channel_count`.
7
+ > Warning!! might have efficiency problem
8
+
9
+
10
+ ## [0.2.0](https://github.com/ShallmentMo/faye_audit/tree/0.2.0) (2016-04-24)
11
+
12
+ Log infomation when every monitor event triggers.
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # FayeAudit
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/faye_audit`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ Try to audit Faye server
6
4
 
7
5
  ## Installation
8
6
 
@@ -39,6 +37,23 @@ run faye
39
37
 
40
38
  ```
41
39
 
40
+ And you will get something like this:
41
+
42
+ ```
43
+ faye: { client_count: 1, channel_count: 0 }
44
+ handshake:
45
+ client_id: fi5zawstsmsj1kc7wig6n6jz5s3n7rp
46
+
47
+ faye: { client_count: 1, channel_count: 1 }
48
+ subscribe:
49
+ client_id: fi5zawstsmsj1kc7wig6n6jz5s3n7rp
50
+ channel: /server
51
+ ```
52
+
53
+ ## TODO
54
+
55
+ Because I try to inspect into bayeux, so it might have efficiency problem. And logger to file can be slow. I should working on it.
56
+
42
57
  ## Development
43
58
 
44
59
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/faye_audit.gemspec CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_development_dependency "bundler", "~> 1.10"
23
23
  spec.add_development_dependency "rake", "~> 10.0"
24
- spec.add_development_dependency "minitest"
24
+ spec.add_development_dependency "minitest", "~> 5.8"
25
25
 
26
- spec.add_dependency "faye"
26
+ spec.add_dependency "faye", "~> 1.1"
27
27
  end
@@ -1,3 +1,3 @@
1
1
  module FayeAudit
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/faye_audit.rb CHANGED
@@ -9,15 +9,32 @@ module FayeAudit
9
9
  @@logger = logger
10
10
  end
11
11
 
12
+ def client_count
13
+ @@bayeux.instance_variable_get(:@server)
14
+ .instance_variable_get(:@engine)
15
+ .instance_variable_get(:@engine)
16
+ .instance_variable_get(:@clients).keys.size
17
+ end
18
+
19
+ def channel_count
20
+ @@bayeux.instance_variable_get(:@server)
21
+ .instance_variable_get(:@engine)
22
+ .instance_variable_get(:@engine)
23
+ .instance_variable_get(:@channels).size
24
+ end
25
+
12
26
  def audit(bayeux)
27
+ @@bayeux = bayeux
13
28
  bayeux.on(:handshake) do |client_id|
14
29
  logger.info <<LOG
30
+ faye: { client_count: #{client_count + 1}, channel_count: #{channel_count} }
15
31
  handshake:
16
32
  client_id: #{client_id}
17
33
  LOG
18
34
  end
19
35
  bayeux.on(:subscribe) do |client_id, channel|
20
36
  logger.info <<LOG
37
+ faye: { client_count: #{client_count}, channel_count: #{channel_count} }
21
38
  subscribe:
22
39
  client_id: #{client_id}
23
40
  channel: #{channel}
@@ -25,6 +42,7 @@ LOG
25
42
  end
26
43
  bayeux.on(:unsubscribe) do |client_id, channel|
27
44
  logger.info <<LOG
45
+ faye: { client_count: #{client_count}, channel_count: #{channel_count} }
28
46
  unsubscribe:
29
47
  client_id: #{client_id}
30
48
  channel: #{channel}
@@ -32,6 +50,7 @@ LOG
32
50
  end
33
51
  bayeux.on(:publish) do |client_id, channel, data|
34
52
  logger.info <<LOG
53
+ faye: { client_count: #{client_count}, channel_count: #{channel_count} }
35
54
  publish:
36
55
  client_id: #{client_id}
37
56
  channel: #{channel}
@@ -40,11 +59,12 @@ LOG
40
59
  end
41
60
  bayeux.on(:disconnect) do |client_id|
42
61
  logger.info <<LOG
62
+ faye: { client_count: #{client_count}, channel_count: #{channel_count} }
43
63
  disconnect:
44
64
  client_id: #{client_id}
45
65
  LOG
46
66
  end
47
67
  end
48
68
 
49
- module_function :audit, :logger, :logger=
69
+ module_function :audit, :logger, :logger=, :client_count, :channel_count
50
70
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faye_audit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ShallmentMo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-23 00:00:00.000000000 Z
11
+ date: 2016-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,30 +42,30 @@ dependencies:
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '5.8'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '5.8'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: faye
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '1.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '1.1'
69
69
  description: Audit faye in every monitoring event
70
70
  email:
71
71
  - ShallmentMo@gmail.com
@@ -75,6 +75,7 @@ extra_rdoc_files: []
75
75
  files:
76
76
  - ".gitignore"
77
77
  - ".travis.yml"
78
+ - CHANGELOG.md
78
79
  - CODE_OF_CONDUCT.md
79
80
  - Gemfile
80
81
  - LICENSE.txt