telemetry-client 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 87490cc85081082f37cf098f14ea2b5c43c2051e
4
+ data.tar.gz: 80040e22e2b779c6702a4a84e45fe9984cc08ad2
5
+ SHA512:
6
+ metadata.gz: 04eab6212acbfd5f56b349ed8911470d18b6fcc0130329968434c0a2646f863255342f0c03efbfed6ed8c09f4532d9bafc2b0d4ebbce1bb6e71561d1d02e887f
7
+ data.tar.gz: b645bd5c48e15eb6394f073fbf4feb21a08a3a55e3a53e21963428d6413bcfc69dff3bafc92dfc3e6645d960a6ca6c8e8423460f95def245d3dbae0794c5cb8c
@@ -0,0 +1,33 @@
1
+ require 'json'
2
+
3
+ module Telemetry
4
+
5
+ class Signal
6
+
7
+ @version
8
+ @timestamp
9
+ @type
10
+ @class_name
11
+
12
+ attr_reader :version, :timestamp, :type, :class_name
13
+ attr_writer :version, :timestamp
14
+
15
+ def attribute_map
16
+ {
17
+ :'version' => @version,
18
+ :'timestamp' => @timestamp,
19
+ :'type' => @type,
20
+ :'@class' => @class_name,
21
+ }
22
+ end
23
+
24
+ def initialize
25
+ @version = '1.0'
26
+ @timestamp = ((Time.now.to_f) *1000.0).to_i
27
+ end
28
+
29
+ def to_json
30
+ return self.attribute_map.to_json
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,51 @@
1
+ require 'telemetry/signal'
2
+
3
+ module Telemetry
4
+ module Tax
5
+
6
+ class ConnectorIntegrationSignal < Signal
7
+
8
+ @zuora_trace_id
9
+ @total_duration
10
+ @tax_operation_type
11
+ @document_item_count_int
12
+ @document_number
13
+ @vendor_request_start_timestamp
14
+ @vendor_request_duration
15
+ @vendor_error_message
16
+ @vendor_http_status
17
+ @vendor_domain
18
+ @vendor_name
19
+ @status
20
+
21
+ attr_accessor :zuora_trace_id, :total_duration, :tax_operation_type,
22
+ :document_item_count_int, :document_number, :vendor_request_start_timestamp,
23
+ :vendor_request_duration, :vendor_error_message, :vendor_http_status,
24
+ :vendor_domain, :status, :vendor_name
25
+
26
+ def attribute_map
27
+ attributes = {
28
+ :'zuora_trace_id' => @zuora_trace_id,
29
+ :'total_duration' => @total_duration,
30
+ :'tax_operation_type' => @tax_operation_type,
31
+ :'document_item_count_int' => @document_item_count_int,
32
+ :'document_number' => @document_number,
33
+ :'vendor_request_start_timestamp' => @vendor_request_start_timestamp,
34
+ :'vendor_request_duration' => @vendor_request_duration,
35
+ :'vendor_error_message' => @vendor_error_message,
36
+ :'vendor_http_status' => @vendor_http_status,
37
+ :'vendor_domain' => @vendor_domain,
38
+ :'status' => @status,
39
+ :'vendor_name' => @vendor_name,
40
+ }
41
+ attributes.merge(super)
42
+ end
43
+
44
+ def initialize
45
+ super
46
+ @type = 'TaxConnectorToEngineIntegration'
47
+ @class_name = 'com.zuora.telemetry.api.taxintegration.TaxConnectorToEngineIntegration'
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,13 @@
1
+ require 'telemetry/telemetry_event'
2
+
3
+ module Telemetry
4
+ module Tax
5
+ class TelemetryEvent < TelemetryEvent
6
+
7
+ def initialize(tenant_id, entity_id, signal_body)
8
+ super
9
+ @service = 'TaxConnector'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,42 @@
1
+ require 'securerandom'
2
+
3
+ module Telemetry
4
+
5
+ class TelemetryEvent
6
+
7
+ $type = 'telemetry'
8
+ @id
9
+ @version
10
+ @service
11
+ @tenant_id
12
+ @entity_id
13
+ @signal_body
14
+
15
+ attr_accessor :id, :version, :service, :tenant_id, :entity_id, :signal_body
16
+
17
+ def initialize(tenant_id, entity_id, signal_body)
18
+ @id = SecureRandom.uuid
19
+ @version = '1.0'
20
+ @tenant_id = tenant_id
21
+ @entity_id = entity_id
22
+ @signal_body = signal_body
23
+ end
24
+
25
+ def attribute_map
26
+ {
27
+ :'id' => @id,
28
+ :'version' => @version,
29
+ :'type' => $type,
30
+ :'service' => @service,
31
+ :'signal_type' => @signal_body.type,
32
+ :'tenant_id' => @tenant_id,
33
+ :'entity_id' => @entity_id,
34
+ :'signal_body' => @signal_body.attribute_map,
35
+ }
36
+ end
37
+
38
+ def to_json
39
+ return self.attribute_map.to_json
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,38 @@
1
+ =begin
2
+ Telemetry Client ruby version
3
+ =end
4
+ require 'json'
5
+ require 'singleton'
6
+
7
+ module TelemetryClient
8
+
9
+ ENABLE_TELEMETRY = 'ENABLE_TELEMETRY'
10
+ telemetry_enabled = ENV[ENABLE_TELEMETRY] and ((ENV[ENABLE_TELEMETRY] == "true") == 0)
11
+
12
+ def self.enable_telemetry
13
+ ENV[ENABLE_TELEMETRY] = 'true'
14
+ $telemetry_enabled = true
15
+ end
16
+
17
+ def self.disable_telemetry
18
+ ENV[ENABLE_TELEMETRY] = 'false'
19
+ $telemetry_enabled = false
20
+ end
21
+
22
+ def self.is_telemetry_enabled
23
+ return $telemetry_enabled
24
+ end
25
+
26
+ # singleton
27
+ class TelemetryLogClient
28
+ include Singleton
29
+
30
+ def send_event(event)
31
+ if TelemetryClient::is_telemetry_enabled then
32
+ puts(event.to_json)
33
+ else
34
+ puts("telemetry is not enabled")
35
+ end
36
+ end
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: telemetry-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jianfeng li
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-09-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.1.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '2.1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.1.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: test-unit
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ description: telemetry client ruby client, which used to send signal to log
48
+ email: jianfeng.li@zuora.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/telemetry/signal.rb
54
+ - lib/telemetry/tax/connector_integration.rb
55
+ - lib/telemetry/tax/tax_telemetry_event.rb
56
+ - lib/telemetry/telemetry_event.rb
57
+ - lib/telemetry_client.rb
58
+ homepage: https://git.zias.io/telemetry/telemetry-client-ruby
59
+ licenses:
60
+ - Zuora
61
+ metadata: {}
62
+ post_install_message:
63
+ rdoc_options: []
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ requirements: []
77
+ rubyforge_project:
78
+ rubygems_version: 2.5.2.3
79
+ signing_key:
80
+ specification_version: 4
81
+ summary: this is telemetry client!
82
+ test_files: []