The AWS X-Ray daemon is a software application that listens for traffic on UDP port 2000, gathers raw segment data, and relays it to the AWS X-Ray API.
The daemon works in conjunction with the AWS X-Ray SDKs and must be running so that data sent by the SDKs can reach the X-Ray service. For more information,
see AWS X-Ray Daemon.
Use the following community resources for getting help with the AWS X-Ray Daemon. We use the GitHub issues for tracking bugs and feature requests.
- Ask a question in the AWS X-Ray Forum.
- Open a support ticket with AWS Support.
- If you think you may have found a bug, open an issue.
- For contributing guidelines refer CONTRIBUTING.md.
The X-Ray SDK sends segment documents to the daemon to avoid making calls to AWS directly. You can send the segment/subsegment in JSON over UDP port 2000
to the X-Ray daemon, prepended by the daemon header : {"format": "json", "version": 1}\n
{"format": "json", "version": 1}\n{<serialized segment data>}
For more details refer : Link
The AWS X-Ray Daemon is compatible with Go 1.8 and later.
Install the daemon using the following command:
go get -u github.com/aws/aws-xray-daemon/...
The AWS X-Ray Daemon follows default credential resolution for the aws-sdk-go.
Follow the guidelines for the credential configuration.
Usage: X-Ray [options]
- -a --resource-arn Amazon Resource Name (ARN) of the AWS resource running the daemon.
- -o --local-mode Don't check for EC2 instance metadata.
- -m --buffer-memory Change the amount of memory in MB that buffers can use (minimum 3).
- -n --region Send segments to X-Ray service in a specific region.
- -b --bind Overrides default UDP address (127.0.0.1:2000).
- -t --bind-tcp Overrides default TCP address (127.0.0.1:2000).
- -r --role-arn Assume the specified IAM role to upload segments to a different account.
- -c --config Load a configuration file from the specified path.
- -f --log-file Output logs to the specified file path.
- -l --log-level Log level, from most verbose to least: dev, debug, info, warn, error, prod (default).
- -p --proxy-address Proxy address through which to upload segments.
- -v --version Show AWS X-Ray daemon version.
- -h --help Show this screen
make build
would build binaries and .zip files in /build
folder for Linux, MacOS, and Windows platforms.
make build-linux
would build binaries and .zip files in /build
folder for the Linux platform.
make build-mac
would build binaries and .zip files in /build
folder for the MacOS platform.
make build-windows
would build binaries and .zip files in /build
folder for the Windows platform.
Currently, the make build
script builds artifacts for AMD architecture. You can build the X-Ray Daemon for ARM by using the go build
command and setting the GOARCH
to arm64
. To build the daemon binary on a linux ARM machine, you can use the following command:
GOOS=linux GOARCH=arm64 go build -ldflags "-s -w" -o xray cmd/tracing/daemon.go cmd/tracing/tracing.go
As of Aug 31, 2020, windows and darwin builds for ARM64 are not supported by go build
.
make test
will run unit tests for the X-Ray daemon.
This library is licensed under the Apache 2.0 License.