Skip to content

Commit

Permalink
Merge branch 'main' into arielvalentin-patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
arielvalentin authored Oct 16, 2023
2 parents 1e4ed07 + 9f0521d commit 2509d6d
Show file tree
Hide file tree
Showing 8 changed files with 102 additions and 77 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/release-hook-on-closed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install Toys
run: "gem install --no-document toys"
run: "gem install --no-document toys -v 0.15.1"
- name: Process release request
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-hook-on-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install Toys
run: "gem install --no-document toys"
run: "gem install --no-document toys -v 0.15.1"
- name: Update open releases
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-perform.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install Toys
run: "gem install --no-document toys"
run: "gem install --no-document toys -v 0.15.1"
- name: Perform release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install Toys
run: "gem install --no-document toys"
run: "gem install --no-document toys -v 0.15.1"
- name: Open release pull request
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-retry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install Toys
run: "gem install --no-document toys"
run: "gem install --no-document toys -v 0.15.1"
- name: Retry release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
4 changes: 2 additions & 2 deletions .toys/.toys.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
toys_version! "0.14.7"
toys_version! "0.15.1"

load_git remote: "https://github.com/dazuma/toys.git",
path: ".toys/release",
as: "release",
commit: "toys/v0.14.7",
commit: "toys/v0.15.1",
update: 3600
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ def call(env)
def span_creation_attributes(http_method:, url:)
instrumentation_attrs = {
'http.method' => http_method,
'http.url' => OpenTelemetry::Common::Utilities.cleanse_url(url.to_s),
'net.peer.name' => url.host
'http.url' => OpenTelemetry::Common::Utilities.cleanse_url(url.to_s)
}
instrumentation_attrs['net.peer.name'] = url.host if url.host
config = Faraday::Instrumentation.instance.config
instrumentation_attrs['peer.service'] = config[:peer_service] if config[:peer_service]
instrumentation_attrs.merge!(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,89 +42,114 @@
instrumentation.install
end

it 'has http 200 attributes' do
response = client.get('/success')

_(span.name).must_equal 'HTTP GET'
_(span.attributes['http.method']).must_equal 'GET'
_(span.attributes['http.status_code']).must_equal 200
_(span.attributes['http.url']).must_equal 'http://example.com/success'
_(span.attributes['net.peer.name']).must_equal 'example.com'
_(response.env.request_headers['Traceparent']).must_equal(
"00-#{span.hex_trace_id}-#{span.hex_span_id}-01"
)
end
describe 'given a client with a base url' do
it 'has http 200 attributes' do
response = client.get('/success')

_(span.name).must_equal 'HTTP GET'
_(span.attributes['http.method']).must_equal 'GET'
_(span.attributes['http.status_code']).must_equal 200
_(span.attributes['http.url']).must_equal 'http://example.com/success'
_(span.attributes['net.peer.name']).must_equal 'example.com'
_(response.env.request_headers['Traceparent']).must_equal(
"00-#{span.hex_trace_id}-#{span.hex_span_id}-01"
)
end

it 'has http.status_code 404' do
response = client.get('/not_found')

_(span.name).must_equal 'HTTP GET'
_(span.attributes['http.method']).must_equal 'GET'
_(span.attributes['http.status_code']).must_equal 404
_(span.attributes['http.url']).must_equal 'http://example.com/not_found'
_(span.attributes['net.peer.name']).must_equal 'example.com'
_(response.env.request_headers['Traceparent']).must_equal(
"00-#{span.hex_trace_id}-#{span.hex_span_id}-01"
)
end
it 'has http.status_code 404' do
response = client.get('/not_found')

_(span.name).must_equal 'HTTP GET'
_(span.attributes['http.method']).must_equal 'GET'
_(span.attributes['http.status_code']).must_equal 404
_(span.attributes['http.url']).must_equal 'http://example.com/not_found'
_(span.attributes['net.peer.name']).must_equal 'example.com'
_(response.env.request_headers['Traceparent']).must_equal(
"00-#{span.hex_trace_id}-#{span.hex_span_id}-01"
)
end

it 'has http.status_code 500' do
response = client.get('/failure')

_(span.name).must_equal 'HTTP GET'
_(span.attributes['http.method']).must_equal 'GET'
_(span.attributes['http.status_code']).must_equal 500
_(span.attributes['http.url']).must_equal 'http://example.com/failure'
_(span.attributes['net.peer.name']).must_equal 'example.com'
_(response.env.request_headers['Traceparent']).must_equal(
"00-#{span.hex_trace_id}-#{span.hex_span_id}-01"
)
end
it 'has http.status_code 500' do
response = client.get('/failure')

_(span.name).must_equal 'HTTP GET'
_(span.attributes['http.method']).must_equal 'GET'
_(span.attributes['http.status_code']).must_equal 500
_(span.attributes['http.url']).must_equal 'http://example.com/failure'
_(span.attributes['net.peer.name']).must_equal 'example.com'
_(response.env.request_headers['Traceparent']).must_equal(
"00-#{span.hex_trace_id}-#{span.hex_span_id}-01"
)
end

it 'merges http client attributes' do
client_context_attrs = {
'test.attribute' => 'test.value', 'http.method' => 'OVERRIDE'
}
response = OpenTelemetry::Common::HTTP::ClientContext.with_attributes(client_context_attrs) do
client.get('/success')
it 'merges http client attributes' do
client_context_attrs = {
'test.attribute' => 'test.value', 'http.method' => 'OVERRIDE'
}
response = OpenTelemetry::Common::HTTP::ClientContext.with_attributes(client_context_attrs) do
client.get('/success')
end

_(span.name).must_equal 'HTTP GET'
_(span.attributes['http.method']).must_equal 'OVERRIDE'
_(span.attributes['http.status_code']).must_equal 200
_(span.attributes['http.url']).must_equal 'http://example.com/success'
_(span.attributes['net.peer.name']).must_equal 'example.com'
_(span.attributes['test.attribute']).must_equal 'test.value'
_(response.env.request_headers['Traceparent']).must_equal(
"00-#{span.hex_trace_id}-#{span.hex_span_id}-01"
)
end

_(span.name).must_equal 'HTTP GET'
_(span.attributes['http.method']).must_equal 'OVERRIDE'
_(span.attributes['http.status_code']).must_equal 200
_(span.attributes['http.url']).must_equal 'http://example.com/success'
_(span.attributes['net.peer.name']).must_equal 'example.com'
_(span.attributes['test.attribute']).must_equal 'test.value'
_(response.env.request_headers['Traceparent']).must_equal(
"00-#{span.hex_trace_id}-#{span.hex_span_id}-01"
)
end
it 'accepts peer service name from config' do
instrumentation.instance_variable_set(:@installed, false)
instrumentation.install(peer_service: 'example:faraday')

it 'accepts peer service name from config' do
instrumentation.instance_variable_set(:@installed, false)
instrumentation.install(peer_service: 'example:faraday')
client.get('/success')

client.get('/success')
_(span.attributes['peer.service']).must_equal 'example:faraday'
end

_(span.attributes['peer.service']).must_equal 'example:faraday'
end
it 'prioritizes context attributes over config for peer service name' do
instrumentation.instance_variable_set(:@installed, false)
instrumentation.install(peer_service: 'example:faraday')

it 'prioritizes context attributes over config for peer service name' do
instrumentation.instance_variable_set(:@installed, false)
instrumentation.install(peer_service: 'example:faraday')
client_context_attrs = { 'peer.service' => 'example:custom' }
OpenTelemetry::Common::HTTP::ClientContext.with_attributes(client_context_attrs) do
client.get('/success')
end

client_context_attrs = { 'peer.service' => 'example:custom' }
OpenTelemetry::Common::HTTP::ClientContext.with_attributes(client_context_attrs) do
client.get('/success')
_(span.attributes['peer.service']).must_equal 'example:custom'
end

_(span.attributes['peer.service']).must_equal 'example:custom'
it 'does not leak authentication credentials' do
client.run_request(:get, 'http://username:password@example.com/success', nil, {})

_(span.attributes['http.url']).must_equal 'http://example.com/success'
end
end

it 'does not leak authentication credentials' do
client.run_request(:get, 'http://username:password@example.com/success', nil, {})
describe 'given a client without a base url' do
let(:client) do
Faraday.new do |builder|
builder.adapter(:test) do |stub|
stub.get('/success') { |_| [200, {}, 'OK'] }
end
end
end

_(span.attributes['http.url']).must_equal 'http://example.com/success'
it 'omits missing attributes' do
response = client.get('/success')

_(span.name).must_equal 'HTTP GET'
_(span.attributes['http.method']).must_equal 'GET'
_(span.attributes['http.status_code']).must_equal 200
_(span.attributes['http.url']).must_equal 'http:/success'
_(span.attributes).wont_include('net.peer.name')
_(response.env.request_headers['Traceparent']).must_equal(
"00-#{span.hex_trace_id}-#{span.hex_span_id}-01"
)
end
end
end
end

0 comments on commit 2509d6d

Please sign in to comment.