foam-ruby 0.1.0.alpha1 → 0.1.0.alpha3
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.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/lib/foam/ruby/configuration.rb +4 -4
- data/lib/foam/ruby/otel_setup.rb +8 -11
- data/lib/foam/ruby/version.rb +1 -1
- data/lib/foam/ruby.rb +3 -3
- metadata +15 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4757e034451eb4a545eb37b3d9fefcb4d1efc64748ce9a09984f27bd11882666
|
|
4
|
+
data.tar.gz: 4794bba41f510f12bf74f54a59b48ce5f7d9756eb76836ba8bc5835fc24a2abe
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 75b987b723c9566e71e38acc0f75b92ae4893cb5de83ebf1667629d0fd5b5cb7937e95e36ddbc66744a97439bdaa6b9227bfbb09431d6f5b97445f031b75d4d9
|
|
7
|
+
data.tar.gz: 3abca311a34a3d1cf780416fb6f362369c4a797d87f9513f1244d6e021b485bc063ec224868196512e79f326c6bfc32e26342f9f9789b8e5cd0a7cb7735678ac
|
data/README.md
CHANGED
|
@@ -22,7 +22,7 @@ Create an initializer at `config/initializers/foam.rb`:
|
|
|
22
22
|
|
|
23
23
|
```ruby
|
|
24
24
|
Foam::Ruby.init(
|
|
25
|
-
|
|
25
|
+
token: ENV["FOAM_API_TOKEN"],
|
|
26
26
|
service_name: "my-rails-app"
|
|
27
27
|
)
|
|
28
28
|
```
|
|
@@ -39,7 +39,7 @@ That's it. The gem will:
|
|
|
39
39
|
|
|
40
40
|
```ruby
|
|
41
41
|
Foam::Ruby.configure do |c|
|
|
42
|
-
c.
|
|
42
|
+
c.token = ENV["FOAM_API_TOKEN"]
|
|
43
43
|
c.service_name = "my-rails-app"
|
|
44
44
|
c.traces_enabled = true
|
|
45
45
|
c.logs_enabled = true
|
|
@@ -50,7 +50,7 @@ end
|
|
|
50
50
|
|
|
51
51
|
| Variable | Description | Default |
|
|
52
52
|
|---|---|---|
|
|
53
|
-
| `
|
|
53
|
+
| `FOAM_API_TOKEN` | Your Foam bearer token | — |
|
|
54
54
|
| `OTEL_SERVICE_NAME` | Service name for telemetry | `rails-app` |
|
|
55
55
|
| `FOAM_OTEL_ENDPOINT` | OTLP collector endpoint | `https://otel.api.foam.ai` |
|
|
56
56
|
|
|
@@ -58,7 +58,7 @@ end
|
|
|
58
58
|
|
|
59
59
|
```ruby
|
|
60
60
|
Foam::Ruby.init(
|
|
61
|
-
|
|
61
|
+
token: ENV["FOAM_API_TOKEN"],
|
|
62
62
|
service_name: "my-rails-app",
|
|
63
63
|
traces: false, # disable trace collection
|
|
64
64
|
logs: true
|
|
@@ -101,7 +101,7 @@ Pass extra OpenTelemetry instrumentations:
|
|
|
101
101
|
|
|
102
102
|
```ruby
|
|
103
103
|
Foam::Ruby.init(
|
|
104
|
-
|
|
104
|
+
token: ENV["FOAM_API_TOKEN"],
|
|
105
105
|
service_name: "my-rails-app",
|
|
106
106
|
instrumentations: [
|
|
107
107
|
"OpenTelemetry::Instrumentation::Sidekiq",
|
|
@@ -5,12 +5,12 @@ module Foam
|
|
|
5
5
|
class Configuration
|
|
6
6
|
FOAM_OTEL_ENDPOINT = "https://otel.api.foam.ai"
|
|
7
7
|
|
|
8
|
-
attr_accessor :
|
|
8
|
+
attr_accessor :token, :service_name, :endpoint,
|
|
9
9
|
:traces_enabled, :logs_enabled,
|
|
10
10
|
:additional_instrumentations
|
|
11
11
|
|
|
12
12
|
def initialize
|
|
13
|
-
@
|
|
13
|
+
@token = ENV["FOAM_API_TOKEN"]
|
|
14
14
|
@service_name = ENV.fetch("OTEL_SERVICE_NAME", "rails-app")
|
|
15
15
|
@endpoint = ENV.fetch("FOAM_OTEL_ENDPOINT", FOAM_OTEL_ENDPOINT)
|
|
16
16
|
@traces_enabled = true
|
|
@@ -19,7 +19,7 @@ module Foam
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def otel_headers
|
|
22
|
-
{ "Authorization" => "Bearer #{
|
|
22
|
+
{ "Authorization" => "Bearer #{token}" }
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def traces_endpoint
|
|
@@ -31,7 +31,7 @@ module Foam
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def valid?
|
|
34
|
-
!
|
|
34
|
+
!token.nil? && !token.empty?
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
end
|
data/lib/foam/ruby/otel_setup.rb
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require "opentelemetry/sdk"
|
|
4
4
|
require "opentelemetry-exporter-otlp"
|
|
5
|
+
require "opentelemetry-exporter-otlp-logs"
|
|
5
6
|
require "opentelemetry-logs-api"
|
|
6
7
|
require "opentelemetry-logs-sdk"
|
|
7
8
|
|
|
@@ -28,26 +29,22 @@ module Foam
|
|
|
28
29
|
)
|
|
29
30
|
)
|
|
30
31
|
|
|
31
|
-
c.
|
|
32
|
-
c.use "OpenTelemetry::Instrumentation::ActionPack"
|
|
33
|
-
c.use "OpenTelemetry::Instrumentation::ActiveRecord"
|
|
34
|
-
c.use "OpenTelemetry::Instrumentation::ActiveSupport"
|
|
35
|
-
c.use "OpenTelemetry::Instrumentation::Rails"
|
|
36
|
-
|
|
37
|
-
config.additional_instrumentations.each do |instrumentation|
|
|
38
|
-
c.use instrumentation
|
|
39
|
-
end
|
|
32
|
+
c.use_all
|
|
40
33
|
end
|
|
41
34
|
end
|
|
42
35
|
|
|
43
36
|
def configure_logs(config)
|
|
44
|
-
|
|
37
|
+
resource = OpenTelemetry::SDK::Resources::Resource.create(
|
|
38
|
+
"service.name" => config.service_name
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
exporter = OpenTelemetry::Exporter::OTLP::Logs::LogsExporter.new(
|
|
45
42
|
endpoint: config.logs_endpoint,
|
|
46
43
|
headers: config.otel_headers
|
|
47
44
|
)
|
|
48
45
|
|
|
49
46
|
processor = OpenTelemetry::SDK::Logs::Export::BatchLogRecordProcessor.new(exporter)
|
|
50
|
-
logger_provider = OpenTelemetry::SDK::Logs::LoggerProvider.new
|
|
47
|
+
logger_provider = OpenTelemetry::SDK::Logs::LoggerProvider.new(resource: resource)
|
|
51
48
|
logger_provider.add_log_record_processor(processor)
|
|
52
49
|
OpenTelemetry.logger_provider = logger_provider
|
|
53
50
|
end
|
data/lib/foam/ruby/version.rb
CHANGED
data/lib/foam/ruby.rb
CHANGED
|
@@ -20,9 +20,9 @@ module Foam
|
|
|
20
20
|
configuration
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
def init(
|
|
23
|
+
def init(token: nil, service_name: nil, endpoint: nil, **options)
|
|
24
24
|
configure do |c|
|
|
25
|
-
c.
|
|
25
|
+
c.token = token if token
|
|
26
26
|
c.service_name = service_name if service_name
|
|
27
27
|
c.endpoint = endpoint if endpoint
|
|
28
28
|
c.traces_enabled = options.fetch(:traces, true)
|
|
@@ -31,7 +31,7 @@ module Foam
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
unless configuration.valid?
|
|
34
|
-
warn "[foam-ruby] Missing
|
|
34
|
+
warn "[foam-ruby] Missing token — set FOAM_API_TOKEN or pass token: to Foam::Ruby.init"
|
|
35
35
|
return
|
|
36
36
|
end
|
|
37
37
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: foam-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.0.
|
|
4
|
+
version: 0.1.0.alpha3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Foam
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0.29'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: opentelemetry-exporter-otlp-logs
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0.3'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0.3'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: opentelemetry-logs-api
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|