Skip to content

Commit 1279826

Browse files
authored
docs: upgrade http example (#1932)
* docs: upgrade http example Fix broken links and use the latest span attributes * use the semantic conventions package instead of hard-coding attributes
1 parent 9cd73dc commit 1279826

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

examples/http/client.rb

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
require 'faraday'
1010
# Require otel-ruby
1111
require 'opentelemetry/sdk'
12+
require 'opentelemetry/semconv/http'
13+
require 'opentelemetry/semconv/url'
1214

1315
# Export traces to console by default
1416
ENV['OTEL_TRACES_EXPORTER'] ||= 'console'
@@ -26,14 +28,14 @@
2628
url = '/hello'
2729

2830
# For attribute naming, see:
29-
# https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/http.md
31+
# https://github.com/open-telemetry/semantic-conventions/blob/main/docs/http/http-spans.md#http-client-span
3032

3133
# Span name should be set to URI path value:
3234
tracer.in_span(
3335
url,
3436
attributes: {
35-
'component' => 'http',
36-
'http.method' => 'GET',
37+
OpenTelemetry::SemConv::URL::URL_SCHEME => 'http',
38+
OpenTelemetry::SemConv::HTTP::HTTP_REQUEST_METHOD => 'GET',
3739
},
3840
kind: :client
3941
) do |span|
@@ -42,6 +44,6 @@
4244
OpenTelemetry.propagation.inject(request.headers)
4345
end
4446

45-
span.set_attribute('http.url', response.env.url.to_s)
46-
span.set_attribute('http.status_code', response.status)
47+
span.set_attribute(OpenTelemetry::SemConv::URL::URL_FULL, response.env.url.to_s)
48+
span.set_attribute(OpenTelemetry::SemConv::HTTP::HTTP_RESPONSE_STATUS_CODE, response.status)
4749
end

examples/http/server.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
require 'sinatra/base'
1111
# Require otel-ruby
1212
require 'opentelemetry/sdk'
13+
require 'opentelemetry/semconv/http'
14+
require 'opentelemetry/semconv/url'
1315

1416
# Export traces to console by default
1517
ENV['OTEL_TRACES_EXPORTER'] ||= 'console'
@@ -38,25 +40,25 @@ def call(env)
3840
span_name = env['PATH_INFO']
3941

4042
# For attribute naming, see
41-
# https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/data-semantic-conventions.md#http-server
43+
# https://github.com/open-telemetry/semantic-conventions/blob/main/docs/http/http-spans.md#http-server
4244

4345
# Activate the extracted context
4446
OpenTelemetry::Context.with_current(context) do
4547
# Span kind MUST be `:server` for a HTTP server span
4648
@tracer.in_span(
4749
span_name,
4850
attributes: {
49-
'component' => 'http',
50-
'http.method' => env['REQUEST_METHOD'],
51-
'http.route' => env['PATH_INFO'],
52-
'http.url' => env['REQUEST_URI'],
51+
OpenTelemetry::SemConv::URL::URL_SCHEME => 'http',
52+
OpenTelemetry::SemConv::HTTP::HTTP_REQUEST_METHOD => env['REQUEST_METHOD'],
53+
OpenTelemetry::SemConv::HTTP::HTTP_ROUTE => env['PATH_INFO'],
54+
OpenTelemetry::SemConv::URL::URL_PATH => env['REQUEST_URI'],
5355
},
5456
kind: :server
5557
) do |span|
5658
# Run application stack
5759
status, headers, response_body = @app.call(env)
5860

59-
span.set_attribute('http.status_code', status)
61+
span.set_attribute(OpenTelemetry::SemConv::HTTP::HTTP_RESPONSE_STATUS_CODE, status)
6062
end
6163
end
6264

0 commit comments

Comments
 (0)