libhoney 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b05d90c2ad4d5632cdcdd49023ca0d9a6d7bcbd
4
- data.tar.gz: 1d79285c213de5818ed15c25333832447370bfce
3
+ metadata.gz: 709e34b6d6a1f0c9c1cd4e14898d4921405fa924
4
+ data.tar.gz: c8f47ea904509f3b4ba25e54eaeb3bcf530415f3
5
5
  SHA512:
6
- metadata.gz: c06d729791156ddfd27e3b85ddc2503ddc2e9c66e04d6bee0407e3c070a9ca63b933db8cea8c0c9a100f336cc384dd25d77cf72973f8288bb6c03ce8793b3aee
7
- data.tar.gz: bb89728a3082133c921e6971d7e13021917542117d092a5320644154ba05c28e0496966362759dcbfc1261ac54101fe255b00f8095ef9a5be3ecdbea146ab703
6
+ metadata.gz: 676446ff6c3daaf0520957b091939e5ab4c8bb174653fa00f4b22f7147795b0cd25f99639672485a68c6356998ac89f41f7864298062dc23cbe926c4a14c0e68
7
+ data.tar.gz: 789b3e21e993a2fa70750f6c7eb056af092068069fbd740ce0e0f466298a41bcd18de9cb390cff5f1b0b656f819efd71db1a6bb6a15ff32d6129b977d194b638
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # libhoney [![Build Status](https://travis-ci.org/honeycombio/libhoney-rb.svg?branch=master)](https://travis-ci.org/honeycombio/libhoney-rb) [![Gem Version](https://badge.fury.io/rb/libhoney.svg)](https://badge.fury.io/rb/libhoney)
2
2
 
