logstash-lib 1.3.2

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.
Files changed (419) hide show
  1. data/.gitignore +24 -0
  2. data/.tailor +8 -0
  3. data/.travis.yml +12 -0
  4. data/CHANGELOG +1185 -0
  5. data/CONTRIBUTING.md +61 -0
  6. data/CONTRIBUTORS +79 -0
  7. data/LICENSE +14 -0
  8. data/Makefile +460 -0
  9. data/README.md +120 -0
  10. data/STYLE.md +96 -0
  11. data/bin/logstash +37 -0
  12. data/bin/logstash-test +4 -0
  13. data/bin/logstash-web +4 -0
  14. data/bin/logstash.lib.sh +78 -0
  15. data/bot/check_pull_changelog.rb +89 -0
  16. data/docs/configuration.md +260 -0
  17. data/docs/docgen.rb +242 -0
  18. data/docs/extending/example-add-a-new-filter.md +121 -0
  19. data/docs/extending/index.md +91 -0
  20. data/docs/flags.md +43 -0
  21. data/docs/generate_index.rb +28 -0
  22. data/docs/index.html.erb +56 -0
  23. data/docs/learn.md +46 -0
  24. data/docs/life-of-an-event.md +109 -0
  25. data/docs/logging-tool-comparisons.md +60 -0
  26. data/docs/plugin-doc.html.erb +91 -0
  27. data/docs/plugin-milestones.md +41 -0
  28. data/docs/plugin-synopsis.html.erb +24 -0
  29. data/docs/release-engineering.md +46 -0
  30. data/docs/release-test-results.md +14 -0
  31. data/docs/repositories.md +35 -0
  32. data/docs/tutorials/10-minute-walkthrough/apache-elasticsearch.conf +35 -0
  33. data/docs/tutorials/10-minute-walkthrough/apache-parse.conf +33 -0
  34. data/docs/tutorials/10-minute-walkthrough/apache_log.1 +1 -0
  35. data/docs/tutorials/10-minute-walkthrough/apache_log.2.bz2 +0 -0
  36. data/docs/tutorials/10-minute-walkthrough/hello-search.conf +25 -0
  37. data/docs/tutorials/10-minute-walkthrough/hello.conf +16 -0
  38. data/docs/tutorials/10-minute-walkthrough/index.md +124 -0
  39. data/docs/tutorials/10-minute-walkthrough/step-5-output.txt +17 -0
  40. data/docs/tutorials/getting-started-centralized-overview-diagram.png +0 -0
  41. data/docs/tutorials/getting-started-centralized-overview-diagram.xml +1 -0
  42. data/docs/tutorials/getting-started-centralized.md +217 -0
  43. data/docs/tutorials/getting-started-simple.md +200 -0
  44. data/docs/tutorials/just-enough-rabbitmq-for-logstash.md +201 -0
  45. data/docs/tutorials/media/frontend-response-codes.png +0 -0
  46. data/docs/tutorials/metrics-from-logs.md +84 -0
  47. data/docs/tutorials/zeromq.md +118 -0
  48. data/extract_services.rb +29 -0
  49. data/gembag.rb +64 -0
  50. data/lib/logstash-event.rb +2 -0
  51. data/lib/logstash.rb +4 -0
  52. data/lib/logstash/JRUBY-6970-openssl.rb +22 -0
  53. data/lib/logstash/JRUBY-6970.rb +102 -0
  54. data/lib/logstash/agent.rb +305 -0
  55. data/lib/logstash/certs/cacert.pem +3895 -0
  56. data/lib/logstash/codecs/base.rb +49 -0
  57. data/lib/logstash/codecs/compress_spooler.rb +50 -0
  58. data/lib/logstash/codecs/dots.rb +18 -0
  59. data/lib/logstash/codecs/edn.rb +28 -0
  60. data/lib/logstash/codecs/edn_lines.rb +36 -0
  61. data/lib/logstash/codecs/fluent.rb +55 -0
  62. data/lib/logstash/codecs/graphite.rb +114 -0
  63. data/lib/logstash/codecs/json.rb +41 -0
  64. data/lib/logstash/codecs/json_lines.rb +52 -0
  65. data/lib/logstash/codecs/json_spooler.rb +22 -0
  66. data/lib/logstash/codecs/line.rb +58 -0
  67. data/lib/logstash/codecs/msgpack.rb +43 -0
  68. data/lib/logstash/codecs/multiline.rb +189 -0
  69. data/lib/logstash/codecs/netflow.rb +342 -0
  70. data/lib/logstash/codecs/netflow/util.rb +212 -0
  71. data/lib/logstash/codecs/noop.rb +19 -0
  72. data/lib/logstash/codecs/oldlogstashjson.rb +56 -0
  73. data/lib/logstash/codecs/plain.rb +48 -0
  74. data/lib/logstash/codecs/rubydebug.rb +22 -0
  75. data/lib/logstash/codecs/spool.rb +38 -0
  76. data/lib/logstash/config/Makefile +4 -0
  77. data/lib/logstash/config/config_ast.rb +380 -0
  78. data/lib/logstash/config/file.rb +39 -0
  79. data/lib/logstash/config/grammar.rb +3504 -0
  80. data/lib/logstash/config/grammar.treetop +241 -0
  81. data/lib/logstash/config/mixin.rb +464 -0
  82. data/lib/logstash/config/registry.rb +13 -0
  83. data/lib/logstash/config/test.conf +18 -0
  84. data/lib/logstash/errors.rb +10 -0
  85. data/lib/logstash/event.rb +262 -0
  86. data/lib/logstash/filters/advisor.rb +178 -0
  87. data/lib/logstash/filters/alter.rb +173 -0
  88. data/lib/logstash/filters/anonymize.rb +93 -0
  89. data/lib/logstash/filters/base.rb +190 -0
  90. data/lib/logstash/filters/checksum.rb +50 -0
  91. data/lib/logstash/filters/cidr.rb +76 -0
  92. data/lib/logstash/filters/cipher.rb +145 -0
  93. data/lib/logstash/filters/clone.rb +35 -0
  94. data/lib/logstash/filters/collate.rb +114 -0
  95. data/lib/logstash/filters/csv.rb +94 -0
  96. data/lib/logstash/filters/date.rb +244 -0
  97. data/lib/logstash/filters/dns.rb +201 -0
  98. data/lib/logstash/filters/drop.rb +32 -0
  99. data/lib/logstash/filters/elapsed.rb +256 -0
  100. data/lib/logstash/filters/elasticsearch.rb +73 -0
  101. data/lib/logstash/filters/environment.rb +27 -0
  102. data/lib/logstash/filters/extractnumbers.rb +84 -0
  103. data/lib/logstash/filters/gelfify.rb +52 -0
  104. data/lib/logstash/filters/geoip.rb +145 -0
  105. data/lib/logstash/filters/grep.rb +153 -0
  106. data/lib/logstash/filters/grok.rb +425 -0
  107. data/lib/logstash/filters/grokdiscovery.rb +75 -0
  108. data/lib/logstash/filters/i18n.rb +51 -0
  109. data/lib/logstash/filters/json.rb +90 -0
  110. data/lib/logstash/filters/json_encode.rb +52 -0
  111. data/lib/logstash/filters/kv.rb +232 -0
  112. data/lib/logstash/filters/metaevent.rb +68 -0
  113. data/lib/logstash/filters/metrics.rb +237 -0
  114. data/lib/logstash/filters/multiline.rb +241 -0
  115. data/lib/logstash/filters/mutate.rb +399 -0
  116. data/lib/logstash/filters/noop.rb +21 -0
  117. data/lib/logstash/filters/prune.rb +149 -0
  118. data/lib/logstash/filters/punct.rb +32 -0
  119. data/lib/logstash/filters/railsparallelrequest.rb +86 -0
  120. data/lib/logstash/filters/range.rb +142 -0
  121. data/lib/logstash/filters/ruby.rb +42 -0
  122. data/lib/logstash/filters/sleep.rb +111 -0
  123. data/lib/logstash/filters/split.rb +64 -0
  124. data/lib/logstash/filters/sumnumbers.rb +73 -0
  125. data/lib/logstash/filters/syslog_pri.rb +107 -0
  126. data/lib/logstash/filters/translate.rb +121 -0
  127. data/lib/logstash/filters/unique.rb +29 -0
  128. data/lib/logstash/filters/urldecode.rb +57 -0
  129. data/lib/logstash/filters/useragent.rb +112 -0
  130. data/lib/logstash/filters/uuid.rb +58 -0
  131. data/lib/logstash/filters/xml.rb +139 -0
  132. data/lib/logstash/filters/zeromq.rb +123 -0
  133. data/lib/logstash/filterworker.rb +122 -0
  134. data/lib/logstash/inputs/base.rb +125 -0
  135. data/lib/logstash/inputs/collectd.rb +306 -0
  136. data/lib/logstash/inputs/drupal_dblog.rb +323 -0
  137. data/lib/logstash/inputs/drupal_dblog/jdbcconnection.rb +66 -0
  138. data/lib/logstash/inputs/elasticsearch.rb +140 -0
  139. data/lib/logstash/inputs/eventlog.rb +129 -0
  140. data/lib/logstash/inputs/eventlog/racob_fix.rb +44 -0
  141. data/lib/logstash/inputs/exec.rb +69 -0
  142. data/lib/logstash/inputs/file.rb +146 -0
  143. data/lib/logstash/inputs/ganglia.rb +127 -0
  144. data/lib/logstash/inputs/ganglia/gmondpacket.rb +146 -0
  145. data/lib/logstash/inputs/ganglia/xdr.rb +327 -0
  146. data/lib/logstash/inputs/gelf.rb +138 -0
  147. data/lib/logstash/inputs/gemfire.rb +222 -0
  148. data/lib/logstash/inputs/generator.rb +97 -0
  149. data/lib/logstash/inputs/graphite.rb +41 -0
  150. data/lib/logstash/inputs/heroku.rb +51 -0
  151. data/lib/logstash/inputs/imap.rb +136 -0
  152. data/lib/logstash/inputs/irc.rb +84 -0
  153. data/lib/logstash/inputs/log4j.rb +136 -0
  154. data/lib/logstash/inputs/lumberjack.rb +53 -0
  155. data/lib/logstash/inputs/pipe.rb +57 -0
  156. data/lib/logstash/inputs/rabbitmq.rb +126 -0
  157. data/lib/logstash/inputs/rabbitmq/bunny.rb +118 -0
  158. data/lib/logstash/inputs/rabbitmq/hot_bunnies.rb +1 -0
  159. data/lib/logstash/inputs/rabbitmq/march_hare.rb +129 -0
  160. data/lib/logstash/inputs/redis.rb +263 -0
  161. data/lib/logstash/inputs/relp.rb +106 -0
  162. data/lib/logstash/inputs/s3.rb +279 -0
  163. data/lib/logstash/inputs/snmptrap.rb +87 -0
  164. data/lib/logstash/inputs/sqlite.rb +185 -0
  165. data/lib/logstash/inputs/sqs.rb +172 -0
  166. data/lib/logstash/inputs/stdin.rb +46 -0
  167. data/lib/logstash/inputs/stomp.rb +84 -0
  168. data/lib/logstash/inputs/syslog.rb +237 -0
  169. data/lib/logstash/inputs/tcp.rb +231 -0
  170. data/lib/logstash/inputs/threadable.rb +18 -0
  171. data/lib/logstash/inputs/twitter.rb +82 -0
  172. data/lib/logstash/inputs/udp.rb +81 -0
  173. data/lib/logstash/inputs/unix.rb +163 -0
  174. data/lib/logstash/inputs/varnishlog.rb +48 -0
  175. data/lib/logstash/inputs/websocket.rb +50 -0
  176. data/lib/logstash/inputs/wmi.rb +72 -0
  177. data/lib/logstash/inputs/xmpp.rb +81 -0
  178. data/lib/logstash/inputs/zenoss.rb +143 -0
  179. data/lib/logstash/inputs/zeromq.rb +165 -0
  180. data/lib/logstash/kibana.rb +113 -0
  181. data/lib/logstash/loadlibs.rb +9 -0
  182. data/lib/logstash/logging.rb +89 -0
  183. data/lib/logstash/monkeypatches-for-bugs.rb +2 -0
  184. data/lib/logstash/monkeypatches-for-debugging.rb +47 -0
  185. data/lib/logstash/monkeypatches-for-performance.rb +66 -0
  186. data/lib/logstash/multiqueue.rb +53 -0
  187. data/lib/logstash/namespace.rb +16 -0
  188. data/lib/logstash/outputs/base.rb +120 -0
  189. data/lib/logstash/outputs/boundary.rb +116 -0
  190. data/lib/logstash/outputs/circonus.rb +78 -0
  191. data/lib/logstash/outputs/cloudwatch.rb +351 -0
  192. data/lib/logstash/outputs/csv.rb +55 -0
  193. data/lib/logstash/outputs/datadog.rb +93 -0
  194. data/lib/logstash/outputs/datadog_metrics.rb +123 -0
  195. data/lib/logstash/outputs/elasticsearch.rb +332 -0
  196. data/lib/logstash/outputs/elasticsearch/elasticsearch-template.json +44 -0
  197. data/lib/logstash/outputs/elasticsearch_http.rb +256 -0
  198. data/lib/logstash/outputs/elasticsearch_river.rb +214 -0
  199. data/lib/logstash/outputs/email.rb +299 -0
  200. data/lib/logstash/outputs/exec.rb +40 -0
  201. data/lib/logstash/outputs/file.rb +180 -0
  202. data/lib/logstash/outputs/ganglia.rb +75 -0
  203. data/lib/logstash/outputs/gelf.rb +208 -0
  204. data/lib/logstash/outputs/gemfire.rb +103 -0
  205. data/lib/logstash/outputs/google_bigquery.rb +570 -0
  206. data/lib/logstash/outputs/google_cloud_storage.rb +431 -0
  207. data/lib/logstash/outputs/graphite.rb +143 -0
  208. data/lib/logstash/outputs/graphtastic.rb +185 -0
  209. data/lib/logstash/outputs/hipchat.rb +80 -0
  210. data/lib/logstash/outputs/http.rb +142 -0
  211. data/lib/logstash/outputs/irc.rb +80 -0
  212. data/lib/logstash/outputs/jira.rb +109 -0
  213. data/lib/logstash/outputs/juggernaut.rb +105 -0
  214. data/lib/logstash/outputs/librato.rb +146 -0
  215. data/lib/logstash/outputs/loggly.rb +93 -0
  216. data/lib/logstash/outputs/lumberjack.rb +51 -0
  217. data/lib/logstash/outputs/metriccatcher.rb +103 -0
  218. data/lib/logstash/outputs/mongodb.rb +81 -0
  219. data/lib/logstash/outputs/nagios.rb +119 -0
  220. data/lib/logstash/outputs/nagios_nsca.rb +123 -0
  221. data/lib/logstash/outputs/null.rb +18 -0
  222. data/lib/logstash/outputs/opentsdb.rb +101 -0
  223. data/lib/logstash/outputs/pagerduty.rb +79 -0
  224. data/lib/logstash/outputs/pipe.rb +132 -0
  225. data/lib/logstash/outputs/rabbitmq.rb +96 -0
  226. data/lib/logstash/outputs/rabbitmq/bunny.rb +135 -0
  227. data/lib/logstash/outputs/rabbitmq/hot_bunnies.rb +1 -0
  228. data/lib/logstash/outputs/rabbitmq/march_hare.rb +143 -0
  229. data/lib/logstash/outputs/redis.rb +245 -0
  230. data/lib/logstash/outputs/riak.rb +152 -0
  231. data/lib/logstash/outputs/riemann.rb +109 -0
  232. data/lib/logstash/outputs/s3.rb +356 -0
  233. data/lib/logstash/outputs/sns.rb +124 -0
  234. data/lib/logstash/outputs/solr_http.rb +78 -0
  235. data/lib/logstash/outputs/sqs.rb +141 -0
  236. data/lib/logstash/outputs/statsd.rb +116 -0
  237. data/lib/logstash/outputs/stdout.rb +53 -0
  238. data/lib/logstash/outputs/stomp.rb +67 -0
  239. data/lib/logstash/outputs/syslog.rb +145 -0
  240. data/lib/logstash/outputs/tcp.rb +145 -0
  241. data/lib/logstash/outputs/udp.rb +38 -0
  242. data/lib/logstash/outputs/websocket.rb +46 -0
  243. data/lib/logstash/outputs/websocket/app.rb +29 -0
  244. data/lib/logstash/outputs/websocket/pubsub.rb +45 -0
  245. data/lib/logstash/outputs/xmpp.rb +78 -0
  246. data/lib/logstash/outputs/zabbix.rb +108 -0
  247. data/lib/logstash/outputs/zeromq.rb +125 -0
  248. data/lib/logstash/pipeline.rb +286 -0
  249. data/lib/logstash/plugin.rb +150 -0
  250. data/lib/logstash/plugin_mixins/aws_config.rb +93 -0
  251. data/lib/logstash/program.rb +15 -0
  252. data/lib/logstash/runner.rb +238 -0
  253. data/lib/logstash/sized_queue.rb +8 -0
  254. data/lib/logstash/test.rb +183 -0
  255. data/lib/logstash/threadwatchdog.rb +37 -0
  256. data/lib/logstash/time_addon.rb +33 -0
  257. data/lib/logstash/util.rb +106 -0
  258. data/lib/logstash/util/buftok.rb +139 -0
  259. data/lib/logstash/util/charset.rb +39 -0
  260. data/lib/logstash/util/fieldreference.rb +50 -0
  261. data/lib/logstash/util/password.rb +25 -0
  262. data/lib/logstash/util/prctl.rb +11 -0
  263. data/lib/logstash/util/relp.rb +326 -0
  264. data/lib/logstash/util/require-helper.rb +18 -0
  265. data/lib/logstash/util/socket_peer.rb +7 -0
  266. data/lib/logstash/util/zenoss.rb +566 -0
  267. data/lib/logstash/util/zeromq.rb +47 -0
  268. data/lib/logstash/version.rb +6 -0
  269. data/locales/en.yml +170 -0
  270. data/logstash-event.gemspec +29 -0
  271. data/logstash.gemspec +128 -0
  272. data/patterns/firewalls +60 -0
  273. data/patterns/grok-patterns +91 -0
  274. data/patterns/haproxy +37 -0
  275. data/patterns/java +3 -0
  276. data/patterns/linux-syslog +14 -0
  277. data/patterns/mcollective +1 -0
  278. data/patterns/mcollective-patterns +4 -0
  279. data/patterns/nagios +108 -0
  280. data/patterns/postgresql +3 -0
  281. data/patterns/redis +3 -0
  282. data/patterns/ruby +2 -0
  283. data/pkg/build.sh +135 -0
  284. data/pkg/centos/after-install.sh +1 -0
  285. data/pkg/centos/before-install.sh +10 -0
  286. data/pkg/centos/before-remove.sh +11 -0
  287. data/pkg/centos/sysconfig +15 -0
  288. data/pkg/debian/after-install.sh +5 -0
  289. data/pkg/debian/before-install.sh +13 -0
  290. data/pkg/debian/before-remove.sh +13 -0
  291. data/pkg/debian/build.sh +34 -0
  292. data/pkg/debian/debian/README +6 -0
  293. data/pkg/debian/debian/changelog +17 -0
  294. data/pkg/debian/debian/compat +1 -0
  295. data/pkg/debian/debian/control +16 -0
  296. data/pkg/debian/debian/copyright +27 -0
  297. data/pkg/debian/debian/dirs +19 -0
  298. data/pkg/debian/debian/docs +0 -0
  299. data/pkg/debian/debian/logstash.default +39 -0
  300. data/pkg/debian/debian/logstash.init +201 -0
  301. data/pkg/debian/debian/logstash.install +1 -0
  302. data/pkg/debian/debian/logstash.logrotate +9 -0
  303. data/pkg/debian/debian/logstash.postinst +68 -0
  304. data/pkg/debian/debian/logstash.postrm +23 -0
  305. data/pkg/debian/debian/manpage.1.ex +59 -0
  306. data/pkg/debian/debian/preinst.ex +37 -0
  307. data/pkg/debian/debian/prerm.ex +40 -0
  308. data/pkg/debian/debian/release.conf +5 -0
  309. data/pkg/debian/debian/rules +80 -0
  310. data/pkg/debian/debian/watch.ex +22 -0
  311. data/pkg/logrotate.conf +8 -0
  312. data/pkg/logstash-web.default +41 -0
  313. data/pkg/logstash-web.sysv.debian +201 -0
  314. data/pkg/logstash-web.upstart.ubuntu +18 -0
  315. data/pkg/logstash.default +45 -0
  316. data/pkg/logstash.sysv.debian +202 -0
  317. data/pkg/logstash.sysv.redhat +158 -0
  318. data/pkg/logstash.upstart.ubuntu +20 -0
  319. data/pkg/rpm/SOURCES/logstash.conf +26 -0
  320. data/pkg/rpm/SOURCES/logstash.init +80 -0
  321. data/pkg/rpm/SOURCES/logstash.logrotate +8 -0
  322. data/pkg/rpm/SOURCES/logstash.sysconfig +3 -0
  323. data/pkg/rpm/SOURCES/logstash.wrapper +105 -0
  324. data/pkg/rpm/SPECS/logstash.spec +180 -0
  325. data/pkg/rpm/readme.md +4 -0
  326. data/pkg/ubuntu/after-install.sh +7 -0
  327. data/pkg/ubuntu/before-install.sh +12 -0
  328. data/pkg/ubuntu/before-remove.sh +13 -0
  329. data/pull_release_note.rb +25 -0
  330. data/require-analyze.rb +22 -0
  331. data/spec/README.md +14 -0
  332. data/spec/codecs/edn.rb +40 -0
  333. data/spec/codecs/edn_lines.rb +53 -0
  334. data/spec/codecs/graphite.rb +96 -0
  335. data/spec/codecs/json.rb +57 -0
  336. data/spec/codecs/json_lines.rb +51 -0
  337. data/spec/codecs/json_spooler.rb +43 -0
  338. data/spec/codecs/msgpack.rb +39 -0
  339. data/spec/codecs/multiline.rb +60 -0
  340. data/spec/codecs/oldlogstashjson.rb +55 -0
  341. data/spec/codecs/plain.rb +35 -0
  342. data/spec/codecs/spool.rb +35 -0
  343. data/spec/conditionals/test.rb +323 -0
  344. data/spec/config.rb +31 -0
  345. data/spec/event.rb +165 -0
  346. data/spec/examples/fail2ban.rb +28 -0
  347. data/spec/examples/graphite-input.rb +41 -0
  348. data/spec/examples/mysql-slow-query.rb +70 -0
  349. data/spec/examples/parse-apache-logs.rb +66 -0
  350. data/spec/examples/parse-haproxy-logs.rb +115 -0
  351. data/spec/examples/syslog.rb +48 -0
  352. data/spec/filters/alter.rb +96 -0
  353. data/spec/filters/anonymize.rb +189 -0
  354. data/spec/filters/checksum.rb +41 -0
  355. data/spec/filters/clone.rb +67 -0
  356. data/spec/filters/collate.rb +122 -0
  357. data/spec/filters/csv.rb +174 -0
  358. data/spec/filters/date.rb +285 -0
  359. data/spec/filters/date_performance.rb +31 -0
  360. data/spec/filters/dns.rb +159 -0
  361. data/spec/filters/drop.rb +19 -0
  362. data/spec/filters/elapsed.rb +294 -0
  363. data/spec/filters/environment.rb +43 -0
  364. data/spec/filters/geoip.rb +62 -0
  365. data/spec/filters/grep.rb +342 -0
  366. data/spec/filters/grok.rb +473 -0
  367. data/spec/filters/grok/timeout2.rb +56 -0
  368. data/spec/filters/grok/timeouts.rb +39 -0
  369. data/spec/filters/i18n.rb +25 -0
  370. data/spec/filters/json.rb +72 -0
  371. data/spec/filters/json_encode.rb +37 -0
  372. data/spec/filters/kv.rb +403 -0
  373. data/spec/filters/metrics.rb +212 -0
  374. data/spec/filters/multiline.rb +119 -0
  375. data/spec/filters/mutate.rb +180 -0
  376. data/spec/filters/noop.rb +221 -0
  377. data/spec/filters/prune.rb +441 -0
  378. data/spec/filters/punct.rb +18 -0
  379. data/spec/filters/railsparallelrequest.rb +112 -0
  380. data/spec/filters/range.rb +169 -0
  381. data/spec/filters/split.rb +58 -0
  382. data/spec/filters/translate.rb +70 -0
  383. data/spec/filters/unique.rb +25 -0
  384. data/spec/filters/useragent.rb +42 -0
  385. data/spec/filters/xml.rb +157 -0
  386. data/spec/inputs/file.rb +107 -0
  387. data/spec/inputs/gelf.rb +52 -0
  388. data/spec/inputs/generator.rb +30 -0
  389. data/spec/inputs/imap.rb +60 -0
  390. data/spec/inputs/redis.rb +63 -0
  391. data/spec/inputs/relp.rb +70 -0
  392. data/spec/inputs/tcp.rb +101 -0
  393. data/spec/jar.rb +21 -0
  394. data/spec/outputs/csv.rb +266 -0
  395. data/spec/outputs/elasticsearch.rb +161 -0
  396. data/spec/outputs/elasticsearch_http.rb +240 -0
  397. data/spec/outputs/email.rb +173 -0
  398. data/spec/outputs/file.rb +82 -0
  399. data/spec/outputs/graphite.rb +236 -0
  400. data/spec/outputs/redis.rb +127 -0
  401. data/spec/speed.rb +20 -0
  402. data/spec/sqlite-test.rb +81 -0
  403. data/spec/support/LOGSTASH-733.rb +21 -0
  404. data/spec/support/LOGSTASH-820.rb +25 -0
  405. data/spec/support/akamai-grok.rb +26 -0
  406. data/spec/support/date-http.rb +17 -0
  407. data/spec/support/postwait1.rb +26 -0
  408. data/spec/support/pull375.rb +21 -0
  409. data/spec/test_utils.rb +125 -0
  410. data/spec/util/fieldeval_spec.rb +44 -0
  411. data/test/jenkins/config.xml.erb +74 -0
  412. data/test/jenkins/create-jobs.rb +23 -0
  413. data/test/jenkins/generatorjob.config.xml +66 -0
  414. data/tools/Gemfile +14 -0
  415. data/tools/Gemfile.jruby-1.9.lock +322 -0
  416. data/tools/Gemfile.rbx-2.1.lock +516 -0
  417. data/tools/Gemfile.ruby-1.9.1.lock +310 -0
  418. data/tools/Gemfile.ruby-2.0.0.lock +310 -0
  419. metadata +629 -0
