epsagon 0.0.1 → 0.0.6

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
  SHA256:
3
- metadata.gz: 87955008fa3a72eef9788a33b27ea5b1b803f05f5b4576980cbfcde82f418b8f
4
- data.tar.gz: 8f55c3de860ad268786aac29fc6d132d60aaf3314858de5b7a396700a8e6b57c
3
+ metadata.gz: a4bed616ed52fa572f7574732c18cdc87a34a6a223f969e3a0bdf95b7a132e77
4
+ data.tar.gz: b502868b35380f9187fbf2a452036060ac61ccabfae509ba4cfb66ed221a7365
5
5
  SHA512:
6
- metadata.gz: c75902bf40adc989654cafad809e2cfac0a9dbba506981a3f52be29868fad8ba77691580bbae616fe793a3fb47e0ef4070d822cb659ae186ba1af86016ecd0a8
7
- data.tar.gz: 7eaf1f961154c97d106bf0ec95d763bbdb049783bbcafb08abe2ff9f685a4ab17f77282b483e42d2a06bf07ef588ab9d346b66a074355141a1f13f5a6f104190
6
+ metadata.gz: 0e4ab80eab789716260eea7824800b1e6c0f193114e72b45da826f36bdefedb59cc4e01147dbe4e8bb5824d10e2c525ed085d6bf256387746967009b13e7425a
7
+ data.tar.gz: cf2f072e8b3688c6988664304b06cad165fe43314aa862dae5ea4ef0ccb0a303f9b48dff56ff2913a5e86377f0186c23b13d7966bf3239c609606ab669e3fee3
data/lib/epsagon.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  require 'rubygems'
4
4
  require 'net/http'
5
5
  require 'bundler/setup'
6
- require 'opentelemetry'
6
+ require 'opentelemetry/sdk'
7
7
 
8
8
  require_relative 'instrumentation/sinatra'
9
9
  require_relative 'instrumentation/net_http'
@@ -14,52 +14,54 @@ Bundler.require
14
14
 
15
15
  # Epsagon tracing main entry point
16
16
  module Epsagon
17
- module_function
18
-
19
- def init(**args)
20
- defaults = {
17
+ @@epsagon_config = {
21
18
  metadata_only: ENV['EPSAGON_METADATA']&.to_s&.downcase != 'false',
22
19
  debug: ENV['EPSAGON_DEBUG']&.to_s&.downcase == 'true',
23
20
  token: ENV['EPSAGON_TOKEN'],
24
21
  app_name: ENV['EPSAGON_APP_NAME'],
25
22
  backend: ENV['EPSAGON_BACKEND'] || 'localhost:55681/v1/trace'
26
23
  }
27
- @@epsagon_config = defaults.merge(args)
28
- end
29
24
 
30
- def metadata_only?
31
- ENV['EPSAGON_METADATA']&.to_s&.downcase != 'false'
32
- end
25
+ module_function
33
26
 
34
- def debug?
35
- ENV['EPSAGON_DEBUG']&.to_s&.downcase == 'true'
27
+ def init(**args)
28
+ @@epsagon_config.merge!(args)
29
+ OpenTelemetry::SDK.configure
36
30
  end
37
31
 
38
32
  # config opentelemetry with epsaon extensions:
39
33
 
40
34
  def epsagon_confs(configurator)
41
35
  configurator.resource = OpenTelemetry::SDK::Resources::Resource.telemetry_sdk.merge(
42
- OpenTelemetry::SDK::Resources::Resource.create({ 'application' => ENV['EPSAGON_APP_NAME'] })
36
+ OpenTelemetry::SDK::Resources::Resource.create({ 'application' => @@epsagon_config[:app_name] })
43
37
  )
44
38
  configurator.use 'EpsagonSinatraInstrumentation', { epsagon: @@epsagon_config }
45
39
  configurator.use 'EpsagonNetHTTPInstrumentation', { epsagon: @@epsagon_config }
46
40
  configurator.use 'EpsagonFaradayInstrumentation', { epsagon: @@epsagon_config }
47
- # if ENV['EPSAGON_BACKEND']
48
- configurator.add_span_processor OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
49
- exporter: OpenTelemetry::Exporter::OTLP::Exporter.new(headers: {
50
- 'x-epsagon-token' => @@epsagon_config[:token]
51
- },
52
- endpoint: @@epsagon_config[:backend],
53
- insecure: @@epsagon_config[:insecure] || false)
54
- )
55
- return unless debug?
56
41
 
