callcounter 0.1.2 → 0.1.4
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 +4 -4
- data/LICENSE +1 -1
- data/README.md +9 -13
- data/lib/callcounter/capturer.rb +8 -4
- data/lib/callcounter/configuration.rb +3 -2
- data/lib/callcounter/railtie.rb +1 -1
- data/lib/callcounter/version.rb +1 -1
- data/lib/callcounter.rb +1 -1
- metadata +10 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99d0cc0bcdf0500c5203169c4f24174faa1e34bc0d6b51b9caabac4c798916bb
|
4
|
+
data.tar.gz: 90df76c181d3ecbb4520fe277969a1abadaefab1c7f69adc7fe0dbb4e92592c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a41c1476531b297327569a83c1dbbe176a96731671351ac98d23a7755aa0c4b41c0351163eddc88ac20540e7c40593b3529fdd9d3b22230b06e0e0d1ff340481
|
7
|
+
data.tar.gz: 581cae38256f5ec226ddb541cc90463b99f22f96bfea2d14f694050bf34da2321c6227de2f5b5d1e896faddaa5954267d4bd564d7df502b3da1fd53a2ab1c39c
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,12 +1,9 @@
|
|
1
|
-
[](https://builds.sr.ht/~webindie/callcounter-gem?)
|
2
|
-
|
3
1
|
# Callcounter Ruby integration gem
|
4
2
|
|
5
3
|
This gem can be used to gather API request & response data from Rack based applications and send it to Callcounter.
|
6
4
|
|
7
|
-
Callcounter is an API analytics platform that collect information about requests (calls) to your API using so-called
|
8
|
-
|
9
|
-
can send the data to Callcounter using an API, which is described at: https://callcounter.eu/pages/api
|
5
|
+
Callcounter is an API analytics platform that collect information about requests (calls) to your API using so-called integrations. Integrations come in the form of a Ruby gem, a Nuget package, a Pip module, etc. The integrations
|
6
|
+
can send the data to Callcounter using an API, which is described at: https://callcounter.io/docs/api
|
10
7
|
|
11
8
|
After collection data, the web interface can then be used to view all kinds of metrics, giving you insight in the
|
12
9
|
(mis)usage of your API.
|
@@ -33,12 +30,11 @@ use Callcounter::Capturer
|
|
33
30
|
## Configure what to capture
|
34
31
|
|
35
32
|
Configure callcounter with the following code, this can be placed in a Rails initializer when using Ruby on Rails,
|
36
|
-
for example `config/initializers/callcounter.rb`, or somewhere in your entry point file when using Sinatra or other
|
37
|
-
Rack based frameworks:
|
33
|
+
for example `config/initializers/callcounter.rb`, or somewhere in your entry point file when using Sinatra or other Rack based frameworks:
|
38
34
|
|
39
35
|
```ruby
|
40
36
|
Callcounter.configure do |config|
|
41
|
-
config.
|
37
|
+
config.app_token = '' # TODO: fill with your unique app token
|
42
38
|
end
|
43
39
|
```
|
44
40
|
|
@@ -47,11 +43,11 @@ After deploying you should start seeing data in Callcounter. Note that this migh
|
|
47
43
|
only sends data every few requests or every few minutes.
|
48
44
|
|
49
45
|
If you API doesn't match with the default matching rules, you can add a lambda that will be called for every request
|
50
|
-
to determine whether it was a request to your API. For example, you can
|
46
|
+
to determine whether it was a request to your API. For example, you can customise the default lambda shown below:
|
51
47
|
|
52
48
|
```ruby
|
53
49
|
Callcounter.configure do |config|
|
54
|
-
config.
|
50
|
+
config.app_token = '' # TODO: fill with your unique app token
|
55
51
|
config.track = lambda { |request|
|
56
52
|
request.hostname.start_with?('api') || request.path.start_with?('/api')
|
57
53
|
}
|
@@ -60,8 +56,8 @@ end
|
|
60
56
|
|
61
57
|
## Bug reporting
|
62
58
|
|
63
|
-
Bugs can be reported through the
|
64
|
-
If you don't want to sign up for an account, you can also contact us through https://callcounter.
|
59
|
+
Bugs can be reported through the Github issues.
|
60
|
+
If you don't want to sign up for an account, you can also contact us through https://callcounter.io/contact
|
65
61
|
|
66
62
|
## Releasing
|
67
63
|
|
@@ -76,5 +72,5 @@ If you don't want to sign up for an account, you can also contact us through htt
|
|
76
72
|
|
77
73
|
## About Callcounter
|
78
74
|
|
79
|
-
[Callcounter](https://callcounter.
|
75
|
+
[Callcounter](https://callcounter.io) is a service, developed and maintained by Lint Ltd, that
|
80
76
|
helps API providers with debugging and optimising the usage of their APIs.
|
data/lib/callcounter/capturer.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'net/http'
|
4
4
|
|
5
5
|
module Callcounter
|
6
|
-
# class that captures the rack requests and sends them to
|
6
|
+
# class that captures the rack requests and sends them to Callcounter
|
7
7
|
class Capturer
|
8
8
|
attr_accessor :buffer
|
9
9
|
|
@@ -17,7 +17,7 @@ module Callcounter
|
|
17
17
|
result = @app.call(env)
|
18
18
|
finish = Time.now
|
19
19
|
|
20
|
-
return result if
|
20
|
+
return result if app_token.nil?
|
21
21
|
|
22
22
|
threading do
|
23
23
|
background_work(start, finish, env, result)
|
@@ -38,6 +38,10 @@ module Callcounter
|
|
38
38
|
Callcounter.configuration.project_token
|
39
39
|
end
|
40
40
|
|
41
|
+
def app_token
|
42
|
+
Callcounter.configuration.app_token || project_token
|
43
|
+
end
|
44
|
+
|
41
45
|
def async?
|
42
46
|
Callcounter.configuration.async
|
43
47
|
end
|
@@ -51,12 +55,12 @@ module Callcounter
|
|
51
55
|
end
|
52
56
|
|
53
57
|
def send_buffer
|
54
|
-
http = Net::HTTP.new('api.callcounter.
|
58
|
+
http = Net::HTTP.new('api.callcounter.io', 443)
|
55
59
|
http.use_ssl = true
|
56
60
|
track = Net::HTTP::Post.new('/api/v1/events/batch')
|
57
61
|
track['content-type'] = 'application/json'
|
58
62
|
track['user-agent'] = "callcounter-gem (#{Callcounter::VERSION})"
|
59
|
-
track.body = { batch: { project_token:
|
63
|
+
track.body = { batch: { project_token: app_token, events: @buffer } }.to_json
|
60
64
|
|
61
65
|
http.request(track)
|
62
66
|
|
@@ -1,13 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Callcounter
|
4
|
-
# configuration class for
|
4
|
+
# configuration class for Callcounter middleware
|
5
5
|
class Configuration
|
6
|
-
attr_accessor :debug, :project_token, :track, :async
|
6
|
+
attr_accessor :debug, :project_token, :track, :async, :app_token
|
7
7
|
|
8
8
|
def initialize
|
9
9
|
@debug = false
|
10
10
|
@project_token = nil
|
11
|
+
@app_token = nil
|
11
12
|
@track = lambda { |request|
|
12
13
|
return request.hostname.start_with?('api') || request.path.start_with?('/api')
|
13
14
|
}
|
data/lib/callcounter/railtie.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Callcounter
|
4
|
-
# enable the
|
4
|
+
# enable the Callcounter rack middleware automatically in rails
|
5
5
|
class Railtie < Rails::Railtie
|
6
6
|
initializer 'callcounter.middleware' do |app|
|
7
7
|
app.middleware.use(Callcounter::Capturer)
|
data/lib/callcounter/version.rb
CHANGED
data/lib/callcounter.rb
CHANGED
@@ -5,7 +5,7 @@ require 'callcounter/configuration'
|
|
5
5
|
require 'callcounter/railtie' if defined?(Rails::Railtie)
|
6
6
|
require 'callcounter/version'
|
7
7
|
|
8
|
-
# rack middleware that captures incoming api requests and sends them to
|
8
|
+
# rack middleware that captures incoming api requests and sends them to Callcounter
|
9
9
|
module Callcounter
|
10
10
|
class << self
|
11
11
|
attr_writer :configuration
|
metadata
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: callcounter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- George Buckley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Callcounter is a service that helps API providers with debugging and
|
14
14
|
optimising the usage of their APIs.
|
15
|
-
email:
|
15
|
+
email:
|
16
|
+
- george@lint.com
|
16
17
|
executables: []
|
17
18
|
extensions: []
|
18
19
|
extra_rdoc_files: []
|
@@ -24,11 +25,9 @@ files:
|
|
24
25
|
- lib/callcounter/configuration.rb
|
25
26
|
- lib/callcounter/railtie.rb
|
26
27
|
- lib/callcounter/version.rb
|
27
|
-
homepage: https://callcounter
|
28
|
-
licenses:
|
29
|
-
|
30
|
-
metadata:
|
31
|
-
source_code_uri: https://git.sr.ht/~webindie/callcounter-gem
|
28
|
+
homepage: https://github.com/Callcounter/callcounter-ruby
|
29
|
+
licenses: []
|
30
|
+
metadata: {}
|
32
31
|
post_install_message:
|
33
32
|
rdoc_options: []
|
34
33
|
require_paths:
|
@@ -37,14 +36,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
38
37
|
- - ">="
|
39
38
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
39
|
+
version: '0'
|
41
40
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
42
41
|
requirements:
|
43
42
|
- - ">="
|
44
43
|
- !ruby/object:Gem::Version
|
45
44
|
version: '0'
|
46
45
|
requirements: []
|
47
|
-
rubygems_version: 3.2.
|
46
|
+
rubygems_version: 3.2.32
|
48
47
|
signing_key:
|
49
48
|
specification_version: 4
|
50
49
|
summary: Callcounter integration gem to gather API request statistics
|