philbot-scheduler 2.0.0 → 2.2.0

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -4
  3. data/lib/scheduler.rb +41 -1
  4. 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: 231fcef8ba51247200d74a77ffe9ac3c75ff5180609586520ecc043b9c78d721
4
+ data.tar.gz: 1a0c2270a94b9259b640c9d574a95261a45e3d08848736f46a5811202e062958
5
5
  SHA512:
6
- metadata.gz: e95ed09b2c41970478e02bc94e21a29d776689fd271e00b0dbcca187364ed771520346d0a263397730d94f3dce380d2525c5820c3b0b52ebe48d5b65dac2d68a
7
- data.tar.gz: 0f89d2ea7ca789e228dd3d7711e670886ee21f15e8457ddf0f4b68649654189d4b17250f4225ba3afdf1c473fa4376c996b9caef870066a6d3448dc7082714bd
6
+ metadata.gz: 155c919de5a1649fab863b2851b3fc619558ec8e4b823b3525c46c1eef986992e712c4fc19f1fb770a73c74845e1d813f38f7374e3dcdd6e0f66e248e633c884
7
+ data.tar.gz: 9797b539eade132613a53d1d71f9d57211b0978715c744094c984ff1a918c8f19d933a7f44ea8c083576cd357b2242858c3914b18e86f12e15428f62bad13e75
data/Gemfile CHANGED
@@ -1,5 +1,5 @@
1
1
  source "https://rubygems.org"
2
- gem 'opentelemetry-sdk'
3
- gem 'opentelemetry-exporter-otlp'
4
- gem 'opentelemetry-instrumentation-all'
5
- gem 'opentelemetry-resource_detectors'
2
+ gem 'opentelemetry-sdk', '1.4.1'
3
+ gem 'opentelemetry-exporter-otlp', '0.26.3'
4
+ gem 'opentelemetry-instrumentation-all', '0.60.0'
5
+ gem 'opentelemetry-resource_detectors', '0.24.2'
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.2.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-04-12 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: ''
14
14
  email: p.lengauer@gmail.com