asakra 0.0.4-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3f5c1dbc2fae67bd41e2fef8a1e1d75f588f5ba1
4
+ data.tar.gz: 910208c464e5a8f2fa7b69c29f965a309cf82e1e
5
+ SHA512:
6
+ metadata.gz: 59b0f0bb583c75bfb128af79271452f21b94ec43f59962ce177f41cb78c34e61d5017a16f263e7293313a41bdd56f36091c1c2c63243c46a5c0cff9204e0373f
7
+ data.tar.gz: 0b8e8e90ab83f5e674690c086fb387b3708cdf1cea860958b4642584121125cca98be3902b208ba45ab4185d251f70b779adf794d3a18c183e3b716fa5ad2ef5
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
@@ -0,0 +1,89 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="CompassSettings">
4
+ <option name="compassSupportEnabled" value="true" />
5
+ </component>
6
+ <component name="FacetManager">
7
+ <facet type="gem" name="Ruby Gem">
8
+ <configuration>
9
+ <option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
10
+ <option name="GEM_APP_TEST_PATH" value="" />
11
+ <option name="GEM_APP_LIB_PATH" value="$MODULE_DIR$/lib" />
12
+ </configuration>
13
+ </facet>
14
+ </component>
15
+ <component name="ModuleRunConfigurationManager">
16
+ <configuration default="false" name="asakra" type="RubyRunConfigurationType" factoryName="Ruby" temporary="true">
17
+ <module name="asakra" />
18
+ <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
19
+ <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/bin" />
20
+ <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
21
+ <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
22
+ <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
23
+ <envs />
24
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
25
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
26
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
27
+ <COVERAGE_PATTERN ENABLED="true">
28
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
29
+ </COVERAGE_PATTERN>
30
+ </EXTENSION>
31
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
32
+ <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/bin/asakra" />
33
+ <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
34
+ <RunnerSettings RunnerId="RubyRunner" />
35
+ <ConfigurationWrapper RunnerId="RubyRunner" />
36
+ <method />
37
+ </configuration>
38
+ <configuration default="false" name="judge" type="RubyRunConfigurationType" factoryName="Ruby" temporary="true">
39
+ <module name="asakra" />
40
+ <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
41
+ <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/lib/asakra" />
42
+ <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
43
+ <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
44
+ <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
45
+ <envs />
46
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
47
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
48
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
49
+ <COVERAGE_PATTERN ENABLED="true">
50
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
51
+ </COVERAGE_PATTERN>
52
+ </EXTENSION>
53
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
54
+ <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/lib/asakra/judge.rb" />
55
+ <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
56
+ <RunnerSettings RunnerId="RubyRunner" />
57
+ <ConfigurationWrapper RunnerId="RubyRunner" />
58
+ <method />
59
+ </configuration>
60
+ <configuration default="false" name="batch" type="RubyRunConfigurationType" factoryName="Ruby" temporary="true">
61
+ <module name="asakra" />
62
+ <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
63
+ <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/lib/asakra" />
64
+ <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
65
+ <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
66
+ <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
67
+ <envs />
68
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
69
+ <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
70
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
71
+ <COVERAGE_PATTERN ENABLED="true">
72
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
73
+ </COVERAGE_PATTERN>
74
+ </EXTENSION>
75
+ <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
76
+ <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/lib/asakra/batch.rb" />
77
+ <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
78
+ <RunnerSettings RunnerId="RubyRunner" />
79
+ <ConfigurationWrapper RunnerId="RubyRunner" />
80
+ <method />
81
+ </configuration>
82
+ </component>
83
+ <component name="NewModuleRootManager">
84
+ <content url="file://$MODULE_DIR$" />
85
+ <orderEntry type="jdk" jdkName="rbenv: jruby-1.7.9" jdkType="JRUBY_SDK" />
86
+ <orderEntry type="sourceFolder" forTests="false" />
87
+ </component>
88
+ </module>
89
+
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
4
+ </project>
5
+
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-1.9.2-p290 [global]" project-jdk-type="RUBY_SDK" />
4
+ </project>
5
+
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/asakra.iml" filepath="$PROJECT_DIR$/.idea/asakra.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
9
+
@@ -0,0 +1,5 @@
1
+ <component name="DependencyValidationManager">
2
+ <state>
3
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
4
+ </state>
5
+ </component>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
7
+
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in asakra.gemspec
4
+ gemspec
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "asakra/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "asakra"
7
+ s.version = Asakra::VERSION
8
+ s.authors = ["RittaNarita"]
9
+ s.email = ["narittan@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{monitoring tool for fluentd itself with Esper and JRuby}
12
+ s.description = %q{monitoring tool for fluentd itself with Esper EPL qeury language,}
13
+ s.license = "GPLv2"
14
+ s.platform = "java"
15
+
16
+ s.rubyforge_project = "asakra"
17
+
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib", "esper"]
22
+
23
+ s.add_development_dependency "bundler", "~> 1.3"
24
+ end
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'pathname'
4
+ lib = Pathname.new(__FILE__).dirname.join('..', 'lib').expand_path
5
+ $LOAD_PATH.unshift lib.to_s
6
+
7
+ require 'asakra/batch'
8
+ batch = Asakra::Batch.new
9
+ batch.start
10
+
Binary file
Binary file
@@ -0,0 +1,5 @@
1
+ unless RUBY_PLATFORM =~ /java/
2
+ raise LoadError, 'Only supports JRuby'
3
+ end
4
+
5
+ require "asakra/version"
@@ -0,0 +1,34 @@
1
+ require 'thread'
2
+ require 'asakra/each'
3
+ require 'asakra/judge'
4
+
5
+ module Asakra
6
+ class Batch
7
+ def start
8
+ agentsFile = open("setting/agents.txt")
9
+ agentsList = []
10
+ agentsFile.each {|e|
11
+ agentsList.push(e)
12
+ }
13
+
14
+ myListener = Asakra::MyListener.new()
15
+ judge = Asakra::Judge.new(myListener)
16
+ judge.setting
17
+
18
+ m = Mutex.new
19
+ ts = []
20
+ ts << Thread.start {
21
+ m.synchronize {
22
+ for e in agentsList
23
+ each = Asakra::Each.new(e, judge)
24
+ each.run
25
+ sleep rand * 0.1
26
+ end
27
+
28
+ }
29
+ }
30
+
31
+ ts.each {|t| t.join }
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,31 @@
1
+
2
+ require 'asakra/plugin_accessor'
3
+ require 'asakra/log_for_fluentd'
4
+
5
+ module Asakra
6
+ class Each
7
+
8
+ def initialize(hostname, judge)
9
+ @hostname = hostname
10
+ @judge = judge
11
+ end
12
+
13
+ def run
14
+ # 1.get metrics every host
15
+ # 2.output json for fluentd tail-input
16
+ # 3.judge each host's statement with esper
17
+
18
+ # 1.get metrics
19
+ plugin = Asakra::PluginAccessor.new()
20
+ metrics = plugin.getHash(@hostname)
21
+
22
+ # 2. output json
23
+ log = Asakra::FileLogger.new()
24
+ log.run(metrics)
25
+
26
+ # 3.judge with esper
27
+ # jugde.getEPSeatvice
28
+ @judge.send(metrics)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,58 @@
1
+ # Logfile created on 2014-09-23 01:17:55 +0900 by logger.rb/v1.2.7
2
+ I, [2014-09-23T01:17:55.208000 #20167] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>11}
3
+ I, [2014-09-23T01:17:55.241000 #20167] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>5}
4
+ I, [2014-09-23T01:17:55.307000 #20167] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>6}
5
+ I, [2014-09-23T01:19:14.749000 #20185] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>3}
6
+ I, [2014-09-23T01:19:14.826000 #20185] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>4}
7
+ I, [2014-09-23T01:19:14.906000 #20185] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>5}
8
+ I, [2014-09-23T01:20:01.266000 #20187] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>6}
9
+ I, [2014-09-23T01:20:01.300000 #20187] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>10}
10
+ I, [2014-09-23T01:20:01.348000 #20187] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>0}
11
+ I, [2014-09-23T09:43:22.874000 #21940] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>8}
12
+ I, [2014-09-23T09:43:22.891000 #21940] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>5}
13
+ I, [2014-09-23T09:43:22.900000 #21940] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>12}
14
+ I, [2014-09-23T12:29:53.503000 #24503] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>11}
15
+ I, [2014-09-23T12:29:53.582000 #24503] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>14}
16
+ I, [2014-09-23T12:29:53.656000 #24503] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>8}
17
+ I, [2014-09-23T12:33:01.376000 #24548] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>1}
18
+ I, [2014-09-23T12:33:01.476000 #24548] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>4}
19
+ I, [2014-09-23T12:33:01.554000 #24548] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>10}
20
+ I, [2014-09-23T12:33:14.252000 #24572] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>0}
21
+ I, [2014-09-23T12:33:14.340000 #24572] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>8}
22
+ I, [2014-09-23T12:33:14.399000 #24572] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>1}
23
+ I, [2014-09-23T12:34:17.404000 #24600] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>10}
24
+ I, [2014-09-23T12:34:17.507000 #24600] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>2}
25
+ I, [2014-09-23T12:34:17.611000 #24600] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>7}
26
+ I, [2014-09-23T12:34:45.462000 #24623] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>6}
27
+ I, [2014-09-23T12:34:45.501000 #24623] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>0}
28
+ I, [2014-09-23T12:34:45.518000 #24623] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>6}
29
+ I, [2014-09-23T12:34:56.607000 #24645] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>12}
30
+ I, [2014-09-23T12:34:56.716000 #24645] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>12}
31
+ I, [2014-09-23T12:34:56.812000 #24645] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>13}
32
+ I, [2014-09-23T12:39:34.253000 #24689] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>13}
33
+ I, [2014-09-23T12:39:34.310000 #24689] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>9}
34
+ I, [2014-09-23T12:39:34.388000 #24689] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>10}
35
+ I, [2014-09-23T12:43:49.436000 #24725] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>0}
36
+ I, [2014-09-23T12:43:49.501000 #24725] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>12}
37
+ I, [2014-09-23T12:43:49.573000 #24725] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>3}
38
+ I, [2014-09-23T12:49:10.484000 #24779] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>11}
39
+ I, [2014-09-23T12:49:10.523000 #24779] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>0}
40
+ I, [2014-09-23T12:49:10.560000 #24779] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>9}
41
+ I, [2014-09-23T12:55:05.201000 #24842] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>6}
42
+ I, [2014-09-23T12:55:05.276000 #24842] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>5}
43
+ I, [2014-09-23T12:55:05.336000 #24842] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>2}
44
+ I, [2014-09-23T12:55:50.233000 #24867] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>14}
45
+ I, [2014-09-23T12:55:50.259000 #24867] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>14}
46
+ I, [2014-09-23T12:55:50.354000 #24867] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>2}
47
+ I, [2014-09-23T12:56:18.149000 #24897] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>14}
48
+ I, [2014-09-23T12:56:18.190000 #24897] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>0}
49
+ I, [2014-09-23T12:56:18.255000 #24897] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>1}
50
+ I, [2014-09-23T12:56:22.035000 #24917] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>2}
51
+ I, [2014-09-23T12:56:22.055000 #24917] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>13}
52
+ I, [2014-09-23T12:56:22.066000 #24917] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>8}
53
+ I, [2014-09-23T13:06:02.684000 #25324] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>13}
54
+ I, [2014-09-23T13:06:02.742000 #25324] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>0}
55
+ I, [2014-09-23T13:06:02.772000 #25324] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>11}
56
+ I, [2014-09-23T13:28:59.043000 #26943] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>13}
57
+ I, [2014-09-23T13:28:59.108000 #26943] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>8}
58
+ I, [2014-09-23T13:28:59.209000 #26943] INFO -- : {"pluginId"=>"plugin01", "retryCount"=>9}
@@ -0,0 +1,60 @@
1
+ require 'java'
2
+ require 'esper-4.5.0.jar'
3
+ require 'esper/commons-logging-1.1.1.jar'
4
+ require 'esper/antlr-runtime-3.2.jar'
5
+ require 'esper/cglib-nodep-2.2.jar'
6
+ require 'pp'
7
+
8
+ module Asakra
9
+ # Create a listener object when matched
10
+ class MyListener
11
+ include com.espertech.esper.client.UpdateListener
12
+
13
+ def update(newEvents, oldEvents)
14
+ puts "matched: "
15
+ newEvents.each do |event|
16
+ puts "- " + event.getUnderlying.inspect
17
+ end
18
+ end
19
+ end
20
+
21
+ class Judge
22
+
23
+ def initialize(listener)
24
+ @listener = listener
25
+ @ep_service = com.espertech.esper.client.EPServiceProviderManager.getDefaultProvider
26
+ end
27
+
28
+ def setting
29
+ # And the configuration
30
+ ep_config = @ep_service.getEPAdministrator.getConfiguration
31
+
32
+ # event(POJO when using java)
33
+ # Prepare the OrderEvent type
34
+ order_event_type = {
35
+ "pluginId" => "string",
36
+ "retryCount" => "double"
37
+ }
38
+ ep_config.addEventType("OrderEvent", order_event_type)
39
+
40
+ # EPLの設定
41
+ # Create EPL expression
42
+ # expression = "select * from OrderEvent where cast(retryCount,double) > 1"
43
+ expression = "select * from OrderEvent where cast(retryCount,double) > 1"
44
+ #expression = "select avg(price) from OrderEvent"
45
+ statement = @ep_service.getEPAdministrator.createEPL(expression)
46
+
47
+ # Register listener to statement
48
+ # listener = Asakra::MyListener.new
49
+ statement.addListener(@listener)
50
+ end
51
+
52
+ def send(metrics)
53
+
54
+ # send event to listner
55
+ epr_runtime = @ep_service.getEPRuntime
56
+ epr_runtime.sendEvent(metrics, "OrderEvent")
57
+
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,14 @@
1
+ require 'logger'
2
+
3
+ module Asakra
4
+ # output into log file for fluentd tail-input plugin
5
+ class FileLogger
6
+ def run(mes)
7
+ log = Logger.new("for-fluentd.log")
8
+
9
+ # log.debug(mes)
10
+ log.info(mes)
11
+ # log.warn("This is warning message")
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,44 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+ require 'json'
4
+
5
+ module Asakra
6
+ class PluginAccessor
7
+
8
+ def getHash(hostname)
9
+ hash = {"pluginId"=>"plugin01",
10
+ "retryCount"=>rand(15)}
11
+
12
+ return hash
13
+ end
14
+
15
+ def getHash_test(hostname, limit = 10)
16
+ raise ArgumentError, 'too many HTTP redirects' if limit == 0
17
+ #confirm uri
18
+ location = "http://"+hostname+":24220/api/json"
19
+ uri = URI.parse(location)
20
+ begin
21
+ response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
22
+ http.open_timeout = 5
23
+ http.read_timeout = 10
24
+ http.get(uri.request_uri)
25
+ end
26
+ case response
27
+ when Net::HTTPSuccess
28
+ json = response.body
29
+ JSON.parse(json)
30
+ when Net::HTTPRedirection
31
+ location = response['location']
32
+ warn "redirected to #{location}"
33
+ get_json(location, limit - 1)
34
+ else
35
+ puts [uri.to_s, response.value].join(" : ")
36
+ # handle error
37
+ end
38
+ rescue => e
39
+ puts [uri.to_s, e.class, e].join(" : ")
40
+ # handle error
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,3 @@
1
+ module Asakra
2
+ VERSION = "0.0.4"
3
+ end
@@ -0,0 +1,3 @@
1
+ hostname1
2
+ hostname2
3
+ hostname3
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: asakra
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ platform: java
6
+ authors:
7
+ - RittaNarita
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-23 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ requirement: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: '1.3'
25
+ prerelease: false
26
+ type: :development
27
+ description: monitoring tool for fluentd itself with Esper EPL qeury language,
28
+ email:
29
+ - narittan@gmail.com
30
+ executables:
31
+ - asakra
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - .gitignore
36
+ - .idea/asakra.iml
37
+ - .idea/encodings.xml
38
+ - .idea/misc.xml
39
+ - .idea/modules.xml
40
+ - .idea/scopes/scope_settings.xml
41
+ - .idea/vcs.xml
42
+ - Gemfile
43
+ - Rakefile
44
+ - asakra.gemspec
45
+ - bin/asakra
46
+ - esper/antlr-runtime-3.2.jar
47
+ - esper/cglib-nodep-2.2.jar
48
+ - esper/commons-logging-1.1.1.jar
49
+ - esper/esper-4.5.0.jar
50
+ - lib/asakra.rb
51
+ - lib/asakra/batch.rb
52
+ - lib/asakra/each.rb
53
+ - lib/asakra/for-fluentd.log
54
+ - lib/asakra/judge.rb
55
+ - lib/asakra/log_for_fluentd.rb
56
+ - lib/asakra/plugin_accessor.rb
57
+ - lib/asakra/version.rb
58
+ - setting/agents.txt
59
+ homepage: ''
60
+ licenses:
61
+ - GPLv2
62
+ metadata: {}
63
+ post_install_message:
64
+ rdoc_options: []
65
+ require_paths:
66
+ - lib
67
+ - esper
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ requirements: []
79
+ rubyforge_project: asakra
80
+ rubygems_version: 2.1.9
81
+ signing_key:
82
+ specification_version: 4
83
+ summary: monitoring tool for fluentd itself with Esper and JRuby
84
+ test_files: []