Skip to content

Commit 1591894

Browse files
authored
Merge pull request #4 from GameAnalytics/daemon-config-env-vars
Get X-Ray daemon address and port from environment variables
2 parents 07ae5e3 + 04f6570 commit 1591894

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

lib/aws_ex_ray.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -410,8 +410,8 @@ defmodule AwsExRay do
410410
name :: String.t,
411411
annotations :: map,
412412
opts :: keyword,
413-
func :: fun
414-
) :: :ok
413+
func :: (String.t -> ret)
414+
) :: ret when ret: term
415415
def subsegment(name, annotations, opts, func) do
416416

417417
subsegment_state = start_subsegment(name, opts)

lib/aws_ex_ray/aws_metadata.ex

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,18 @@ defmodule AwsExRay.AwsMetadata do
2222
case result do
2323
%{"ec2" => _} ->
2424
Application.put_env(:aws_ex_ray, :aws_metadata, result)
25+
{{%RuntimeError{message: error_message = "Instance Meta Error" <> _}, _}, _} ->
26+
# Failed to reach the instance metadata endpoint.
27+
# Most likely we're not running on an EC2 instance.
28+
:ok
2529
_ ->
2630
Logger.debug("Error during instance identity request: #{Exception.format_exit(result)}")
2731
end
2832
{:stop, :normal, state}
2933
end
3034

3135
def request_aws_metadata() do
32-
config = ExAws.Config.new(:ec2, require_imds_v2: true)
36+
config = ExAws.Config.new(:ec2, require_imds_v2: true, access_key_id: "", secret_access_key: "", security_token: "")
3337
result = ExAws.InstanceMeta.request(config, "http://169.254.169.254/latest/dynamic/instance-identity/document")
3438
map = Jason.decode!(result)
3539
:erlang.exit(%{"ec2" => %{

lib/aws_ex_ray/config.ex

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ defmodule AwsExRay.Config do
5656
def daemon_address() do
5757

5858
address = get(:daemon_address,
59-
@default_daemon_address)
59+
System.get_env("_AWS_XRAY_DAEMON_ADDRESS",
60+
@default_daemon_address))
6061

6162
charlist_address = address |> String.to_charlist()
6263

@@ -74,8 +75,17 @@ defmodule AwsExRay.Config do
7475

7576
@spec daemon_port() :: non_neg_integer
7677
def daemon_port() do
77-
get(:daemon_port,
78-
@default_daemon_port)
78+
case get(:daemon_port, nil) do
79+
nil ->
80+
case System.get_env("_AWS_XRAY_DAEMON_PORT") do
81+
port when is_binary(port) ->
82+
String.to_integer(port)
83+
nil ->
84+
@default_daemon_port
85+
end
86+
port ->
87+
port
88+
end
7989
end
8090

8191
@spec default_annotation() :: map

0 commit comments

Comments
 (0)