philbot-scheduler 1.4.5 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/scheduler.rb +42 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4282b6969f473591923c925d109fd626a04c5bb5d53b38d1ac22b9eff17df16
4
- data.tar.gz: e73fc2958f04d42094ca6ac6f23902d723521ed155c87cce2ce82665f188e268
3
+ metadata.gz: 619636640515c937f6d0f2464fffaae5500c03019a345a977805b61552e86c21
4
+ data.tar.gz: 02011301505aedec38fab8513d450945a31f46e3eaaa6c835b23509dfa2cc4b5
5
5
  SHA512:
6
- metadata.gz: ff317e1dc4dc7171c52a4651264a16ce480273c4ecb166bdc1717b2bd12692fc496952af9b9023f0b23ae01e561640871c785f1ae1d05d097a746107c57a39ec
7
- data.tar.gz: f73f3537a06aa6e50de6880038cc69a25bf3619d39b4a715ecbd9f71f37f0e93d0ec96282005ac91f6268bc1e61452320afa728475e25f448eebcc21b2ee189c
6
+ metadata.gz: 9765f2437034db45d71730aa88882342f1337379e2cd1ecb623b0f72c8cb96b94eadf2e29f92c265c725cc19730652b91c810372f9f7306adc1f2c62c15b5888
7
+ data.tar.gz: f2660b12dde62790d8167d408ebf07725441079ca11e059a68d391d91aa3c9c6ef90f09130df44b61132011e9fc12762c0dd2d2576b2269a8f2ab8d7d22917c8
data/lib/scheduler.rb CHANGED
@@ -65,17 +65,57 @@ module DynatraceResourceDetector
65
65
  end
66
66
  end
67
67
 
68
+ module OracleResourceDetector
69
+ extend self
70
+
71
+ def detect
72
+ begin
73
+ metadata = fetch_metadata
74
+ resource_attributes = {
75
+ OpenTelemetry::SemanticConventions::Resource::CLOUD_PROVIDER => 'oracle',
76
+ OpenTelemetry::SemanticConventions::Resource::CLOUD_AVAILABILITY_ZONE => metadata['availabilityDomain'],
77
+ OpenTelemetry::SemanticConventions::Resource::CLOUD_ACCOUNT_ID => metadata['tenantId'],
78
+ OpenTelemetry::SemanticConventions::Resource::CLOUD_REGION => metadata['region'],
79
+ OpenTelemetry::SemanticConventions::Resource::HOST_TYPE => metadata['shape'],
80
+ OpenTelemetry::SemanticConventions::Resource::HOST_NAME => metadata['hostname'],
81
+ OpenTelemetry::SemanticConventions::Resource::HOST_ID => metadata['id'],
82
+ OpenTelemetry::SemanticConventions::Resource::HOST_IMAGE_ID => metadata['image']
83
+ }
84
+ resource_attributes.delete_if { |_key, value| value.nil? || value.empty? }
85
+ return OpenTelemetry::SDK::Resources::Resource.create(resource_attributes)
86
+ rescue StandardError => e
87
+ puts "Error fetching metadata: #{e.message}"
88
+ return OpenTelemetry::SDK::Resources::Resource.create({})
89
+ end
90
+ end
91
+
92
+ private
93
+
94
+ def fetch_metadata
95
+ uri = URI('http://169.254.169.254/opc/v1/instance/')
96
+ http = Net::HTTP.new(uri.host, uri.port)
97
+ request = Net::HTTP::Get.new(uri)
98
+ request['Authorization'] = 'Bearer Oracle'
99
+
100
+ response = http.request(request)
101
+ raise "Failed to fetch metadata: #{response.message}" unless response.code == '200'
102
+
103
+ JSON.parse(response.body)
104
+ end
105
+ end
106
+
107
+
68
108
  OpenTelemetry::SDK.configure do |c|
69
109
  c.resource = DynatraceResourceDetector.detect
70
110
  c.resource = AwsEC2ResourceDetector.detect
71
111
  c.resource = ServiceResourceDetector.detect
72
112
  c.resource = OpenTelemetry::Resource::Detectors::AutoDetector.detect
73
-
113
+ c.resource = OracleResourceDetector.detect
74
114
  c.add_span_processor(
75
115
  OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new(
76
116
  OpenTelemetry::Exporter::OTLP::Exporter.new(
77
117
  endpoint: ENV['OPENTELEMETRY_TRACES_API_ENDPOINT'],
78
- headers: { "Authorization": "Api-Token " + ENV['OPENTELEMETRY_TRACES_API_TOKEN'] }
118
+ headers: { "Authorization": ENV['OPENTELEMETRY_TRACES_API_TOKEN'] }
79
119
  )
80
120
  )
81
121
  )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: philbot-scheduler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.5
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philipp Lengauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-06 00:00:00.000000000 Z
11
+ date: 2024-03-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ''
14
14
  email: p.lengauer@gmail.com