{"id":13526691,"url":"https://github.com/sourcegraph/appdash","last_synced_at":"2026-01-11T01:04:12.927Z","repository":{"id":23626480,"uuid":"26996090","full_name":"sourcegraph/appdash","owner":"sourcegraph","description":"Application tracing system for Go, based on Google's Dapper.","archived":true,"fork":false,"pushed_at":"2021-10-28T08:06:29.000Z","size":2252,"stargazers_count":1711,"open_issues_count":26,"forks_count":135,"subscribers_count":147,"default_branch":"master","last_synced_at":"2025-12-18T22:08:43.053Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://sourcegraph.com","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/sourcegraph.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-22T10:47:38.000Z","updated_at":"2025-11-30T17:36:12.000Z","dependencies_parsed_at":"2022-08-22T02:50:13.870Z","dependency_job_id":null,"html_url":"https://github.com/sourcegraph/appdash","commit_stats":null,"previous_names":["sourcegraph/apptrace"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sourcegraph/appdash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcegraph%2Fappdash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcegraph%2Fappdash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcegraph%2Fappdash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcegraph%2Fappdash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcegraph","download_url":"https://codeload.github.com/sourcegraph/appdash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcegraph%2Fappdash/sbom","scorecard":{"id":839303,"data":{"date":"2025-08-11","repo":{"name":"github.com/sourcegraph/appdash","commit":"e2786a622600831a80a51efea169590903c10855"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.5,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":7,"reason":"Found 10/14 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-23T20:01:59.768Z","repository_id":23626480,"created_at":"2025-08-23T20:01:59.768Z","updated_at":"2025-08-23T20:01:59.768Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28264162,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T00:36:07.053Z","status":"ssl_error","status_checked_at":"2026-01-11T00:35:52.154Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-08-01T06:01:33.244Z","updated_at":"2026-01-11T01:04:12.894Z","avatar_url":"https://github.com/sourcegraph.png","language":"Go","readme":"# appdash (view on [Sourcegraph](https://sourcegraph.com/github.com/sourcegraph/appdash))\n\n\nAppdash is an application tracing system for Go, based on\n[Google's Dapper](http://research.google.com/pubs/pub36356.html) and\n[Twitter's Zipkin](https://zipkin.io/).\n\nAppdash allows you to trace the end-to-end handling of requests and\noperations in your application (for perf and debugging). It displays\ntimings and application-specific metadata for each step, and it\ndisplays a tree and timeline for each request and its children.\n\nTo use appdash, you must instrument your application with calls to an\nappdash recorder. You can record any type of event or\noperation. Recorders and schemas for HTTP (client and server) and SQL\nare provided, and you can write your own.\n\n\n## Usage\n\nTo install appdash, run:\n\n```\ngo get -u sourcegraph.com/sourcegraph/appdash/cmd/...\n```\n\nA standalone example using Negroni and Gorilla packages is available in the `examples/cmd/webapp` folder.\n\nA demo / pure `net/http` application (which is slightly more verbose) is also available at `cmd/appdash/example_app.go`, and it can be ran easily using `appdash demo` on the command line.\n\n## Community\n\nQuestions or comments? Join us [on #sourcegraph](https://invite.slack.golangbridge.org/) in the Gophers slack!\n\n## Development\n\nAppdash uses [vfsgen](https://github.com/shurcooL/vfsgen) to package HTML templates with the appdash binary for\ndistribution. This means that if you want to modify the template data in `traceapp/tmpl` you can first build using the `dev` build tag, which makes the template data be reloaded from disk live.\n\nAfter you're finished making changes to the templates, always run `go generate sourcegraph.com/sourcegraph/appdash/traceapp/tmpl` so that the `data_vfsdata.go` file is updated for normal Appdash users that aren't interested in modifying the template data.\n\n## Components\n\nAppdash follows the design and naming conventions of\n[Google's Dapper](http://research.google.com/pubs/pub36356.html). You\nshould read that paper if you are curious about why certain\narchitectural choices were made.\n\nThere are 4 main components/concepts in appdash:\n\n* [**Spans**](https://sourcegraph.com/sourcegraph.com/sourcegraph/appdash@master/.GoPackage/sourcegraph.com/sourcegraph/appdash/.def/SpanID):\n  A span refers to an operation and all of its children. For example,\n  an HTTP handler handles a request by calling other components in\n  your system, which in turn make various API and DB calls. The HTTP\n  handler's span includes all downstream operations and their\n  descendents; likewise, each downstream operation is its own span and\n  has its own descendents. In this way, appdash constructs a tree of\n  all of the operations that occur during the handling of the HTTP\n  request.\n* [**Event**](https://sourcegraph.com/sourcegraph.com/sourcegraph/appdash@master/.GoPackage/sourcegraph.com/sourcegraph/appdash/.def/Event):\n  Your application records the various operations it performs (in the\n  course of handling a request) as Events. Events can be arbitrary\n  messages or metadata, or they can be structured event types defined\n  by a Go type (such as an HTTP\n  [ServerEvent](https://sourcegraph.com/sourcegraph.com/sourcegraph/appdash@master/.GoPackage/sourcegraph.com/sourcegraph/appdash/httptrace/.def/ServerEvent)\n  or an\n  [SQLEvent](https://sourcegraph.com/sourcegraph.com/sourcegraph/appdash@master/.GoPackage/sourcegraph.com/sourcegraph/appdash/sqltrace/.def/SQLEvent)).\n* [**Recorder**](https://sourcegraph.com/sourcegraph.com/sourcegraph/appdash@master/.GoPackage/sourcegraph.com/sourcegraph/appdash/.def/Recorder):\n  Your application uses a Recorder to send events to a Collector (see\n  below). Each Recorder is associated with a particular span in the\n  tree of operations that are handling a particular request, and all\n  events sent via a Recorder are automatically associated with that\n  context.\n* [**Collector**](https://sourcegraph.com/sourcegraph.com/sourcegraph/appdash@master/.GoPackage/sourcegraph.com/sourcegraph/appdash/.def/Collector):\n  A Collector receives Annotations (which are the encoded form of\n  Events) sent by a Recorder. Typically, your application's Recorder\n  talks to a local Collector (created with\n  [NewRemoteCollector](https://sourcegraph.com/sourcegraph.com/sourcegraph/appdash@master/.GoPackage/sourcegraph.com/sourcegraph/appdash/.def/NewRemoteCollector). This\n  local Collector forwards data to a remote appdash server (created\n  with\n  [NewServer](https://sourcegraph.com/sourcegraph.com/sourcegraph/appdash@master/.GoPackage/sourcegraph.com/sourcegraph/appdash/.def/NewServer)\n  that combines traces from all of the services that compose your\n  application. The appdash server in turn runs a Collector that\n  listens on the network for this data, and it then stores what it\n  receives.\n\n\n## Language Support\n\nAppdash has clients available for Go, Python (see `python/` subdir) and Ruby (see https://github.com/bsm/appdash-rb).\n\n## OpenTracing Support\n\nAppdash supports the [OpenTracing](http://opentracing.io) API. Please see the\n`opentracing` subdir for the Go implementation, or see [the GoDoc](https://godoc.org/sourcegraph.com/sourcegraph/appdash/opentracing)\nfor API documentation.\n\n## Acknowledgments\n\n**appdash** was influenced by, and uses code from, Coda Hale's\n[lunk](https://github.com/codahale/lunk).\n","funding_links":[],"categories":["Misc","Go","Observability \u0026 Analysis","Tracing \u0026 Profiling"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcegraph%2Fappdash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcegraph%2Fappdash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcegraph%2Fappdash/lists"}