philbot-scheduler 2.0.0 → 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 +41 -1
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7911a77ad471c8842b0d65240abc1f2a0bd5f7d2afbd11c8e34b26b735b25af2
4
- data.tar.gz: 7782a2fb275167bf93adaad8fcbf32e7c32cc50a584daddfe9502eaf123b180a
3
+ metadata.gz: 619636640515c937f6d0f2464fffaae5500c03019a345a977805b61552e86c21
4
+ data.tar.gz: 02011301505aedec38fab8513d450945a31f46e3eaaa6c835b23509dfa2cc4b5
5
5
  SHA512:
6
- metadata.gz: e95ed09b2c41970478e02bc94e21a29d776689fd271e00b0dbcca187364ed771520346d0a263397730d94f3dce380d2525c5820c3b0b52ebe48d5b65dac2d68a
7
- data.tar.gz: 0f89d2ea7ca789e228dd3d7711e670886ee21f15e8457ddf0f4b68649654189d4b17250f4225ba3afdf1c473fa4376c996b9caef870066a6d3448dc7082714bd
6
+ metadata.gz: 9765f2437034db45d71730aa88882342f1337379e2cd1ecb623b0f72c8cb96b94eadf2e29f92c265c725cc19730652b91c810372f9f7306adc1f2c62c15b5888
7
+ data.tar.gz: f2660b12dde62790d8167d408ebf07725441079ca11e059a68d391d91aa3c9c6ef90f09130df44b61132011e9fc12762c0dd2d2576b2269a8f2ab8d7d22917c8
data/lib/scheduler.rb CHANGED
@@ -65,12 +65,52 @@ 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(
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: 2.0.0
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-12-07 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