philbot-scheduler 2.0.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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