jruby-druid 1.0.0.pre.rc2

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 (268) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/CODE_OF_CONDUCT.md +49 -0
  6. data/Gemfile +2 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +9 -0
  9. data/Rakefile +6 -0
  10. data/benchmark.rb +43 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/jruby-druid.gemspec +31 -0
  14. data/lib/druid/README.md +20 -0
  15. data/lib/druid/client.rb +21 -0
  16. data/lib/druid/configuration.rb +51 -0
  17. data/lib/druid/connection.rb +64 -0
  18. data/lib/druid/errors.rb +21 -0
  19. data/lib/druid/logging.rb +1 -0
  20. data/lib/druid/node/broker.rb +18 -0
  21. data/lib/druid/node/coordinator.rb +108 -0
  22. data/lib/druid/node/overlord.rb +51 -0
  23. data/lib/druid/query/core.rb +8 -0
  24. data/lib/druid/query/datasource.rb +35 -0
  25. data/lib/druid/query/task.rb +7 -0
  26. data/lib/druid/version.rb +3 -0
  27. data/lib/druid/writer/base.rb +59 -0
  28. data/lib/druid/writer/tranquilizer.rb +48 -0
  29. data/lib/druid/writer/tranquilizer/aggregators.rb +15 -0
  30. data/lib/druid/writer/tranquilizer/base.rb +64 -0
  31. data/lib/druid/writer/tranquilizer/curator.rb +18 -0
  32. data/lib/druid/writer/tranquilizer/datapoint.rb +24 -0
  33. data/lib/druid/writer/tranquilizer/dimensions.rb +16 -0
  34. data/lib/druid/writer/tranquilizer/druid_beam_config.rb +40 -0
  35. data/lib/druid/writer/tranquilizer/druid_beams.rb +12 -0
  36. data/lib/druid/writer/tranquilizer/event_listener.rb +17 -0
  37. data/lib/druid/writer/tranquilizer/rollup.rb +23 -0
  38. data/lib/druid/writer/tranquilizer/timestamper.rb +13 -0
  39. data/lib/druid/writer/tranquilizer/tuning.rb +25 -0
  40. data/lib/jruby-druid.rb +35 -0
  41. data/vendor/quarantine/io.druid.tranquility-core-0.8.1.jar +0 -0
  42. data/vendor/quarantine/jline.jline-0.9.94.jar +0 -0
  43. data/vendor/tranquility/aopalliance.aopalliance-1.0.jar +0 -0
  44. data/vendor/tranquility/c3p0.c3p0-0.9.1.2.jar +0 -0
  45. data/vendor/tranquility/ch.qos.logback.logback-classic-1.1.2.jar +0 -0
  46. data/vendor/tranquility/ch.qos.logback.logback-core-1.1.2.jar +0 -0
  47. data/vendor/tranquility/com.101tec.zkclient-0.3.jar +0 -0
  48. data/vendor/tranquility/com.amazonaws.aws-java-sdk-1.10.21.jar +0 -0
  49. data/vendor/tranquility/com.amazonaws.aws-java-sdk-autoscaling-1.10.21.jar +0 -0
  50. data/vendor/tranquility/com.amazonaws.aws-java-sdk-cloudformation-1.10.21.jar +0 -0
  51. data/vendor/tranquility/com.amazonaws.aws-java-sdk-cloudfront-1.10.21.jar +0 -0
  52. data/vendor/tranquility/com.amazonaws.aws-java-sdk-cloudhsm-1.10.21.jar +0 -0
  53. data/vendor/tranquility/com.amazonaws.aws-java-sdk-cloudsearch-1.10.21.jar +0 -0
  54. data/vendor/tranquility/com.amazonaws.aws-java-sdk-cloudtrail-1.10.21.jar +0 -0
  55. data/vendor/tranquility/com.amazonaws.aws-java-sdk-cloudwatch-1.10.21.jar +0 -0
  56. data/vendor/tranquility/com.amazonaws.aws-java-sdk-cloudwatchmetrics-1.10.21.jar +0 -0
  57. data/vendor/tranquility/com.amazonaws.aws-java-sdk-codecommit-1.10.21.jar +0 -0
  58. data/vendor/tranquility/com.amazonaws.aws-java-sdk-codedeploy-1.10.21.jar +0 -0
  59. data/vendor/tranquility/com.amazonaws.aws-java-sdk-codepipeline-1.10.21.jar +0 -0
  60. data/vendor/tranquility/com.amazonaws.aws-java-sdk-cognitoidentity-1.10.21.jar +0 -0
  61. data/vendor/tranquility/com.amazonaws.aws-java-sdk-cognitosync-1.10.21.jar +0 -0
  62. data/vendor/tranquility/com.amazonaws.aws-java-sdk-config-1.10.21.jar +0 -0
  63. data/vendor/tranquility/com.amazonaws.aws-java-sdk-core-1.10.21.jar +0 -0
  64. data/vendor/tranquility/com.amazonaws.aws-java-sdk-datapipeline-1.10.21.jar +0 -0
  65. data/vendor/tranquility/com.amazonaws.aws-java-sdk-devicefarm-1.10.21.jar +0 -0
  66. data/vendor/tranquility/com.amazonaws.aws-java-sdk-directconnect-1.10.21.jar +0 -0
  67. data/vendor/tranquility/com.amazonaws.aws-java-sdk-directory-1.10.21.jar +0 -0
  68. data/vendor/tranquility/com.amazonaws.aws-java-sdk-dynamodb-1.10.21.jar +0 -0
  69. data/vendor/tranquility/com.amazonaws.aws-java-sdk-ec2-1.10.21.jar +0 -0
  70. data/vendor/tranquility/com.amazonaws.aws-java-sdk-ecs-1.10.21.jar +0 -0
  71. data/vendor/tranquility/com.amazonaws.aws-java-sdk-efs-1.10.21.jar +0 -0
  72. data/vendor/tranquility/com.amazonaws.aws-java-sdk-elasticache-1.10.21.jar +0 -0
  73. data/vendor/tranquility/com.amazonaws.aws-java-sdk-elasticbeanstalk-1.10.21.jar +0 -0
  74. data/vendor/tranquility/com.amazonaws.aws-java-sdk-elasticloadbalancing-1.10.21.jar +0 -0
  75. data/vendor/tranquility/com.amazonaws.aws-java-sdk-elastictranscoder-1.10.21.jar +0 -0
  76. data/vendor/tranquility/com.amazonaws.aws-java-sdk-emr-1.10.21.jar +0 -0
  77. data/vendor/tranquility/com.amazonaws.aws-java-sdk-glacier-1.10.21.jar +0 -0
  78. data/vendor/tranquility/com.amazonaws.aws-java-sdk-iam-1.10.21.jar +0 -0
  79. data/vendor/tranquility/com.amazonaws.aws-java-sdk-importexport-1.10.21.jar +0 -0
  80. data/vendor/tranquility/com.amazonaws.aws-java-sdk-kinesis-1.10.21.jar +0 -0
  81. data/vendor/tranquility/com.amazonaws.aws-java-sdk-kms-1.10.21.jar +0 -0
  82. data/vendor/tranquility/com.amazonaws.aws-java-sdk-lambda-1.10.21.jar +0 -0
  83. data/vendor/tranquility/com.amazonaws.aws-java-sdk-logs-1.10.21.jar +0 -0
  84. data/vendor/tranquility/com.amazonaws.aws-java-sdk-machinelearning-1.10.21.jar +0 -0
  85. data/vendor/tranquility/com.amazonaws.aws-java-sdk-opsworks-1.10.21.jar +0 -0
  86. data/vendor/tranquility/com.amazonaws.aws-java-sdk-rds-1.10.21.jar +0 -0
  87. data/vendor/tranquility/com.amazonaws.aws-java-sdk-redshift-1.10.21.jar +0 -0
  88. data/vendor/tranquility/com.amazonaws.aws-java-sdk-route53-1.10.21.jar +0 -0
  89. data/vendor/tranquility/com.amazonaws.aws-java-sdk-s3-1.10.21.jar +0 -0
  90. data/vendor/tranquility/com.amazonaws.aws-java-sdk-ses-1.10.21.jar +0 -0
  91. data/vendor/tranquility/com.amazonaws.aws-java-sdk-simpledb-1.10.21.jar +0 -0
  92. data/vendor/tranquility/com.amazonaws.aws-java-sdk-simpleworkflow-1.10.21.jar +0 -0
  93. data/vendor/tranquility/com.amazonaws.aws-java-sdk-sns-1.10.21.jar +0 -0
  94. data/vendor/tranquility/com.amazonaws.aws-java-sdk-sqs-1.10.21.jar +0 -0
  95. data/vendor/tranquility/com.amazonaws.aws-java-sdk-ssm-1.10.21.jar +0 -0
  96. data/vendor/tranquility/com.amazonaws.aws-java-sdk-storagegateway-1.10.21.jar +0 -0
  97. data/vendor/tranquility/com.amazonaws.aws-java-sdk-sts-1.10.21.jar +0 -0
  98. data/vendor/tranquility/com.amazonaws.aws-java-sdk-support-1.10.21.jar +0 -0
  99. data/vendor/tranquility/com.amazonaws.aws-java-sdk-swf-libraries-1.10.21.jar +0 -0
  100. data/vendor/tranquility/com.amazonaws.aws-java-sdk-workspaces-1.10.21.jar +0 -0
  101. data/vendor/tranquility/com.fasterxml.classmate-1.0.0.jar +0 -0
  102. data/vendor/tranquility/com.fasterxml.jackson.core.jackson-annotations-2.4.6.jar +0 -0
  103. data/vendor/tranquility/com.fasterxml.jackson.core.jackson-core-2.4.6.jar +0 -0
  104. data/vendor/tranquility/com.fasterxml.jackson.core.jackson-databind-2.4.6.jar +0 -0
  105. data/vendor/tranquility/com.fasterxml.jackson.dataformat.jackson-dataformat-smile-2.4.6.jar +0 -0
  106. data/vendor/tranquility/com.fasterxml.jackson.datatype.jackson-datatype-guava-2.4.6.jar +0 -0
  107. data/vendor/tranquility/com.fasterxml.jackson.datatype.jackson-datatype-joda-2.4.6.jar +0 -0
  108. data/vendor/tranquility/com.fasterxml.jackson.jaxrs.jackson-jaxrs-base-2.4.6.jar +0 -0
  109. data/vendor/tranquility/com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider-2.4.6.jar +0 -0
  110. data/vendor/tranquility/com.fasterxml.jackson.jaxrs.jackson-jaxrs-smile-provider-2.4.6.jar +0 -0
  111. data/vendor/tranquility/com.fasterxml.jackson.module.jackson-module-jaxb-annotations-2.4.6.jar +0 -0
  112. data/vendor/tranquility/com.fasterxml.jackson.module.jackson-module-scala_2.11-2.4.5.jar +0 -0
  113. data/vendor/tranquility/com.google.code.findbugs.annotations-2.0.3.jar +0 -0
  114. data/vendor/tranquility/com.google.code.findbugs.jsr305-2.0.1.jar +0 -0
  115. data/vendor/tranquility/com.google.guava.guava-16.0.1.jar +0 -0
  116. data/vendor/tranquility/com.google.http-client.google-http-client-1.15.0-rc.jar +0 -0
  117. data/vendor/tranquility/com.google.http-client.google-http-client-jackson2-1.15.0-rc.jar +0 -0
  118. data/vendor/tranquility/com.google.inject.extensions.guice-multibindings-4.0.jar +0 -0
  119. data/vendor/tranquility/com.google.inject.extensions.guice-servlet-4.0.jar +0 -0
  120. data/vendor/tranquility/com.google.inject.guice-4.0.jar +0 -0
  121. data/vendor/tranquility/com.google.protobuf.protobuf-java-2.5.0.jar +0 -0
  122. data/vendor/tranquility/com.googlecode.juniversalchardet.juniversalchardet-1.0.3.jar +0 -0
  123. data/vendor/tranquility/com.h2database.h2-1.3.158.jar +0 -0
  124. data/vendor/tranquility/com.ibm.icu.icu4j-4.8.1.jar +0 -0
  125. data/vendor/tranquility/com.ircclouds.irc.irc-api-1.0-0014.jar +0 -0
  126. data/vendor/tranquility/com.jamesmurty.utils.java-xmlbuilder-1.1.jar +0 -0
  127. data/vendor/tranquility/com.jayway.jsonpath.json-path-2.1.0.jar +0 -0
  128. data/vendor/tranquility/com.maxmind.geoip2.geoip2-0.4.0.jar +0 -0
  129. data/vendor/tranquility/com.maxmind.maxminddb.maxminddb-0.2.0.jar +0 -0
  130. data/vendor/tranquility/com.metamx.bytebuffer-collections-0.2.4.jar +0 -0
  131. data/vendor/tranquility/com.metamx.emitter-0.3.6.jar +0 -0
  132. data/vendor/tranquility/com.metamx.extendedset-1.3.9.jar +0 -0
  133. data/vendor/tranquility/com.metamx.http-client-1.0.4.jar +0 -0
  134. data/vendor/tranquility/com.metamx.java-util-0.27.7.jar +0 -0
  135. data/vendor/tranquility/com.metamx.loglady_2.11-1.1.0-mmx.jar +0 -0
  136. data/vendor/tranquility/com.metamx.scala-util_2.11-1.11.6.jar +0 -0
  137. data/vendor/tranquility/com.metamx.server-metrics-0.2.8.jar +0 -0
  138. data/vendor/tranquility/com.ning.compress-lzf-1.0.3.jar +0 -0
  139. data/vendor/tranquility/com.squareup.okhttp.okhttp-1.0.2.jar +0 -0
  140. data/vendor/tranquility/com.sun.jersey.contribs.jersey-guice-1.19.jar +0 -0
  141. data/vendor/tranquility/com.sun.jersey.jersey-core-1.19.jar +0 -0
  142. data/vendor/tranquility/com.sun.jersey.jersey-server-1.19.jar +0 -0
  143. data/vendor/tranquility/com.thoughtworks.paranamer.paranamer-2.6.jar +0 -0
  144. data/vendor/tranquility/com.twitter.finagle-core_2.11-6.31.0.jar +0 -0
  145. data/vendor/tranquility/com.twitter.finagle-http_2.11-6.31.0.jar +0 -0
  146. data/vendor/tranquility/com.twitter.jsr166e-1.0.0.jar +0 -0
  147. data/vendor/tranquility/com.twitter.util-app_2.11-6.30.0.jar +0 -0
  148. data/vendor/tranquility/com.twitter.util-cache_2.11-6.30.0.jar +0 -0
  149. data/vendor/tranquility/com.twitter.util-codec_2.11-6.30.0.jar +0 -0
  150. data/vendor/tranquility/com.twitter.util-collection_2.11-6.30.0.jar +0 -0
  151. data/vendor/tranquility/com.twitter.util-core_2.11-6.30.0.jar +0 -0
  152. data/vendor/tranquility/com.twitter.util-function_2.11-6.30.0.jar +0 -0
  153. data/vendor/tranquility/com.twitter.util-hashing_2.11-6.30.0.jar +0 -0
  154. data/vendor/tranquility/com.twitter.util-jvm_2.11-6.30.0.jar +0 -0
  155. data/vendor/tranquility/com.twitter.util-lint_2.11-6.30.0.jar +0 -0
  156. data/vendor/tranquility/com.twitter.util-logging_2.11-6.30.0.jar +0 -0
  157. data/vendor/tranquility/com.twitter.util-registry_2.11-6.30.0.jar +0 -0
  158. data/vendor/tranquility/com.twitter.util-stats_2.11-6.30.0.jar +0 -0
  159. data/vendor/tranquility/com.yammer.metrics.metrics-core-2.2.0.jar +0 -0
  160. data/vendor/tranquility/commons-cli.commons-cli-1.2.jar +0 -0
  161. data/vendor/tranquility/commons-codec.commons-codec-1.9.jar +0 -0
  162. data/vendor/tranquility/commons-collections.commons-collections-3.2.1.jar +0 -0
  163. data/vendor/tranquility/commons-io.commons-io-2.4.jar +0 -0
  164. data/vendor/tranquility/commons-lang.commons-lang-2.6.jar +0 -0
  165. data/vendor/tranquility/commons-logging.commons-logging-1.1.3.jar +0 -0
  166. data/vendor/tranquility/commons-pool.commons-pool-1.6.jar +0 -0
  167. data/vendor/tranquility/eu.medsea.mimeutil.mime-util-2.1.3.jar +0 -0
  168. data/vendor/tranquility/io.airlift.airline-0.7.jar +0 -0
  169. data/vendor/tranquility/io.druid.druid-api-0.3.16.jar +0 -0
  170. data/vendor/tranquility/io.druid.druid-aws-common-0.9.0.jar +0 -0
  171. data/vendor/tranquility/io.druid.druid-common-0.9.0.jar +0 -0
  172. data/vendor/tranquility/io.druid.druid-console-0.0.2.jar +0 -0
  173. data/vendor/tranquility/io.druid.druid-processing-0.9.0.jar +0 -0
  174. data/vendor/tranquility/io.druid.druid-server-0.9.0.jar +0 -0
  175. data/vendor/tranquility/io.druid.tranquility-distribution-0.8.1.jar +0 -0
  176. data/vendor/tranquility/io.druid.tranquility-kafka-0.8.1.jar +0 -0
  177. data/vendor/tranquility/io.druid.tranquility-server-0.8.1.jar +0 -0
  178. data/vendor/tranquility/io.netty.netty-3.10.5.Final.jar +0 -0
  179. data/vendor/tranquility/io.tesla.aether.aether-connector-okhttp-0.0.9.jar +0 -0
  180. data/vendor/tranquility/io.tesla.aether.tesla-aether-0.0.5.jar +0 -0
  181. data/vendor/tranquility/javax.activation.activation-1.1.1.jar +0 -0
  182. data/vendor/tranquility/javax.el.javax.el-api-3.0.0.jar +0 -0
  183. data/vendor/tranquility/javax.inject.javax.inject-1.jar +0 -0
  184. data/vendor/tranquility/javax.servlet.javax.servlet-api-3.1.0.jar +0 -0
  185. data/vendor/tranquility/javax.validation.validation-api-1.1.0.Final.jar +0 -0
  186. data/vendor/tranquility/javax.ws.rs.jsr311-api-1.1.1.jar +0 -0
  187. data/vendor/tranquility/joda-time.joda-time-2.8.2.jar +0 -0
  188. data/vendor/tranquility/junit.junit-3.8.1.jar +0 -0
  189. data/vendor/tranquility/mysql.mysql-connector-java-5.1.18.jar +0 -0
  190. data/vendor/tranquility/net.iharder.base64-2.3.8.jar +0 -0
  191. data/vendor/tranquility/net.java.dev.jets3t.jets3t-0.9.4.jar +0 -0
  192. data/vendor/tranquility/net.jpountz.lz4.lz4-1.3.0.jar +0 -0
  193. data/vendor/tranquility/net.sf.jopt-simple.jopt-simple-3.2.jar +0 -0
  194. data/vendor/tranquility/net.sf.opencsv.opencsv-2.3.jar +0 -0
  195. data/vendor/tranquility/net.spy.spymemcached-2.11.7.jar +0 -0
  196. data/vendor/tranquility/org.abego.treelayout.org.abego.treelayout.core-1.0.1.jar +0 -0
  197. data/vendor/tranquility/org.antlr.antlr4-runtime-4.0.jar +0 -0
  198. data/vendor/tranquility/org.apache.commons.commons-dbcp2-2.0.1.jar +0 -0
  199. data/vendor/tranquility/org.apache.commons.commons-pool2-2.2.jar +0 -0
  200. data/vendor/tranquility/org.apache.curator.curator-client-2.9.1.jar +0 -0
  201. data/vendor/tranquility/org.apache.curator.curator-framework-2.9.1.jar +0 -0
  202. data/vendor/tranquility/org.apache.curator.curator-recipes-2.9.1.jar +0 -0
  203. data/vendor/tranquility/org.apache.curator.curator-x-discovery-2.9.1.jar +0 -0
  204. data/vendor/tranquility/org.apache.derby.derby-10.11.1.1.jar +0 -0
  205. data/vendor/tranquility/org.apache.derby.derbyclient-10.11.1.1.jar +0 -0
  206. data/vendor/tranquility/org.apache.derby.derbynet-10.11.1.1.jar +0 -0
  207. data/vendor/tranquility/org.apache.httpcomponents.httpclient-4.5.1.jar +0 -0
  208. data/vendor/tranquility/org.apache.httpcomponents.httpcore-4.4.3.jar +0 -0
  209. data/vendor/tranquility/org.apache.kafka.kafka-clients-0.8.2.2.jar +0 -0
  210. data/vendor/tranquility/org.apache.kafka.kafka_2.11-0.8.2.2.jar +0 -0
  211. data/vendor/tranquility/org.apache.logging.log4j.log4j-api-2.4.jar +0 -0
  212. data/vendor/tranquility/org.apache.logging.log4j.log4j-jul-2.5.jar +0 -0
  213. data/vendor/tranquility/org.apache.logging.log4j.log4j-to-slf4j-2.4.jar +0 -0
  214. data/vendor/tranquility/org.apache.maven.maven-aether-provider-3.1.1.jar +0 -0
  215. data/vendor/tranquility/org.apache.maven.maven-model-3.1.1.jar +0 -0
  216. data/vendor/tranquility/org.apache.maven.maven-model-builder-3.1.1.jar +0 -0
  217. data/vendor/tranquility/org.apache.maven.maven-repository-metadata-3.1.1.jar +0 -0
  218. data/vendor/tranquility/org.apache.maven.maven-settings-3.1.1.jar +0 -0
  219. data/vendor/tranquility/org.apache.maven.maven-settings-builder-3.1.1.jar +0 -0
  220. data/vendor/tranquility/org.apache.maven.wagon.wagon-provider-api-2.4.jar +0 -0
  221. data/vendor/tranquility/org.apache.zookeeper.zookeeper-3.4.6.jar +0 -0
  222. data/vendor/tranquility/org.bouncycastle.bcprov-jdk15on-1.52.jar +0 -0
  223. data/vendor/tranquility/org.clapper.grizzled-slf4j_2.11-1.0.2.jar +0 -0
  224. data/vendor/tranquility/org.codehaus.jackson.jackson-core-asl-1.9.13.jar +0 -0
  225. data/vendor/tranquility/org.codehaus.jackson.jackson-mapper-asl-1.9.13.jar +0 -0
  226. data/vendor/tranquility/org.codehaus.plexus.plexus-interpolation-1.19.jar +0 -0
  227. data/vendor/tranquility/org.codehaus.plexus.plexus-utils-3.0.15.jar +0 -0
  228. data/vendor/tranquility/org.eclipse.aether.aether-api-0.9.0.M2.jar +0 -0
  229. data/vendor/tranquility/org.eclipse.aether.aether-connector-file-0.9.0.M2.jar +0 -0
  230. data/vendor/tranquility/org.eclipse.aether.aether-impl-0.9.0.M2.jar +0 -0
  231. data/vendor/tranquility/org.eclipse.aether.aether-spi-0.9.0.M2.jar +0 -0
  232. data/vendor/tranquility/org.eclipse.aether.aether-util-0.9.0.M2.jar +0 -0
  233. data/vendor/tranquility/org.eclipse.jetty.jetty-client-9.2.5.v20141112.jar +0 -0
  234. data/vendor/tranquility/org.eclipse.jetty.jetty-continuation-9.2.5.v20141112.jar +0 -0
  235. data/vendor/tranquility/org.eclipse.jetty.jetty-http-9.2.5.v20141112.jar +0 -0
  236. data/vendor/tranquility/org.eclipse.jetty.jetty-io-9.2.5.v20141112.jar +0 -0
  237. data/vendor/tranquility/org.eclipse.jetty.jetty-proxy-9.2.5.v20141112.jar +0 -0
  238. data/vendor/tranquility/org.eclipse.jetty.jetty-security-9.2.5.v20141112.jar +0 -0
  239. data/vendor/tranquility/org.eclipse.jetty.jetty-server-9.2.5.v20141112.jar +0 -0
  240. data/vendor/tranquility/org.eclipse.jetty.jetty-servlet-9.2.5.v20141112.jar +0 -0
  241. data/vendor/tranquility/org.eclipse.jetty.jetty-servlets-9.2.5.v20141112.jar +0 -0
  242. data/vendor/tranquility/org.eclipse.jetty.jetty-util-9.2.5.v20141112.jar +0 -0
  243. data/vendor/tranquility/org.glassfish.javax.el-3.0.0.jar +0 -0
  244. data/vendor/tranquility/org.hibernate.hibernate-validator-5.1.3.Final.jar +0 -0
  245. data/vendor/tranquility/org.jboss.logging.jboss-logging-3.1.3.GA.jar +0 -0
  246. data/vendor/tranquility/org.jdbi.jdbi-2.63.1.jar +0 -0
  247. data/vendor/tranquility/org.joda.joda-convert-1.7.jar +0 -0
  248. data/vendor/tranquility/org.mapdb.mapdb-1.0.8.jar +0 -0
  249. data/vendor/tranquility/org.mozilla.rhino-1.7R5.jar +0 -0
  250. data/vendor/tranquility/org.roaringbitmap.RoaringBitmap-0.5.16.jar +0 -0
  251. data/vendor/tranquility/org.scala-lang.modules.scala-parser-combinators_2.11-1.0.4.jar +0 -0
  252. data/vendor/tranquility/org.scala-lang.modules.scala-xml_2.11-1.0.3.jar +0 -0
  253. data/vendor/tranquility/org.scala-lang.scala-library-2.11.7.jar +0 -0
  254. data/vendor/tranquility/org.scala-lang.scala-reflect-2.11.2.jar +0 -0
  255. data/vendor/tranquility/org.scalaj.scalaj-time_2.11-0.5.jar +0 -0
  256. data/vendor/tranquility/org.scalatra.rl.rl_2.11-0.4.10.jar +0 -0
  257. data/vendor/tranquility/org.scalatra.scalatra-common_2.11-2.3.1.jar +0 -0
  258. data/vendor/tranquility/org.scalatra.scalatra_2.11-2.3.1.jar +0 -0
  259. data/vendor/tranquility/org.skife.config.config-magic-0.9.jar +0 -0
  260. data/vendor/tranquility/org.slf4j.jcl-over-slf4j-1.7.12.jar +0 -0
  261. data/vendor/tranquility/org.slf4j.jul-to-slf4j-1.7.12.jar +0 -0
  262. data/vendor/tranquility/org.slf4j.log4j-over-slf4j-1.7.12.jar +0 -0
  263. data/vendor/tranquility/org.slf4j.slf4j-api-1.7.12.jar +0 -0
  264. data/vendor/tranquility/org.xerial.snappy.snappy-java-1.1.1.7.jar +0 -0
  265. data/vendor/tranquility/org.yaml.snakeyaml-1.11.jar +0 -0
  266. data/vendor/tranquility/tranquility-core_2.10-0.8.2-SNAPSHOT.jar +0 -0
  267. data/vendor/tranquility/xpp3.xpp3-1.1.4c.jar +0 -0
  268. metadata +424 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 21e8d32e124615a4416d3c96d100dc5321aad913
