telemetria 0.1.0 → 0.1.1

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: c402bedb2b930fa6a836d6b255ecc1add53710d4
4
- data.tar.gz: b9b29b763fda4af1e38a9ea7bfbc3654be4b9e0c
3
+ metadata.gz: ac420037f6c46963db3637b85e50639956b68d2b
4
+ data.tar.gz: 7810ed3cae0088edf592591ce205645603af3ebb
5
5
  SHA512:
6
- metadata.gz: dc86d5b8ddea481c9e05ab32522b559a601c2b9e1835a5d09d515d96c9e08d2c3a876272498e416bd8a63b9cd96ad5f423f6966212c79e8fc3f08643af5bf8a3
7
- data.tar.gz: 2efe660376ab717ff5380994ed1934846fa6fdffbf7b7901b1d83674ba5e8102868ebf2f3306831eb923817890a5e17176853c8f2d1627b4b9a81da60686ed62
6
+ metadata.gz: 8a788994f95f9480d65d0217772b3e350bece8032e6c417674dd9bb459db7ebe728960e09cdb7b48c33aafdd76a5c5172d472c37ffb81c817c38a3ad0434face
7
+ data.tar.gz: 326e37a34adeecd6fa7b593d8fca9e4d0f21e71780a187f82045ce8e989fe1826ebdd9406c0dd13ce4370467b614274f84e54fab265c2bb5c69eac82db2b7579
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --format documentation
2
+ --order random
2
3
  --color
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Telemetria
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/telemetria`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ [![Build Status](https://travis-ci.org/gabrielpedepera/telemetria.svg?branch=master)](https://travis-ci.org/gabrielpedepera/telemetria)
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ Ruby agent to track and send data to Telemetria
6
6
 
7
7
  ## Installation
8
8
 
@@ -22,7 +22,52 @@ Or install it yourself as:
22
22
 
23
23
  ## Usage
24
24
 
25
- TODO: Write usage instructions here
25
+ ```ruby
26
+ adapter = Telemetria::InfluxDB.new(host: 'localhost', port: '8086', database: 'my_data')
27
+ telemetria = Telemetria::Client.new(adapter)
28
+
29
+ telemetria.create
30
+ telemetria.delete
31
+ ```
32
+
33
+ or
34
+
35
+ ```ruby
36
+ Telemetria.configure do |config|
37
+ config.adapter = InfluxDB
38
+ config.database = 'database'
39
+ config.host = '127.0.0.1'
40
+ config.port = '8087'
41
+ end
42
+
43
+ telemetria = Telemetria::Client.new
44
+
45
+ telemetria.create
46
+ telemetria.delete
47
+ ```
48
+
49
+ ### write_data
50
+
51
+ ```ruby
52
+ data = {
53
+ series: 'simple_message',
54
+ values: {
55
+ identifier: 'da807d4622a8e37d6fdd1a62',
56
+ url: 'http://google.com.br',
57
+ method: 'GET',
58
+ seller_id: '131231',
59
+ source: '11312',
60
+ queue: '31'
61
+ },
62
+ tags: {
63
+ queue: 'teste',
64
+ seller_id: 3123
65
+ }
66
+ }
67
+
68
+ telemetria.write_data(data)
69
+ ```
70
+
26
71
 
27
72
  ## Development
28
73
 
@@ -32,5 +77,5 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
32
77
 
33
78
  ## Contributing
34
79
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/telemetria.
80
+ Bug reports and pull requests are welcome on GitHub at https://github.com/gabrielpedepera/telemetria.
36
81
 
@@ -1,5 +1,13 @@
1
- require "telemetria/version"
1
+ require 'telemetria/version'
2
+ require 'telemetria/client'
3
+ require 'telemetria/config'
4
+ require 'telemetria/adapter'
5
+
6
+ require 'telemetria/adapters/influxdb'
7
+
8
+ require 'log-me'
2
9
 
3
10
  module Telemetria
4
- # Your code goes here...
11
+ extend Config
12
+ extend LogMe
5
13
  end
@@ -0,0 +1,23 @@
1
+ module Telemetria
2
+ class Adapter
3
+ attr_accessor :client, :database, :host, :port
4
+
5
+ def initialize(attrs = {})
6
+ self.database = attrs[:database]
7
+ self.host = attrs[:host]
8
+ self.port = attrs[:port]
9
+ end
10
+
11
+ def write_data
12
+ raise NotImplementedError
13
+ end
14
+
15
+ def create
16
+ raise NotImplementedError
17
+ end
18
+
19
+ def delete
20
+ raise NotImplementedError
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,26 @@
1
+ require 'influxdb'
2
+
3
+ module Telemetria
4
+ class InfluxDB < Adapter
5
+ def initialize(args = {})
6
+ super(
7
+ database: args[:database],
8
+ host: args[:host],
9
+ port: args[:port]
10
+ )
11
+ self.client ||= ::InfluxDB::Client.new(database, args)
12
+ end
13
+
14
+ def create
15
+ client.create_database(database)
16
+ end
17
+
18
+ def delete
19
+ client.delete_database(database)
20
+ end
21
+
22
+ def write_data(points = {})
23
+ client.write_points(points)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,22 @@
1
+ module Telemetria
2
+ class Client
3
+
4
+ attr_accessor :adapter
5
+
6
+ def initialize(adapter = Telemetria.default_adapter)
7
+ self.adapter = adapter
8
+ end
9
+
10
+ def write_data(points = {})
11
+ adapter.write_data(points)
12
+ end
13
+
14
+ def create
15
+ adapter.create
16
+ end
17
+
18
+ def delete
19
+ adapter.delete
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,28 @@
1
+ module Telemetria
2
+ module Config
3
+ attr_accessor :adapter
4
+ attr_writer :database
5
+ attr_writer :host
6
+ attr_writer :port
7
+
8
+ def adapter
9
+ @adapter ||= InfluxDB
10
+ end
11
+
12
+ def database
13
+ @database ||= 'telemetria'
14
+ end
15
+
16
+ def host
17
+ @host ||= 'localhost'
18
+ end
19
+
20
+ def port
21
+ @port ||= '8086'
22
+ end
23
+
24
+ def default_adapter
25
+ Telemetria::InfluxDB.new(host: host, port: port, database: database)
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module Telemetria
2
- VERSION = "0.1.0"
2
+ VERSION = '0.1.1'.freeze
3
3
  end
@@ -19,7 +19,12 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ['lib']
21
21
 
22
+ spec.add_dependency 'influxdb'
23
+ spec.add_dependency 'log-me'
24
+
22
25
  spec.add_development_dependency 'bundler', '~> 1.14'
23
26
  spec.add_development_dependency 'rake', '~> 10.0'
24
27
  spec.add_development_dependency 'rspec', '~> 3.0'
28
+ spec.add_development_dependency 'webmock'
29
+ spec.add_development_dependency 'pry'
25
30
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telemetria
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Pereira
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-29 00:00:00.000000000 Z
11
+ date: 2017-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: influxdb
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: log-me
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: bundler
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +80,34 @@ dependencies:
52
80
  - - "~>"
53
81
  - !ruby/object:Gem::Version
54
82
  version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
55
111
  description: Ruby Agent to collect and send data for Telemetria
56
112
  email:
57
113
  - gabrielpedepera@gmail.com
@@ -68,6 +124,10 @@ files:
68
124
  - bin/console
69
125
  - bin/setup
70
126
  - lib/telemetria.rb
127
+ - lib/telemetria/adapter.rb
128
+ - lib/telemetria/adapters/influxdb.rb
129
+ - lib/telemetria/client.rb
130
+ - lib/telemetria/config.rb
71
131
  - lib/telemetria/version.rb
72
132
  - telemetria.gemspec
73
133
  homepage: