libhoney 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 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: []