4
+ data.tar.gz: 5d668c1de6018fe3d4e0fe0a8ab8150df5ebf89d
5
+ SHA512:
6
+ metadata.gz: d8f6e25c91a4d162f4d1b463354cdc2baa55b41bebe0017097bf16752952bcb181912449237db0b25c9f2cfdf9249d63656796a45049b33361bf44010bd1b8a9
7
+ data.tar.gz: 2a4b4842a23fc82303c57b148a74a5b4a9d141c6fe6382c261cde2fe8945fffae45f295f1b07ddfd0704afc937fc3393639cf131d1c1a4778de07a178ebff376
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /example
11
+ zookeeper.out
12
+ jruby-druid.log
13
+ .ruby-version
14
+ *.gem
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.3
4
+ before_install: gem install bundler -v 1.11.2
@@ -0,0 +1,49 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, and in the interest of
4
+ fostering an open and welcoming community, we pledge to respect all people who
5
+ contribute through reporting issues, posting feature requests, updating
6
+ documentation, submitting pull requests or patches, and other activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, religion, or nationality.
12
+
13
+ Examples of unacceptable behavior by participants include:
14
+
15
+ * The use of sexualized language or imagery
16
+ * Personal attacks
17
+ * Trolling or insulting/derogatory comments
18
+ * Public or private harassment
19
+ * Publishing other's private information, such as physical or electronic
20
+ addresses, without explicit permission
21
+ * Other unethical or unprofessional conduct
22
+
23
+ Project maintainers have the right and responsibility to remove, edit, or
24
+ reject comments, commits, code, wiki edits, issues, and other contributions
25
+ that are not aligned to this Code of Conduct, or to ban temporarily or
26
+ permanently any contributor for other behaviors that they deem inappropriate,
27
+ threatening, offensive, or harmful.
28
+
29
+ By adopting this Code of Conduct, project maintainers commit themselves to
30
+ fairly and consistently applying these principles to every aspect of managing
31
+ this project. Project maintainers who do not follow or enforce the Code of
32
+ Conduct may be permanently removed from the project team.
33
+
34
+ This code of conduct applies both within project spaces and in public spaces
35
+ when an individual is representing the project or its community.
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
+ reported by contacting a project maintainer at andre.leblanc@accelerated.com. All
39
+ complaints will be reviewed and investigated and will result in a response that
40
+ is deemed necessary and appropriate to the circumstances. Maintainers are
41
+ obligated to maintain confidentiality with regard to the reporter of an
42
+ incident.
43
+
44
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
45
+ version 1.3.0, available at
46
+ [http://contributor-covenant.org/version/1/3/0/][version]
47
+
48
+ [homepage]: http://contributor-covenant.org
49
+ [version]: http://contributor-covenant.org/version/1/3/0/
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Andre LeBlanc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # JRuby Druid
2
+
3
+ This project is in active development.
4
+
5
+
6
+ ## License
7
+
8
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
9
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/benchmark.rb ADDED
@@ -0,0 +1,43 @@
1
+ require 'benchmark'
2
+ require 'influxdb'
3
+ require 'jruby-druid'
4
+
5
+ @max = 100000
6
+ # 100000 points | druid: 154.772s | influx: 246.821s
7
+ # 100000 points | druid: 208.095s | influx: 244.993s - Schema Change Detection
8
+
9
+ def run_druid_benchmark
10
+ attempts = 0
11
+ config = { tuning_granularity: :hour, tuning_window: 'PT1M' }
12
+ client = Druid::Client.new(config)
13
+ datasource = "foobar_#{Time.now.utc.min}"
14
+ dimensions = { manufacturer: 'ACME', owner: 'Wile E. Coyote' }
15
+ metrics = { anvils: 1 }
16
+ datapoint = { dimensions: dimensions, metrics: metrics }
17
+
18
+ until attempts >= @max
19
+ attempts += 1
20
+ puts "druid attempt #{attempts}" if attempts % 1000 == 0
21
+ client.write_point(datasource, datapoint)
22
+ end
23
+ end
24
+
25
+ def run_influx_benchmark
26
+ client = InfluxDB::Client.new 'aview_measurements_test'
27
+ name = 'foobar'
28
+ attempts = 0
29
+ data = {
30
+ values: { anvils: 1 },
31
+ tags: { manufacturer: 'ACME' }
32
+ }
33
+
34
+ until attempts >= @max
35
+ attempts += 1
36
+ puts "influx attempt #{attempts}" if attempts % 1000 == 0
37
+ client.write_point(name, data)
38
+ end
39
+ end
40
+
41
+ druid_time = Benchmark.realtime { run_druid_benchmark }
42
+ influx_time = Benchmark.realtime { run_influx_benchmark }
43
+ puts "#{@max} points | druid: #{druid_time}s | influx: #{influx_time}s"
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "jruby-druid"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,31 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'druid/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "jruby-druid"
8
+ spec.version = JrubyDruid::VERSION
9
+ spec.authors = ["Andre LeBlanc"]
10
+ spec.email = ["andre.leblanc88@gmail.com"]
11
+
12
+ spec.summary = 'JRuby adapter for Druid.'
13
+ spec.description = 'JRuby adapter for Druid that allows reads and writes using the Tranquility Core API.'
14
+ spec.homepage = "https://github.com/andremleblanc/jruby-druid"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib", "vendor"]
21
+
22
+ spec.add_dependency "activesupport", "~> 4.0"
23
+ spec.add_dependency "zk", "~> 1.9"
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.11"
26
+ spec.add_development_dependency "faker", "~> 1.6"
27
+ spec.add_development_dependency "rake", "~> 10.0"
28
+ spec.add_development_dependency "rspec", "~> 3.0"
29
+ spec.add_development_dependency "timecop", "~> 0.8"
30
+ spec.add_development_dependency "webmock", "~> 2.1"
31
+ end
@@ -0,0 +1,20 @@
1
+ # Druid
2
+ This module contains all logic associated with Druid.
3
+
4
+ ## Node
5
+ The `Node` classes represent Druid nodes and manage connection with them. They
6
+ also provide the methods that are exposed natively by the Druid REST API.
7
+
8
+ ## Query
9
+ The query module provides a way for the `Druid::Client` to inherit the methods
10
+ from the `Node` classes. Additionally, the `Query` module classes provide some
11
+ additional methods not found natively in the Druid REST API.
12
+
13
+ ## Writer
14
+ The `Writer` classes utilize the Tranquility Core API to communicate with Druid
15
+ nodes and allows writing.
16
+
17
+ ## Errors
18
+ **Client Error:** Indicates a failure within the JRuby-Druid adapter.
19
+ **Connection Error:** Indicates a failed request to Druid.
20
+ **QueryError:** Indicates a malformed query.
@@ -0,0 +1,21 @@
1
+ module Druid
2
+ class Client
3
+ include Druid::Query::Core
4
+ include Druid::Query::Datasource
5
+ include Druid::Query::Task
6
+
7
+ attr_reader :broker,
8
+ :config,
9
+ :coordinator,
10
+ :overlord,
11
+ :writer
12
+
13
+ def initialize(options = {})
14
+ @config = Druid::Configuration.new(options)
15
+ @broker = Druid::Node::Broker.new(config)
16
+ @coordinator = Druid::Node::Coordinator.new(config)
17
+ @overlord = Druid::Node::Overlord.new(config)
18
+ @writer = Druid::Writer::Base.new(config)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,51 @@
1
+ module Druid
2
+ class Configuration
3
+ BROKER_URI = 'http://localhost:8082/'.freeze
4
+ COORDINATOR_URI = 'http://localhost:8081/'.freeze
5
+ CURATOR_URI = 'localhost:2181'.freeze
6
+ DISCOVERY_PATH = '/druid/discovery'.freeze
7
+ INDEX_SERVICE = 'druid/overlord'.freeze
8
+ OVERLORD_URI = 'http://localhost:8090/'.freeze
9
+ ROLLUP_GRANULARITY = :minute
10
+ STRONG_DELETE = false
11
+ TUNING_GRANULARITY = :day
12
+ TUNING_WINDOW = 'PT1H'.freeze
13
+
14
+ attr_reader :broker_uri,
15
+ :coordinator_uri,
16
+ :curator_uri,
17
+ :discovery_path,
18
+ :index_service,
19
+ :overlord_uri,
20
+ :rollup_granularity,
21
+ :strong_delete,
22
+ :tuning_granularity,
23
+ :tuning_window
24
+
25
+
26
+ def initialize(opts = {})
27
+ @broker_uri = opts[:broker_uri] || BROKER_URI
28
+ @coordinator_uri = opts[:coordinator_uri] || COORDINATOR_URI
29
+ @curator_uri = opts[:curator_uri] || CURATOR_URI
30
+ @discovery_path = opts[:discovery_path] || DISCOVERY_PATH
31
+ @index_service = opts[:index_service] || INDEX_SERVICE
32
+ @overlord_uri = opts[:overlord_uri] || OVERLORD_URI
33
+ @rollup_granularity = rollup_granularity_string(opts[:rollup_granularity])
34
+ @strong_delete = opts[:strong_delete] || STRONG_DELETE
35
+ @tuning_granularity = tuning_granularity_string(opts[:tuning_granularity])
36
+ @tuning_window = opts[:tuning_window] || TUNING_WINDOW
37
+ end
38
+
39
+ private
40
+
41
+ def rollup_granularity_string(input)
42
+ output_string = input || ROLLUP_GRANULARITY
43
+ output_string.to_s.upcase.freeze
44
+ end
45
+
46
+ def tuning_granularity_string(input)
47
+ output_string = input || TUNING_GRANULARITY
48
+ output_string.to_s.upcase.freeze
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,64 @@
1
+ # Based on: http://danknox.github.io/2013/01/27/using-rubys-native-nethttp-library/
2
+ require 'net/http'
3
+
4
+ module Druid
5
+ class Connection
6
+ CONTENT_TYPE = 'application/json'.freeze
7
+ VERB_MAP = {
8
+ :get => ::Net::HTTP::Get,
9
+ :post => ::Net::HTTP::Post,
10
+ :put => ::Net::HTTP::Put,
11
+ :delete => ::Net::HTTP::Delete
12
+ }
13
+
14
+ attr_reader :http
15
+
16
+ def initialize(endpoint)
17
+ uri = URI.parse(endpoint)
18
+ @http = ::Net::HTTP.new(uri.host, uri.port)
19
+ end
20
+
21
+ def get(path, params = {})
22
+ request :get, path, params
23
+ end
24
+
25
+ def post(path, params = {})
26
+ request :post, path, params
27
+ end
28
+
29
+ def put(path, params = {})
30
+ request :put, path, params
31
+ end
32
+
33
+ def delete(path, params = {})
34
+ request :delete, path, params
35
+ end
36
+
37
+ private
38
+
39
+ def encode_path_params(path, params)
40
+ encoded = URI.encode_www_form(params)
41
+ [path, encoded].join("?")
42
+ end
43
+
44
+ def request(method, path, params)
45
+ case method
46
+ when :get
47
+ full_path = encode_path_params(path, params)
48
+ request = VERB_MAP[method].new(full_path)
49
+ else
50
+ request = VERB_MAP[method].new(path)
51
+ request.body = params.to_json
52
+ end
53
+
54
+ request.content_type = CONTENT_TYPE
55
+ begin
56
+ response = http.request(request)
57
+ rescue Timeout::Error, *Druid::NET_HTTP_EXCEPTIONS => e
58
+ raise ConnectionError, e.message
59
+ end
60
+
61
+ response
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,21 @@
1
+ module Druid
2
+ class Error < StandardError; end
3
+ class ClientError < Error; end
4
+ class ConnectionError < Error; end
5
+ class QueryError < Error; end
6
+
7
+ # Adopted from: https://github.com/lostisland/faraday/blob/master/lib/faraday/adapter/net_http.rb
8
+ NET_HTTP_EXCEPTIONS = [
9
+ EOFError,
10
+ Errno::ECONNABORTED,
11
+ Errno::ECONNREFUSED,
12
+ Errno::ECONNRESET,
13
+ Errno::EHOSTUNREACH,
14
+ Errno::EINVAL,
15
+ Errno::ENETUNREACH,
16
+ Net::HTTPBadResponse,
17
+ Net::HTTPHeaderSyntaxError,
18
+ Net::ProtocolError,
19
+ SocketError
20
+ ]
21
+ end
@@ -0,0 +1 @@
1
+ #TODO: Setup Logging and Do Something Useful
@@ -0,0 +1,18 @@
1
+ module Druid
2
+ module Node
3
+ class Broker
4
+ QUERY_PATH = '/druid/v2'.freeze
5
+
6
+ attr_reader :connection
7
+ def initialize(config)
8
+ @connection = Druid::Connection.new(config.broker_uri)
9
+ end
10
+
11
+ def query(query_object)
12
+ response = connection.post(QUERY_PATH, query_object)
13
+ raise QueryError unless response.code.to_i == 200
14
+ JSON.parse(response.body)
15
+ end
16
+ end
17
+ end
18
+ end