Skip to content

Commit

Permalink
fix: erlang & elixir sampler
Browse files Browse the repository at this point in the history
  • Loading branch information
Graborg committed Mar 20, 2024
1 parent f2dbd7c commit 5d6482e
Showing 1 changed file with 17 additions and 13 deletions.
30 changes: 17 additions & 13 deletions content/en/docs/languages/erlang/sampling.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,16 @@ description(_) ->
<<"AttributeSampler">>.

should_sample(_Ctx, _TraceId, _Links, _SpanName, _SpanKind, Attributes, ConfigAttributes) ->
case maps:intersect(Attributes, ConfigAttributes) of
Map when map_size(Map) > 0 ->
{?DROP, [], []};
_ ->
{?RECORD_AND_SAMPLE, [], []}
end.
case maps:intersect(Attributes, ConfigAttributes) of
Intersection when map_size(Intersection) > 0 ->
Keys = maps:keys(Intersection),
ConfAttrPairs = [{maps:get(Key, Attr), maps:get(Key, Conf)} || Key <- Keys],
case lists:any(fun({A, B}) -> A == B end, ConfAttrPairs) of
true -> {?DROP, [], []};
_ -> {?RECORD_AND_SAMPLE, [], []}
end;
_ -> {?RECORD_AND_SAMPLE, [], []}
end
```

{{% /tab %}} {{% tab Elixir %}}
Expand All @@ -184,13 +188,13 @@ defmodule AttributesSampler do
end

def should_sample(_ctx, _trace_id, _links, _span_name, _span_kind, attributes, config_attributes) do
case :maps.intersect(attributes, config_attributes) do
map when map_size(map) > 0 ->
{:drop, [], []}
_ ->
{:record_and_sample, [], []}
end
end
attr_match =
Map.intersect(attributes, config_attributes)
|> Map.keys()
|> Enum.map(fn key -> {Map.get(attributes, key), Map.get(config_attributes, key)} end)
|> Enum.any?(fn {attr, conf} -> attr == conf end)

if attr_match, do: {:drop, [], []}, else: {:record_and_sample, [], []}
end
```

Expand Down

0 comments on commit 5d6482e

Please sign in to comment.