57
- configurator.add_span_processor OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor.new(
58
- OpenTelemetry::SDK::Trace::Export::ConsoleSpanExporter.new
59
- )
42
+ if @@epsagon_config[:debug]
43
+ configurator.add_span_processor OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor.new(
44
+ OpenTelemetry::Exporter::OTLP::Exporter.new(headers: {
45
+ 'x-epsagon-token' => @@epsagon_config[:token]
46
+ },
47
+ endpoint: @@epsagon_config[:backend],
48
+ insecure: @@epsagon_config[:insecure] || false)
49
+ )
50
+
51
+ configurator.add_span_processor OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor.new(
52
+ OpenTelemetry::SDK::Trace::Export::ConsoleSpanExporter.new
53
+ )
54
+ else
55
+ configurator.add_span_processor OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
56
+ exporter: OpenTelemetry::Exporter::OTLP::Exporter.new(headers: {
57
+ 'x-epsagon-token' => @@epsagon_config[:token]
58
+ },
59
+ endpoint: @@epsagon_config[:backend],
60
+ insecure: @@epsagon_config[:insecure] || false)
61
+ )
62
+ end
60
63
  end
61
64
 
62
- OpenTelemetry::SDK.configure
63
65
  end
64
66
 
65
67
  # monkey patch to include epsagon confs
@@ -12,10 +12,12 @@ end
12
12
  # Generates Spans for all uses of AWS SDK
13
13
  class EpsagonAwsHandler < Seahorse::Client::Handler
14
14
  def call(context)
15
- span_name = "AWS #{context[:service_name]}"
16
- tracer.in_span(span_name) do |span|
15
+ tracer.in_span('') do |span|
17
16
  @handler.call(context).tap do
18
- span.set_attribute('aws.command', context[:command])
17
+ span.set_attribute('aws.operation', context[:command])
18
+ span.set_attribute('aws.status_code', context[:status_code])
19
+ span.set_attribute('aws.service', context[:service_name])
20
+ span.set_attribute('aws.account_id', context[:account_id])
19
21
  span.set_attribute('aws.status_code', context[:status_code])
20
22
  end
21
23
  end
@@ -68,7 +68,7 @@ module EpsagonNetHTTPExtension
68
68
  end
69
69
 
70
70
  def tracer
71
- EpsagonSinatraInstrumentation.instance.tracer
71
+ EpsagonNetHTTPInstrumentation.instance.tracer
72
72
  end
73
73
  end
74
74
 
metadata CHANGED
@@ -1,17 +1,105 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epsagon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
- - Assaf Paneth
7
+ - Epsagon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-24 00:00:00.000000000 Z
12
- dependencies: []
13
- description: Epsagon for ruby
14
- email: assaf.paneth@gmail.com
11
+ date: 2021-04-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: opentelemetry-api
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.11.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.11.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: opentelemetry-sdk
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.11.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.11.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: sinatra
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: opentelemetry-instrumentation-sinatra
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.11.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.11.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: opentelemetry-exporter-otlp
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.11.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.11.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: faraday
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.3'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.3'
97
+ description: 'Epsagon provides tracing to Ruby applications for the collection of
98
+ distributed tracing and performance metrics to simplify complex architectures, eliminate
99
+ manual work, visualize and correlate data to identify and fix problems fast.
100
+
101
+ '
102
+ email: info@epsagon.com
15
103
  executables: []
16
104
  extensions: []
17
105
  extra_rdoc_files: []
@@ -23,7 +111,7 @@ files:
23
111
  - lib/instrumentation/net_http.rb
24
112
  - lib/instrumentation/sinatra.rb
25
113
  - lib/util.rb
26
- homepage: https://rubygems.org/gems/epsagon
114
+ homepage: https://github.com/epsagon/epsagon-ruby
27
115
  licenses:
28
116
  - MIT
29
117
  metadata: {}
@@ -33,9 +121,9 @@ require_paths:
33
121
  - lib
34
122
  required_ruby_version: !ruby/object:Gem::Requirement
35
123
  requirements:
36
- - - "~>"
124
+ - - ">="
37
125
  - !ruby/object:Gem::Version
38
- version: '2.7'
126
+ version: 2.0.0
39
127
  required_rubygems_version: !ruby/object:Gem::Requirement
40
128
  requirements:
41
129
  - - ">="
@@ -45,5 +133,6 @@ requirements: []
45
133
  rubygems_version: 3.1.4
46
134
  signing_key:
47
135
  specification_version: 4
48
- summary: Epsagon for ruby
136
+ summary: Epsagon provides tracing to Ruby applications for the collection of distributed
137
+ tracing and performance metrics.
49
138
  test_files: []