{"id":15017950,"url":"https://github.com/uptrace/uptrace-go","last_synced_at":"2025-04-08T00:38:16.733Z","repository":{"id":37423797,"uuid":"266774313","full_name":"uptrace/uptrace-go","owner":"uptrace","description":"OpenTelemetry Go distribution for Uptrace","archived":false,"fork":false,"pushed_at":"2024-10-29T13:29:15.000Z","size":1765,"stargazers_count":97,"open_issues_count":2,"forks_count":21,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-29T16:04:14.194Z","etag":null,"topics":["distributed-tracing","go","golang","metrics","opentelemetry","tracing","uptrace"],"latest_commit_sha":null,"homepage":"https://uptrace.dev/get/opentelemetry-go.html","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uptrace.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-25T12:33:05.000Z","updated_at":"2024-10-29T13:29:17.000Z","dependencies_parsed_at":"2023-10-11T12:07:53.147Z","dependency_job_id":"8a0b10b0-5006-412e-b556-f7fcdb8eb9cb","html_url":"https://github.com/uptrace/uptrace-go","commit_stats":{"total_commits":457,"total_committers":11,"mean_commits":41.54545454545455,"dds":0.09846827133479208,"last_synced_commit":"40872d712b050674d01dc78dc958d974a09e03f5"},"previous_names":[],"tags_count":193,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uptrace%2Fuptrace-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uptrace%2Fuptrace-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uptrace%2Fuptrace-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uptrace%2Fuptrace-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uptrace","download_url":"https://codeload.github.com/uptrace/uptrace-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247755560,"owners_count":20990620,"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":["distributed-tracing","go","golang","metrics","opentelemetry","tracing","uptrace"],"created_at":"2024-09-24T19:51:14.454Z","updated_at":"2025-04-08T00:38:16.715Z","avatar_url":"https://github.com/uptrace.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Uptrace for Go\n\n![build workflow](https://github.com/uptrace/uptrace-go/actions/workflows/build.yml/badge.svg)\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/uptrace-go/uptrace-go)](https://pkg.go.dev/github.com/uptrace/uptrace-go/uptrace)\n[![Documentation](https://img.shields.io/badge/uptrace-documentation-informational)](https://uptrace.dev/get/opentelemetry-go)\n[![Chat](https://img.shields.io/badge/-telegram-red?color=white\u0026logo=telegram\u0026logoColor=black)](https://t.me/uptrace)\n\n\u003ca href=\"https://uptrace.dev/get/opentelemetry-go\"\u003e\n  \u003cimg src=\"https://uptrace.dev/devicon/go-original.svg\" height=\"200px\" /\u003e\n\u003c/a\u003e\n\n## Introduction\n\nuptrace-go is an OpenTelemery Go distribution configured to export\n[traces](https://uptrace.dev/opentelemetry/distributed-tracing) and\n[metrics](https://uptrace.dev/opentelemetry/metrics) to Uptrace.\n\n## Quickstart\n\nInstall uptrace-go:\n\n```bash\ngo get github.com/uptrace/uptrace-go\n```\n\nRun the [basic example](example/basic) below using the DSN from the Uptrace project settings page.\n\n```go\npackage main\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"go.opentelemetry.io/otel\"\n\t\"go.opentelemetry.io/otel/attribute\"\n\n\t\"github.com/uptrace/uptrace-go/uptrace\"\n)\n\nfunc main() {\n\tctx := context.Background()\n\n\t// Configure OpenTelemetry with sensible defaults.\n\tuptrace.ConfigureOpentelemetry(\n\t\t// copy your project DSN here or use UPTRACE_DSN env var\n\t\t// uptrace.WithDSN(\"https://\u003ctoken\u003e@uptrace.dev/\u003cproject_id\u003e\"),\n\n\t\tuptrace.WithServiceName(\"myservice\"),\n\t\tuptrace.WithServiceVersion(\"1.0.0\"),\n\t)\n\t// Send buffered spans and free resources.\n\tdefer uptrace.Shutdown(ctx)\n\n\t// Create a tracer. Usually, tracer is a global variable.\n\ttracer := otel.Tracer(\"app_or_package_name\")\n\n\t// Create a root span (a trace) to measure some operation.\n\tctx, main := tracer.Start(ctx, \"main-operation\")\n\t// End the span when the operation we are measuring is done.\n\tdefer main.End()\n\n\t// The passed ctx carries the parent span (main).\n\t// That is how OpenTelemetry manages span relations.\n\t_, child1 := tracer.Start(ctx, \"GET /posts/:id\")\n\tchild1.SetAttributes(\n\t\tattribute.String(\"http.method\", \"GET\"),\n\t\tattribute.String(\"http.route\", \"/posts/:id\"),\n\t\tattribute.String(\"http.url\", \"http://localhost:8080/posts/123\"),\n\t\tattribute.Int(\"http.status_code\", 200),\n\t)\n\tchild1.RecordError(errors.New(\"error1\"))\n\tchild1.End()\n\n\t_, child2 := tracer.Start(ctx, \"SELECT\")\n\tchild2.SetAttributes(\n\t\tattribute.String(\"db.system\", \"mysql\"),\n\t\tattribute.String(\"db.statement\", \"SELECT * FROM posts LIMIT 100\"),\n\t)\n\tchild2.End()\n\n\tfmt.Printf(\"trace: %s\\n\", uptrace.TraceURL(main))\n}\n```\n\n## Links\n\n- [Examples](example)\n- [Documentation](https://uptrace.dev/get/opentelemetry-go)\n- [OpenTelemetry Gin](https://uptrace.dev/guides/opentelemetry-gin)\n- [OpenTelemetry Golang GRPC](https://uptrace.dev/guides/opentelemetry-go-grpc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuptrace%2Fuptrace-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuptrace%2Fuptrace-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuptrace%2Fuptrace-go/lists"}