3
- Ruby gem for sending events to [Honeycomb](https://honeycomb.io). (See here for more information about [using Honeycomb](https://honeycomb.io/intro/) and [its libraries](https://honeycomb.io/docs/send-data/sdks).)
3
+ Ruby gem for sending events to [Honeycomb](https://honeycomb.io). (For more information, see the [documentation](https://honeycomb.io/docs/) and [Ruby SDK guide](https://honeycomb.io/docs/connect/ruby).)
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,12 +10,18 @@ To install the stable release:
10
10
  gem install libhoney
11
11
  ```
12
12
 
13
- If you're using bundler, you can also reference the git repo and stay on the bleeding age by putting this in your `Gemfile`:
13
+ or add `libhoney` to your Gemfile:
14
14
 
15
15
  ```
16
- gem 'libhoney', :git => 'http://github.com/honeycombio/libhoney-rb.git'
16
+ gem 'libhoney'
17
+ # or, to follow the bleeding edge:
18
+ #gem 'libhoney', git: 'https://github.com/honeycombio/libhoney-rb.git'
17
19
  ```
18
20
 
21
+ ## Documentation
22
+
23
+ An API reference is available at http://www.rubydoc.info/gems/libhoney
24
+
19
25
  ## Example Usage
20
26
 
21
27
  Honeycomb can calculate all sorts of statistics, so send the values you care about and let us crunch the averages, percentiles, lower/upper bounds, cardinality -- whatever you want -- for you.
@@ -56,5 +62,3 @@ version, run
56
62
  bump patch --tag # Or bump minor --tag, etc.
57
63
  git push --follow-tags
58
64
  ```
59
-
60
- Docs are generated via `rdoc` and hosted via the `gh-pages` branch of this repo.
@@ -1,7 +1,6 @@
1
1
  require 'thread'
2
2
  require 'time'
3
3
  require 'json'
4
- require 'http'
5
4
 
6
5
  # define a few additions that proxy access through Client's builder. makes Client much tighter.
7
6
  class Class
@@ -50,7 +49,7 @@ module Libhoney
50
49
  # Instantiates libhoney and prepares it to send events to Honeycomb.
51
50
  #
52
51
  # @param writekey [String] the write key from your honeycomb team
53
- # @param dataset [String] the dataset you want
52
+ # @param dataset [String] the dataset you want
54
53
  # @param sample_rate [Fixnum] cause libhoney to send 1 out of sampleRate events. overrides the libhoney instance's value.
55
54
  # @param api_host [String] the base url to send events to
56
55
  # @param block_on_send [Boolean] if more than pending_work_capacity events are written, block sending further events
@@ -69,7 +68,7 @@ module Libhoney
69
68
  raise Exception.new('libhoney: max_concurrent_batches must be greater than 0') if max_concurrent_batches < 1
70
69
  raise Exception.new('libhoney: sample rate must be greater than 0') if sample_rate < 1
71
70
 
72
- raise Exception.new("libhoney: Ruby versions < 2.2 are not supported") if !Gem::Dependency.new("ruby", "~> 2.2").match?("ruby", RUBY_VERSION)
71
+ raise Exception.new("libhoney: Ruby versions < 2.2 are not supported") if !Gem::Dependency.new("ruby", "~> 2.2").match?("ruby", RUBY_VERSION)
73
72
  @builder = Builder.new(self, nil)
74
73
  @builder.writekey = writekey
75
74
  @builder.dataset = dataset
@@ -1,4 +1,6 @@
1
1
  require 'libhoney/response'
2
+ require 'faraday'
3
+ require 'faraday_middleware'
2
4
 
3
5
  module Libhoney
4
6
  # @api private
@@ -24,7 +26,7 @@ module Libhoney
24
26
  @threads = []
25
27
  @lock = Mutex.new
26
28
  end
27
-
29
+
28
30
  def add(event)
29
31
  begin
30
32
  @send_queue.enq(event, !@block_on_send)
@@ -47,12 +49,26 @@ module Libhoney
47
49
  break if e == nil
48
50
 
49
51
  before = Time.now
50
- resp = HTTP.headers('User-Agent' => "libhoney-rb/#{VERSION}",
51
- 'Content-Type' => 'application/json',
52
- 'X-Honeycomb-Team' => e.writekey,
53
- 'X-Honeycomb-SampleRate' => e.sample_rate,
54
- 'X-Event-Time' => e.timestamp.iso8601)
55
- .post(URI.join(e.api_host, '/1/events/', e.dataset), :json => e.data)
52
+
53
+ conn = Faraday.new(:url => e.api_host) do |faraday|
54
+ faraday.request :json
55
+ faraday.adapter :net_http_persistent
56
+ end
57
+
58
+ resp = conn.post do |req|
59
+ req.url '/1/events/' + e.dataset
60
+ req.headers = {
61
+ 'User-Agent' => "libhoney-rb/#{VERSION}",
62
+ 'Content-Type' => 'application/json',
63
+ 'X-Honeycomb-Team' => e.writekey,
64
+ 'X-Honeycomb-SampleRate' => e.sample_rate.to_s,
65
+ 'X-Event-Time' => e.timestamp.iso8601
66
+ }
67
+ req.body = e.data
68
+ end
69
+
70
+ # TODO handle faraday errors
71
+
56
72
  after = Time.now
57
73
 
58
74
  response = Response.new(:duration => after - before,
@@ -1,3 +1,3 @@
1
1
  module Libhoney
2
- VERSION = "1.0.4"
2
+ VERSION = "1.1.0"
3
3
  end
data/libhoney.gemspec CHANGED
@@ -29,5 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency "minitest", "~> 5.0"
30
30
  spec.add_development_dependency "yardstick", "~> 0.9"
31
31
  spec.add_development_dependency "bump", "~> 0.5"
32
- spec.add_dependency "http", "~> 2.0"
32
+ spec.add_dependency "faraday", "~> 0.12"
33
+ spec.add_dependency "faraday_middleware", "~> 0.12"
34
+ spec.add_dependency "net-http-persistent", "~> 3.0"
33
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libhoney
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Honeycomb.io Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-13 00:00:00.000000000 Z
11
+ date: 2017-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -95,19 +95,47 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.5'
97
97
  - !ruby/object:Gem::Dependency
98
- name: http
98
+ name: faraday
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '2.0'
103
+ version: '0.12'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '2.0'
110
+ version: '0.12'
111
+ - !ruby/object:Gem::Dependency
112
+ name: faraday_middleware
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.12'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.12'
125
+ - !ruby/object:Gem::Dependency
126
+ name: net-http-persistent
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.0'
111
139
  description: Ruby gem for sending data to Honeycomb
112
140
  email: support@honeycomb.io
113
141
  executables: []