Skip to content
This repository was archived by the owner on Jul 31, 2023. It is now read-only.

Commit b522ef0

Browse files
committed
adds set_kind func for oc_trace
1 parent 33de39d commit b522ef0

3 files changed

Lines changed: 18 additions & 10 deletions

File tree

src/oc_propagation_http_b3.erl

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,14 @@ to_headers(#span_ctx{trace_id=TraceId,
3939
trace_options=TraceOptions}) ->
4040
Options = case TraceOptions band 1 of 1 -> "1"; _ -> "0" end,
4141
%% iolist_to_binary only needed for versions before otp-21
42-
EncodedTraceId = encode_trace_id(TraceId),
42+
EncodedTraceId = iolist_to_binary(io_lib:format("~32.16.0b", [TraceId])),
4343
EncodedSpanId = iolist_to_binary(io_lib:format("~16.16.0b", [SpanId])),
4444
[{?B3_TRACE_ID, EncodedTraceId},
4545
{?B3_SPAN_ID, EncodedSpanId},
4646
{?B3_SAMPLED, Options}];
4747
to_headers(undefined) ->
4848
[].
4949

50-
encode_trace_id(TraceId) ->
51-
encode_trace_id(TraceId, binary:encode_unsigned(TraceId)).
52-
encode_trace_id(TraceId, TraceIdBin) when bit_size(TraceIdBin) == 64 ->
53-
iolist_to_binary(io_lib:format("~16.16.0b", [TraceId]));
54-
encode_trace_id(TraceId, _TraceIdBin) ->
55-
iolist_to_binary(io_lib:format("~32.16.0b", [TraceId])).
56-
5750
-spec from_headers(list() | map()) -> maybe(opencensus:span_ctx()).
5851
from_headers(Headers) when is_map(Headers) ->
5952
from_headers(maps:to_list(Headers));

src/oc_span.erl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
message_event/4,
3434

35+
set_kind/2,
36+
3537
set_status/3]).
3638

3739
-include("opencensus.hrl").
@@ -138,6 +140,16 @@ set_status(Code, Message, Span=#span{}) ->
138140
set_status(_, _, undefined) ->
139141
undefined.
140142

143+
%%--------------------------------------------------------------------
144+
%% @doc
145+
%% Set Kind.
146+
%% @end
147+
%%--------------------------------------------------------------------
148+
-spec set_kind(Kind, Span) -> Span when Kind :: opencensus:span_kind(), Span :: maybe(opencensus:span()).
149+
set_kind(Kind, Span=#span{}) ->
150+
Span#span{kind=Kind};
151+
set_kind(_, undefined) ->
152+
undefined.
141153

142154
%%--------------------------------------------------------------------
143155
%% @doc

test/oc_span_SUITE.erl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,13 @@ modifications(_Config) ->
5353
Span6 = oc_span:add_link(Link, Span5),
5454
?assertEqual(undefined, oc_span:add_link(Link, undefined)),
5555

56-
?assertEqual({error, no_report_buffer}, oc_span:finish_span(#span_ctx{}, Span6)),
56+
Span7 = oc_span:set_kind(?SPAN_KIND_SERVER, Span6),
57+
?assertEqual(undefined, oc_span:set_kind(?SPAN_KIND_SERVER, undefined)),
58+
59+
?assertEqual({error, no_report_buffer}, oc_span:finish_span(#span_ctx{}, Span7)),
5760

5861
{ok, _} = application:ensure_all_started(opencensus),
59-
?assertEqual(true, oc_span:finish_span(#span_ctx{}, Span6)),
62+
?assertEqual(true, oc_span:finish_span(#span_ctx{}, Span7)),
6063
?assertEqual(true, oc_span:finish_span(#span_ctx{}, undefined)),
6164

6265
application:stop(opencensus).

0 commit comments

Comments
 (0)