@@ -0,0 +1,18 @@
1
+ # encoding: utf-8
2
+ require "logstash/namespace"
3
+ require "logstash/logging"
4
+
5
+ module LogStash::Util::Require
6
+ class << self
7
+ attr_accessor :logger
8
+
9
+ def require(lib, gemdep, message=nil)
10
+ @logger ||= LogStash::Logger.new(STDERR)
11
+ begin
12
+ require lib
13
+ rescue LoadError => e
14
+ @logger.error("Failed loading '#{lib}'")
15
+ end
16
+ end # def require
17
+ end # class << self
18
+ end # def LogStash::Util::Require
@@ -0,0 +1,7 @@
1
+ # encoding: utf-8
2
+ module ::LogStash::Util::SocketPeer
3
+ public
4
+ def peer
5
+ "#{peeraddr[3]}:#{peeraddr[1]}"
6
+ end # def peer
7
+ end # module SocketPeer
@@ -0,0 +1,566 @@
1
+ # encoding: utf-8
2
+ require "beefcake"
3
+
4
+ # Zenoss Protocol Buffers generated by beefcake then cleaned up and
5
+ # consolidated by hand.
6
+ #
7
+ module Org
8
+ module Zenoss
9
+ module Protobufs
10
+
11
+ module Util
12
+
13
+ class TimestampRange
14
+ include Beefcake::Message
15
+
16
+ optional :start_time, :uint64, 1
17
+ optional :end_time, :uint64, 2
18
+ end
19
+
20
+ class ScheduleWindow
21
+ include Beefcake::Message
22
+
23
+ module RepeatType
24
+ NEVER = 0
25
+ DAILY = 1
26
+ EVERY_WEEKDAY = 2
27
+ WEEKLY = 3
28
+ MONTHLY = 4
29
+ FIRST_SUNDAY = 5
30
+ end
31
+
32
+ optional :uuid, :string, 1
33
+ optional :name, :string, 2
34
+ optional :enabled, :bool, 3
35
+ optional :created_time, :uint64, 4
36
+ optional :duration_seconds, :int32, 5
37
+ optional :repeat, ScheduleWindow::RepeatType, 6
38
+ end
39
+
40
+ class ScheduleWindowSet
41
+ include Beefcake::Message
42
+
43
+ repeated :windows, ScheduleWindow, 1
44
+ end
45
+
46
+ class Property
47
+ include Beefcake::Message
48
+
49
+ required :name, :string, 1
50
+ required :value, :string, 2
51
+ end
52
+
53
+ end # module Org::Zenoss::Protobufs::Util
54
+
55
+ module Model
56
+
57
+ module ModelElementType
58
+ DEVICE = 1
59
+ COMPONENT = 2
60
+ SERVICE = 3
61
+ ORGANIZER = 4
62
+ end
63
+
64
+ class Device
65
+ include Beefcake::Message
66
+
67
+ optional :uuid, :string, 1
68
+ optional :id, :string, 2
69
+ optional :title, :string, 3
70
+ end
71
+
72
+ class Component
73
+ include Beefcake::Message
74
+
75
+ optional :uuid, :string, 1
76
+ optional :id, :string, 2
77
+ optional :title, :string, 3
78
+ optional :device, Device, 4
79
+ end
80
+
81
+ class Organizer
82
+ include Beefcake::Message
83
+
84
+ optional :uuid, :string, 1
85
+ optional :title, :string, 2
86
+ optional :path, :string, 3
87
+ end
88
+
89
+ class Service
90
+ include Beefcake::Message
91
+
92
+ optional :uuid, :string, 1
93
+ optional :title, :string, 2
94
+ repeated :impacts, :string, 3
95
+ end
96
+
97
+ end # module Org::Zenoss::Protobufs::Util
98
+
99
+ module Zep
100
+
101
+ module EventSeverity
102
+ SEVERITY_CLEAR = 0
103
+ SEVERITY_DEBUG = 1
104
+ SEVERITY_INFO = 2
105
+ SEVERITY_WARNING = 3
106
+ SEVERITY_ERROR = 4
107
+ SEVERITY_CRITICAL = 5
108
+ end
109
+
110
+ module SyslogPriority
111
+ SYSLOG_PRIORITY_EMERG = 0
112
+ SYSLOG_PRIORITY_ALERT = 1
113
+ SYSLOG_PRIORITY_CRIT = 2
114
+ SYSLOG_PRIORITY_ERR = 3
115
+ SYSLOG_PRIORITY_WARNING= 4
116
+ SYSLOG_PRIORITY_NOTICE = 5
117
+ SYSLOG_PRIORITY_INFO = 6
118
+ SYSLOG_PRIORITY_DEBUG = 7
119
+ end
120
+
121
+ module EventStatus
122
+ STATUS_NEW = 0
123
+ STATUS_ACKNOWLEDGED = 1
124
+ STATUS_SUPPRESSED = 2
125
+ STATUS_CLOSED = 3
126
+ STATUS_CLEARED = 4
127
+ STATUS_DROPPED = 5
128
+ STATUS_AGED = 6
129
+ end
130
+
131
+ module FilterOperator
132
+ OR = 1
133
+ AND = 2
134
+ end
135
+
136
+ module RuleType
137
+ RULE_TYPE_JYTHON = 1
138
+ end
139
+
140
+ class EventActor
141
+ include Beefcake::Message
142
+
143
+ optional :element_type_id, Org::Zenoss::Protobufs::Model::ModelElementType, 1
144
+ optional :element_uuid, :string, 2
145
+ optional :element_identifier, :string, 3
146
+ optional :element_title, :string, 4
147
+ optional :element_sub_type_id, Org::Zenoss::Protobufs::Model::ModelElementType, 5
148
+ optional :element_sub_uuid, :string, 6
149
+ optional :element_sub_identifier, :string, 7
150
+ optional :element_sub_title, :string, 8
151
+ end
152
+
153
+ class EventDetail
154
+ include Beefcake::Message
155
+
156
+ module EventDetailMergeBehavior
157
+ REPLACE = 1
158
+ APPEND = 2
159
+ UNIQUE = 3
160
+ end
161
+
162
+ required :name, :string, 1
163
+ repeated :value, :string, 2
164
+ optional :merge_behavior, EventDetail::EventDetailMergeBehavior, 3, :default => EventDetail::EventDetailMergeBehavior::REPLACE
165
+ end
166
+
167
+ class EventDetailSet
168
+ include Beefcake::Message
169
+
170
+ repeated :details, EventDetail, 1
171
+ end
172
+
173
+ class EventTag
174
+ include Beefcake::Message
175
+
176
+ required :type, :string, 1
177
+ repeated :uuid, :string, 2
178
+ end
179
+
180
+ class EventNote
181
+ include Beefcake::Message
182
+
183
+ optional :uuid, :string, 1
184
+ optional :user_uuid, :string, 2
185
+ optional :user_name, :string, 3
186
+ optional :created_time, :uint64, 4
187
+ required :message, :string, 5
188
+ end
189
+
190
+ class Event
191
+ include Beefcake::Message
192
+
193
+ optional :uuid, :string, 1
194
+ optional :created_time, :uint64, 2
195
+ optional :fingerprint, :string, 3
196
+ optional :event_class, :string, 4
197
+ optional :event_class_key, :string, 5
198
+ optional :event_class_mapping_uuid, :string, 6
199
+ optional :actor, EventActor, 7
200
+ optional :summary, :string, 8
201
+ optional :message, :string, 9
202
+ optional :severity, EventSeverity, 10, :default => EventSeverity::SEVERITY_INFO
203
+ optional :event_key, :string, 12
204
+ optional :event_group, :string, 13
205
+ optional :agent, :string, 14
206
+ optional :syslog_priority, SyslogPriority, 15
207
+ optional :syslog_facility, :uint32, 16
208
+ optional :nt_event_code, :uint32, 17
209
+ optional :monitor, :string, 18
210
+ repeated :details, EventDetail, 19
211
+ repeated :tags, EventTag, 20
212
+ optional :summary_uuid, :string, 21
213
+ optional :status, EventStatus, 22, :default => EventStatus::STATUS_NEW
214
+ optional :apply_transforms, :bool, 23, :default => true
215
+ optional :count, :uint32, 24, :default => 1
216
+ optional :first_seen_time, :uint64, 25
217
+ end
218
+
219
+ class ZepRawEvent
220
+ include Beefcake::Message
221
+
222
+ required :event, Event, 1
223
+ repeated :clear_event_class, :string, 2
224
+ end
225
+
226
+ class EventAuditLog
227
+ include Beefcake::Message
228
+
229
+ required :timestamp, :uint64, 1
230
+ required :new_status, EventStatus, 2
231
+ optional :user_uuid, :string, 3
232
+ optional :user_name, :string, 4
233
+ end
234
+
235
+ class EventSummary
236
+ include Beefcake::Message
237
+
238
+ optional :uuid, :string, 1
239
+ repeated :occurrence, Event, 2
240
+ optional :status, EventStatus, 3, :default => EventStatus::STATUS_NEW
241
+ optional :first_seen_time, :uint64, 4
242
+ optional :status_change_time, :uint64, 5
243
+ optional :last_seen_time, :uint64, 6
244
+ optional :count, :uint32, 7, :default => 1
245
+ optional :current_user_uuid, :string, 8
246
+ optional :current_user_name, :string, 9
247
+ optional :cleared_by_event_uuid, :string, 10
248
+ repeated :notes, EventNote, 11
249
+ repeated :audit_log, EventAuditLog, 12
250
+ optional :update_time, :uint64, 13
251
+ end
252
+
253
+ class NumberRange
254
+ include Beefcake::Message
255
+
256
+ optional :from, :sint64, 1
257
+ optional :to, :sint64, 2
258
+ end
259
+
260
+ class EventTagFilter
261
+ include Beefcake::Message
262
+
263
+ optional :op, FilterOperator, 1, :default => FilterOperator::OR
264
+ repeated :tag_uuids, :string, 2
265
+ end
266
+
267
+ class EventDetailFilter
268
+ include Beefcake::Message
269
+
270
+ required :key, :string, 1
271
+ repeated :value, :string, 2
272
+ optional :op, FilterOperator, 3, :default => FilterOperator::OR
273
+ end
274
+
275
+ class EventFilter
276
+ include Beefcake::Message
277
+
278
+ repeated :severity, EventSeverity, 1
279
+ repeated :status, EventStatus, 2
280
+ repeated :event_class, :string, 3
281
+ repeated :first_seen, :'org::zenoss::protobufs::util::TimestampRange', 4
282
+ repeated :last_seen, :'org::zenoss::protobufs::util::TimestampRange', 5
283
+ repeated :status_change, :'org::zenoss::protobufs::util::TimestampRange', 6
284
+ repeated :update_time, :'org::zenoss::protobufs::util::TimestampRange', 7
285
+ repeated :count_range, NumberRange, 8
286
+ repeated :element_identifier, :string, 9
287
+ repeated :element_sub_identifier, :string, 10
288
+ repeated :uuid, :string, 11
289
+ repeated :event_summary, :string, 12
290
+ repeated :current_user_name, :string, 13
291
+ repeated :tag_filter, EventTagFilter, 14
292
+ repeated :details, EventDetailFilter, 15
293
+ repeated :fingerprint, :string, 16
294
+ repeated :agent, :string, 17
295
+ repeated :monitor, :string, 18
296
+ optional :operator, FilterOperator, 19, :default => FilterOperator::AND
297
+ repeated :subfilter, EventFilter, 20
298
+ repeated :element_title, :string, 21
299
+ repeated :element_sub_title, :string, 22
300
+ repeated :event_key, :string, 23
301
+ repeated :event_class_key, :string, 24
302
+ repeated :event_group, :string, 25
303
+ repeated :message, :string, 26
304
+ end
305
+
306
+ class EventSort
307
+ include Beefcake::Message
308
+
309
+ module Field
310
+ SEVERITY = 1
311
+ STATUS = 2
312
+ EVENT_CLASS = 3
313
+ FIRST_SEEN = 4
314
+ LAST_SEEN = 5
315
+ STATUS_CHANGE = 6
316
+ COUNT = 7
317
+ ELEMENT_IDENTIFIER = 8
318
+ ELEMENT_SUB_IDENTIFIER = 9
319
+ EVENT_SUMMARY = 10
320
+ UPDATE_TIME = 11
321
+ CURRENT_USER_NAME = 12
322
+ AGENT = 13
323
+ MONITOR = 14
324
+ UUID = 15
325
+ FINGERPRINT = 16
326
+ DETAIL = 17
327
+ ELEMENT_TITLE = 18
328
+ ELEMENT_SUB_TITLE = 19
329
+ EVENT_KEY = 20
330
+ EVENT_CLASS_KEY = 21
331
+ EVENT_GROUP = 22
332
+ end
333
+
334
+ module Direction
335
+ ASCENDING = 1
336
+ DESCENDING = 2
337
+ end
338
+
339
+ required :field, EventSort::Field, 1
340
+ optional :direction, EventSort::Direction, 2, :default => EventSort::Direction::ASCENDING
341
+ optional :detail_key, :string, 3
342
+ end
343
+
344
+ class EventSummaryRequest
345
+ include Beefcake::Message
346
+
347
+ optional :event_filter, EventFilter, 1
348
+ optional :exclusion_filter, EventFilter, 2
349
+ repeated :sort, EventSort, 3
350
+ optional :limit, :uint32, 4, :default => 1000
351
+ optional :offset, :uint32, 5
352
+ end
353
+
354
+ class EventSummaryResult
355
+ include Beefcake::Message
356
+
357
+ repeated :events, EventSummary, 1
358
+ optional :limit, :uint32, 2
359
+ optional :next_offset, :uint32, 3
360
+ optional :total, :uint32, 4
361
+ end
362
+
363
+ class EventSummaryUpdate
364
+ include Beefcake::Message
365
+
366
+ optional :status, EventStatus, 1
367
+ optional :current_user_uuid, :string, 2
368
+ optional :current_user_name, :string, 3
369
+ end
370
+
371
+ class EventQuery
372
+ include Beefcake::Message
373
+
374
+ optional :event_filter, EventFilter, 1
375
+ optional :exclusion_filter, EventFilter, 2
376
+ repeated :sort, EventSort, 3
377
+ optional :timeout, :uint32, 4, :default => 60
378
+ end
379
+
380
+ class EventSummaryUpdateRequest
381
+ include Beefcake::Message
382
+
383
+ optional :event_query_uuid, :string, 1
384
+ required :update_fields, EventSummaryUpdate, 2
385
+ optional :offset, :uint32, 3, :default => 0
386
+ optional :limit, :uint32, 4, :default => 100
387
+ end
388
+
389
+ class EventSummaryUpdateResponse
390
+ include Beefcake::Message
391
+
392
+ optional :next_request, EventSummaryUpdateRequest, 1
393
+ optional :total, :uint32, 2
394
+ required :updated, :uint32, 3
395
+ end
396
+
397
+ class EventDetailItem
398
+ include Beefcake::Message
399
+
400
+ module EventDetailType
401
+ STRING = 1
402
+ INTEGER = 2
403
+ FLOAT = 3
404
+ LONG = 4
405
+ DOUBLE = 5
406
+ IP_ADDRESS = 6
407
+ PATH = 7
408
+ end
409
+
410
+ required :key, :string, 1
411
+ optional :type, EventDetailItem::EventDetailType, 2, :default => EventDetailItem::EventDetailType::STRING
412
+ optional :name, :string, 3
413
+ end
414
+
415
+ class EventDetailItemSet
416
+ include Beefcake::Message
417
+
418
+ repeated :details, EventDetailItem, 1
419
+ end
420
+
421
+ class Rule
422
+ include Beefcake::Message
423
+
424
+ required :api_version, :int32, 1
425
+ required :type, RuleType, 2
426
+ required :source, :string, 3
427
+ end
428
+
429
+ class EventTriggerSubscription
430
+ include Beefcake::Message
431
+
432
+ optional :uuid, :string, 1
433
+ optional :delay_seconds, :int32, 2
434
+ optional :repeat_seconds, :int32, 3
435
+ optional :send_initial_occurrence, :bool, 4, :default => true
436
+ required :subscriber_uuid, :string, 5
437
+ required :trigger_uuid, :string, 6
438
+ end
439
+
440
+ class EventTriggerSubscriptionSet
441
+ include Beefcake::Message
442
+
443
+ repeated :subscriptions, EventTriggerSubscription, 1
444
+ end
445
+
446
+ class EventTrigger
447
+ include Beefcake::Message
448
+
449
+ optional :uuid, :string, 1
450
+ optional :name, :string, 2
451
+ optional :enabled, :bool, 3, :default => true
452
+ required :rule, Rule, 4
453
+ repeated :subscriptions, EventTriggerSubscription, 5
454
+ end
455
+
456
+ class EventTriggerSet
457
+ include Beefcake::Message
458
+
459
+ repeated :triggers, EventTrigger, 1
460
+ end
461
+
462
+ class Signal
463
+ include Beefcake::Message
464
+
465
+ required :uuid, :string, 1
466
+ required :created_time, :uint64, 2
467
+ required :trigger_uuid, :string, 3
468
+ required :subscriber_uuid, :string, 4
469
+ optional :clear, :bool, 5, :default => false
470
+ optional :event, EventSummary, 6
471
+ optional :clear_event, EventSummary, 7
472
+ optional :message, :string, 8
473
+ end
474
+
475
+ class EventTagSeverity
476
+ include Beefcake::Message
477
+
478
+ required :severity, EventSeverity, 1
479
+ optional :count, :uint32, 2, :default => 0
480
+ optional :acknowledged_count, :uint32, 3, :default => 0
481
+ end
482
+
483
+ class EventTagSeverities
484
+ include Beefcake::Message
485
+
486
+ required :tag_uuid, :string, 1
487
+ repeated :severities, EventTagSeverity, 2
488
+ optional :total, :uint32, 3
489
+ end
490
+
491
+ class EventTagSeveritiesSet
492
+ include Beefcake::Message
493
+
494
+ repeated :severities, EventTagSeverities, 1
495
+ end
496
+
497
+ class ZepConfig
498
+ include Beefcake::Message
499
+
500
+ optional :event_age_disable_severity, EventSeverity, 1, :default => EventSeverity::SEVERITY_ERROR
501
+ optional :event_age_interval_minutes, :uint32, 2, :default => 240
502
+ optional :event_archive_interval_minutes, :uint32, 3, :default => 4320
503
+ optional :event_archive_purge_interval_days, :uint32, 4, :default => 90
504
+ optional :event_time_purge_interval_days, :uint32, 5, :default => 1
505
+ optional :event_age_severity_inclusive, :bool, 6, :default => false
506
+ optional :event_max_size_bytes, :uint64, 7, :default => 32768
507
+ optional :index_summary_interval_milliseconds, :uint64, 8, :default => 1000
508
+ optional :index_archive_interval_milliseconds, :uint64, 9, :default => 30000
509
+ optional :index_limit, :uint32, 10, :default => 1000
510
+ optional :aging_limit, :uint32, 11, :default => 1000
511
+ optional :archive_limit, :uint32, 12, :default => 1000
512
+ optional :aging_interval_milliseconds, :uint64, 13, :default => 60000
513
+ optional :archive_interval_milliseconds, :uint64, 14, :default => 60000
514
+ end
515
+
516
+ class DaemonHeartbeat
517
+ include Beefcake::Message
518
+
519
+ required :monitor, :string, 1
520
+ required :daemon, :string, 2
521
+ required :timeout_seconds, :uint32, 3
522
+ optional :last_time, :uint64, 4
523
+ end
524
+
525
+ class DaemonHeartbeatSet
526
+ include Beefcake::Message
527
+
528
+ repeated :heartbeats, DaemonHeartbeat, 1
529
+ end
530
+
531
+ class EventTime
532
+ include Beefcake::Message
533
+
534
+ optional :summary_uuid, :string, 1
535
+ optional :processed_time, :uint64, 2
536
+ optional :created_time, :uint64, 3
537
+ optional :first_seen_time, :uint64, 4
538
+ end
539
+
540
+ class EventTimeSet
541
+ include Beefcake::Message
542
+
543
+ repeated :event_times, EventTime, 1
544
+ end
545
+
546
+ class ZepStatistic
547
+ include Beefcake::Message
548
+
549
+ required :name, :string, 1
550
+ required :description, :string, 2
551
+ required :value, :int64, 3
552
+ end
553
+
554
+ class ZepStatistics
555
+ include Beefcake::Message
556
+
557
+ repeated :stats, ZepStatistic, 1
558
+ end
559
+
560
+ end # module Org::Zenoss:Protobufs::Zep
561
+
562
+ end # module Org::Zenoss::Protobufs
563
+
564
+ end # module Org::Zenoss
565
+
566
+ end # module Org