{"id":15017929,"url":"https://github.com/datadog/dd-trace-go","last_synced_at":"2025-05-14T05:12:04.103Z","repository":{"id":37412430,"uuid":"67680905","full_name":"DataDog/dd-trace-go","owner":"DataDog","description":"Datadog Go Library including APM tracing, profiling, and security monitoring.","archived":false,"fork":false,"pushed_at":"2024-10-29T10:54:04.000Z","size":55695,"stargazers_count":662,"open_issues_count":140,"forks_count":435,"subscribers_count":618,"default_branch":"main","last_synced_at":"2024-10-29T10:59:20.822Z","etag":null,"topics":["apm","appsec","datadog","distributed-tracing","monitoring","opentelemetry","opentracing","otel","performance","profiling","tracing"],"latest_commit_sha":null,"homepage":"https://docs.datadoghq.com/tracing/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataDog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-08T07:47:44.000Z","updated_at":"2024-10-29T10:23:58.000Z","dependencies_parsed_at":"2023-12-26T15:57:49.809Z","dependency_job_id":"cd5bd014-68ed-47e2-9eee-925c7ef28022","html_url":"https://github.com/DataDog/dd-trace-go","commit_stats":{"total_commits":2000,"total_committers":281,"mean_commits":7.117437722419929,"dds":0.898,"last_synced_commit":"8860b39d531242d273d900695fa808321d98f56e"},"previous_names":[],"tags_count":919,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Fdd-trace-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Fdd-trace-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Fdd-trace-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataDog%2Fdd-trace-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataDog","download_url":"https://codeload.github.com/DataDog/dd-trace-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246688482,"owners_count":20817945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apm","appsec","datadog","distributed-tracing","monitoring","opentelemetry","opentracing","otel","performance","profiling","tracing"],"created_at":"2024-09-24T19:51:12.517Z","updated_at":"2025-04-08T19:21:31.860Z","avatar_url":"https://github.com/DataDog.png","language":"Go","readme":"[![Main Branch and Release Tests](https://github.com/DataDog/dd-trace-go/actions/workflows/main-branch-tests.yml/badge.svg)](https://github.com/DataDog/dd-trace-go/actions/workflows/main-branch-tests.yml)\n[![System Tests](https://github.com/DataDog/dd-trace-go/actions/workflows/system-tests.yml/badge.svg)](https://github.com/DataDog/dd-trace-go/actions/workflows/system-tests.yml)\n[![CodeQL](https://github.com/DataDog/dd-trace-go/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/DataDog/dd-trace-go/actions/workflows/codeql-analysis.yml)\n[![APM Parametric Tests](https://github.com/DataDog/dd-trace-go/actions/workflows/parametric-tests.yml/badge.svg)](https://github.com/DataDog/dd-trace-go/actions/workflows/parametric-tests.yml)\n[![codecov](https://codecov.io/gh/DataDog/dd-trace-go/branch/v1/graph/badge.svg?token=jGG20Xhv8i)](https://codecov.io/gh/DataDog/dd-trace-go)\n\n[![Godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2)\n\n### Datadog Client Libraries for Go\n\nThis repository contains Go packages for the client-side components of the Datadog product suite for Application Performance Monitoring, Continuous Profiling and Application Security Monitoring of Go applications.\n\n- [Datadog Application Performance Monitoring (APM)](https://docs.datadoghq.com/tracing/): Trace requests as they flow across web servers, databases, and microservices so that developers have great visiblity into bottlenecks and troublesome requests.  \nThe package [`github.com/DataDog/dd-trace-go/v2/ddtrace/tracer`](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2/ddtrace/tracer) allows you to trace any piece of your Go code, and commonly used Go libraries can be automatically traced thanks to our out-of-the-box integrations which can be found in the package [`github.com/DataDog/dd-trace-go/v2/contrib`](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2/contrib).\n\u003c!-- # TODO: review contrib URL --\u003e\n\n- [Datadog Go Continuous Profiler](https://docs.datadoghq.com/profiler/): Continuously profile your Go apps to find CPU, memory, and synchronization bottlenecks, broken down by function name, and line number, to significantly reduce end-user latency and infrastructure costs.  \nThe package [`github.com/DataDog/dd-trace-go/v2/profiler`](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2/profiler) allows you to periodically collect and send Go profiles to the Datadog API.\n\n- [Datadog Application Security Management (ASM)](https://docs.datadoghq.com/security_platform/application_security/) provides in-app monitoring and protection against application-level attacks that aim to exploit code-level vulnerabilities, such as a Server-Side-Request-Forgery (SSRF), a SQL injection (SQLi), or Reflected Cross-Site-Scripting (XSS). ASM identifies services exposed to application attacks and leverages in-app security rules to detect and protect against threats in your application environment. ASM is not a standalone Go package and is transparently integrated into the APM tracer. You can simply enable it with [`DD_APPSEC_ENABLED=true`](https://docs.datadoghq.com/security/application_security/enabling/go).\n\n### Installing\n\nThis module contains many packages, but most users should probably install the two packages below:\n\n```bash\ngo get github.com/DataDog/dd-trace-go/v2/ddtrace/tracer\ngo get github.com/DataDog/dd-trace-go/v2/profiler\n```\n\nAdditionally there are many [contrib](./contrib) packages, published as nested modules, that can be installed to automatically instrument and trace commonly used Go libraries such as [net/http](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/net/http/v2), [gorilla/mux](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/gorilla/mux/v2) or [database/sql/v2](https://pkg.go.dev/github.com/DataDog/dd-trace-go/contrib/database/sql/v2)\n\n```\ngo get github.com/DataDog/dd-trace-go/contrib/gorilla/mux/v2\n```\n\nIf you installed more packages than you intended, you can use `go mod tidy` to remove any unused packages.\n\n### Documentation\n\n - [APM Tracing API](https://pkg.go.dev/github.com/DataDog/dd-trace-go/v2/ddtrace)\n - [APM Tracing Go Applications](https://docs.datadoghq.com/tracing/setup/go/)\n - [Continuous Go Profiler](https://docs.datadoghq.com/tracing/profiler/enabling/go)\n - [Application Security Monitoring](https://docs.datadoghq.com/security_platform/application_security/setup_and_configure/?code-lang=go)\n - If you are migrating from an older version of the tracer (e.g., 1.60.x) you may also find the [migration document](MIGRATING.md) we've put together helpful.\n\n### Go Support Policy\n\nDatadog APM for Go is built upon dependencies defined in specific versions of the host operating system, Go releases, and the Datadog Agent/API. dd-trace-go supports the two latest releases of Go, matching the [official Go policy](https://go.dev/doc/devel/release#policy). This library only officially supports [first class ports](https://go.dev/wiki/PortingPolicy) of Go.\n\n### Contributing\n\nBefore considering contributions to the project, please take a moment to read our brief [contribution guidelines](CONTRIBUTING.md).\n\n### Testing\n\nTests can be run locally using the Go toolset.\n\nTo run integration tests locally, you should set the `INTEGRATION` environment variable. The dependencies of the integration tests are best run via Docker. To get an idea about the versions and the set-up take a look at our [docker-compose config](./docker-compose.yaml).\n\nThe best way to run the entire test suite is using the [test.sh](./test.sh) script. You'll need Docker and docker-compose installed. If this is your first time running the tests, you should run `./test.sh -t` to install any missing test tools/dependencies. Run `./test.sh --all` to run all of the integration tests through the docker-compose environment. Run `./test.sh --help` for more options.\n\nIf you're only interested in the tests for a specific integration it can be useful to spin up just the required containers via docker-compose.\nFor example if you're running tests that need the `mysql` database container to be up:\n```shell\ndocker compose -f docker-compose.yaml -p dd-trace-go up -d mysql\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatadog%2Fdd-trace-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatadog%2Fdd-trace-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatadog%2Fdd-trace-go/lists"}