Skip to content

Commit

Permalink
Add service_version option support (#122)
Browse files Browse the repository at this point in the history
Adds support for configuring a service version in tracer options, which
can be used for tracking service deployments and their performance regressions.
  • Loading branch information
kamilkowalski authored Sep 8, 2022
1 parent 537e060 commit d43a5d6
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 2 deletions.
3 changes: 3 additions & 0 deletions lib/span.ex
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ defmodule Spandex.Span do
:private,
:resource,
:service,
:service_version,
:services,
:sql_query,
:start,
Expand All @@ -37,6 +38,7 @@ defmodule Spandex.Span do
private: Keyword.t(),
resource: atom() | String.t(),
service: atom(),
service_version: String.t() | nil,
services: Keyword.t() | nil,
sql_query: Keyword.t() | nil,
start: Spandex.timestamp(),
Expand All @@ -57,6 +59,7 @@ defmodule Spandex.Span do
private: :keyword,
resource: [:atom, :string],
service: :atom,
service_version: :string,
services: :keyword,
sql_query: :keyword,
start: :integer,
Expand Down
2 changes: 2 additions & 0 deletions lib/tracer.ex
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ defmodule Spandex.Tracer do
service: :atom,
disabled?: :boolean,
env: :string,
service_version: :string,
services: {:keyword, :atom},
strategy: :atom,
sender: :atom,
Expand All @@ -68,6 +69,7 @@ defmodule Spandex.Tracer do
sender:
"Once a trace is complete, it is sent using this module. Defaults to the `default_sender/0` of the selected adapter",
service: "The default service name to use for spans declared without a service",
service_version: "The version of the service, used for tracking deployments.",
disabled?: "Allows for wholesale disabling a tracer",
env: "A name used to identify the environment name, e.g `prod` or `development`",
services: "A mapping of service name to the default span types.",
Expand Down
5 changes: 3 additions & 2 deletions test/spandex_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ defmodule Spandex.Test.SpandexTest do

@span_opts [
service: :test_service,
service_version: "v1",
resource: "test_resource"
]

Expand Down Expand Up @@ -91,11 +92,11 @@ defmodule Spandex.Test.SpandexTest do
assert {:error, :disabled} = Spandex.start_span("root_span", :disabled)
end

test "inherits service and resource from parent span if not specified" do
test "inherits service, service_version and resource from parent span if not specified" do
opts = @base_opts ++ @span_opts
assert {:ok, %Trace{id: _trace_id}} = Spandex.start_trace("root_span", opts)
assert {:ok, %Span{} = span} = Spandex.start_span("span_name", @base_opts)
assert %Span{name: "span_name", service: :test_service, resource: "test_resource"} = span
assert %Span{name: "span_name", service: :test_service, service_version: "v1", resource: "test_resource"} = span
end

test "returns an error if invalid options are specified" do
Expand Down

0 comments on commit d43a5d6

Please sign in to comment.