{"id":13489881,"url":"https://github.com/go-gorm/opentelemetry","last_synced_at":"2025-04-05T10:07:23.333Z","repository":{"id":48181512,"uuid":"511351690","full_name":"go-gorm/opentelemetry","owner":"go-gorm","description":"opentelemetry for gorm","archived":false,"fork":false,"pushed_at":"2025-03-17T14:43:16.000Z","size":504,"stargazers_count":107,"open_issues_count":6,"forks_count":24,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-29T09:08:25.589Z","etag":null,"topics":["gorm","logger","metrics","opentelemetry","trace"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/go-gorm.png","metadata":{"funding":{"github":["jinzhu"],"patreon":"jinzhu","open_collective":"gorm"},"files":{"readme":"README.md","changelog":null,"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":"2022-07-07T02:04:30.000Z","updated_at":"2025-03-17T15:14:01.000Z","dependencies_parsed_at":"2024-01-14T04:32:17.248Z","dependency_job_id":"c7fdb4c1-37b4-4deb-ae8e-1870bdbfb908","html_url":"https://github.com/go-gorm/opentelemetry","commit_stats":{"total_commits":28,"total_committers":9,"mean_commits":3.111111111111111,"dds":0.5,"last_synced_commit":"f8f117c45a527a0942c6bac8d2259fdeaef57b09"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-gorm%2Fopentelemetry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-gorm%2Fopentelemetry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-gorm%2Fopentelemetry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-gorm%2Fopentelemetry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/go-gorm","download_url":"https://codeload.github.com/go-gorm/opentelemetry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247318744,"owners_count":20919484,"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":["gorm","logger","metrics","opentelemetry","trace"],"created_at":"2024-07-31T19:00:37.104Z","updated_at":"2025-04-05T10:07:23.302Z","avatar_url":"https://github.com/go-gorm.png","language":"Go","funding_links":["https://github.com/sponsors/jinzhu","https://patreon.com/jinzhu","https://opencollective.com/gorm"],"categories":["Go"],"sub_categories":[],"readme":"# opentelemetry\n[Opentelemetry](https://opentelemetry.io/) for [gorm](https://github.com/go-gorm/gorm)\n## Feature \n### Tracing \n  - support tracing gorm by Hook `Create` `Query` `Delete` `Update` `Row` `Raw` \n### Metrics \n  - Collect DB Status\n### Logging\n  - Use logrus replace gorm default logger\n  - Use hook to report span message\n### Provider\n  - Out-of-the-box default opentelemetry provider\n  - Support setting via environment variables\n\n## How to Use ?\n### Set logger\n~~~go\npackage main\n\nimport(\n\t\"gorm.io/gorm/logger\"\n\t\"gorm.io/plugin/opentelemetry/logging/logrus\"\n)\n\nfunc init(){\n\tlogger := logger.New(\n\t\tlogrus.NewWriter(),\n\t\tlogger.Config{\n\t\t\tSlowThreshold: time.Millisecond,\n\t\t\tLogLevel:      logger.Warn,\n\t\t\tColorful:      false,\n\t\t},\n\t)\n\tdb, err := gorm.Open(sqlite.Open(\"file::memory:?cache=shared\"),\u0026gorm.Config{Logger: logger})\n}\n~~~\n### Set tracing and metrics\n\n~~~go\npackage main\n\nimport(\n\t\"gorm.io/plugin/opentelemetry/tracing\"\n)\n\nfunc init(){\n\n\tdb, err := gorm.Open(sqlite.Open(\"file::memory:?cache=shared\"), \u0026gorm.Config{})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := db.Use(tracing.NewPlugin()); err != nil {\n\t\tpanic(err)\n\t}\n}\n~~~\n\n### Set only tracing\n~~~go\npackage main\n\nimport(\n\t\"gorm.io/plugin/opentelemetry/tracing\"\n)\n\nfunc init(){\n\n\tdb, err := gorm.Open(sqlite.Open(\"file::memory:?cache=shared\"), \u0026gorm.Config{})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tif err := db.Use(tracing.NewPlugin(tracing.WithoutMetrics())); err != nil {\n\t\tpanic(err)\n\t}\n}\n~~~\n\n\n\n### More info\nSee [examples](examples/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-gorm%2Fopentelemetry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgo-gorm%2Fopentelemetry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-gorm%2Fopentelemetry/lists"}