{"id":18947234,"url":"https://github.com/traceloop/openllmetry-ruby","last_synced_at":"2025-08-17T05:05:41.203Z","repository":{"id":205273039,"uuid":"713098227","full_name":"traceloop/openllmetry-ruby","owner":"traceloop","description":"Sister project to OpenLLMetry, but in Ruby. Open-source observability for your LLM application, based on OpenTelemetry","archived":false,"fork":false,"pushed_at":"2024-11-10T09:59:29.000Z","size":37,"stargazers_count":11,"open_issues_count":6,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-28T06:57:10.518Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/traceloop.png","metadata":{"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,"zenodo":null}},"created_at":"2023-11-01T20:45:10.000Z","updated_at":"2025-07-23T23:06:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"254025e9-ed76-4a63-b629-82ade0792327","html_url":"https://github.com/traceloop/openllmetry-ruby","commit_stats":null,"previous_names":["traceloop/openllmetry-ruby"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/traceloop/openllmetry-ruby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traceloop%2Fopenllmetry-ruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traceloop%2Fopenllmetry-ruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traceloop%2Fopenllmetry-ruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traceloop%2Fopenllmetry-ruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/traceloop","download_url":"https://codeload.github.com/traceloop/openllmetry-ruby/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/traceloop%2Fopenllmetry-ruby/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270807934,"owners_count":24649346,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-11-08T13:09:21.118Z","updated_at":"2025-08-17T05:05:41.180Z","avatar_url":"https://github.com/traceloop.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.traceloop.com/openllmetry#gh-light-mode-only\"\u003e\n\u003cimg width=\"600\" src=\"https://raw.githubusercontent.com/traceloop/openllmetry/main/img/logo-light.png\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.traceloop.com/openllmetry#gh-dark-mode-only\"\u003e\n\u003cimg width=\"600\" src=\"https://raw.githubusercontent.com/traceloop/openllmetry/main/img/logo-dark.png\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003eFor Ruby\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003cp align=\"center\"\u003eOpen-source observability for your LLM application\u003c/p\u003e\n\u003c/p\u003e\n\u003ch4 align=\"center\"\u003e\n    \u003ca href=\"https://traceloop.com/docs/openllmetry/getting-started-ruby\"\u003e\u003cstrong\u003eGet started »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n  \u003ca href=\"https://traceloop.com/slack\"\u003eSlack\u003c/a\u003e |\n  \u003ca href=\"https://traceloop.com/docs/openllmetry/introduction\"\u003eDocs\u003c/a\u003e |\n  \u003ca href=\"https://www.traceloop.com\"\u003eWebsite\u003c/a\u003e\n\u003c/h4\u003e\n\n\u003ch4 align=\"center\"\u003e\n   \u003ca href=\"https://github.com/traceloop/openllmetry-ruby/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-Apache 2.0-blue.svg\" alt=\"OpenLLMetry is released under the Apache-2.0 License\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.ycombinator.com/companies/traceloop\"\u003e\u003cimg src=\"https://img.shields.io/website?color=%23f26522\u0026down_message=Y%20Combinator\u0026label=Backed\u0026logo=ycombinator\u0026style=flat-square\u0026up_message=Y%20Combinator\u0026url=https%3A%2F%2Fwww.ycombinator.com\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/traceloop/openllmetry-ruby/blob/main/CONTRIBUTING.md\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/PRs-Welcome-brightgreen\" alt=\"PRs welcome!\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/traceloop/openllmetry-ruby/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/commit-activity/m/traceloop/openllmetry-ruby\" alt=\"git commit activity\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://traceloop.com/slack\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/chat-on%20Slack-blueviolet\" alt=\"Slack community channel\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/traceloopdev\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/follow-%40traceloopdev-1DA1F2?logo=twitter\u0026style=social\" alt=\"Traceloop Twitter\" /\u003e\n  \u003c/a\u003e\n\u003c/h4\u003e\n\nOpenLLMetry is a set of extensions built on top of [OpenTelemetry](https://opentelemetry.io/) that gives you complete observability over your LLM application. Because it uses OpenTelemetry under the hood, it can be connected to your existing observability solutions - Datadog, Honeycomb, and others.\n\nIt's built and maintained by Traceloop under the Apache 2.0 license.\n\nThe repo contains standard OpenTelemetry instrumentations for LLM providers and Vector DBs, as well as a Traceloop SDK that makes it easy to get started with OpenLLMetry, while still outputting standard OpenTelemetry data that can be connected to your observability stack.\nIf you already have OpenTelemetry instrumented, you can just add any of our instrumentations directly.\n\n## 🚀 Getting Started\n\nThe easiest way to get started is to use our SDK.\nFor a complete guide, go to our [docs](https://traceloop.com/docs/openllmetry/getting-started-ruby).\n\nInstall the SDK:\n\n```bash\ngem install traceloop-sdk\n```\n\nThen, to start instrumenting your code, just add this line to your code:\n\n```ruby\nrequire \"traceloop/sdk\"\n\ntraceloop = Traceloop::SDK::Traceloop.new\n```\n\nThat's it. You're now tracing your code with OpenLLMetry!\n\nNow, you need to decide where to export the traces to.\n\n## ⏫ Supported (and tested) destinations\n\n- [x] [Traceloop](https://www.traceloop.com/docs/openllmetry/integrations/traceloop)\n- [x] [Dynatrace](https://www.traceloop.com/docs/openllmetry/integrations/dynatrace)\n- [x] [Datadog](https://www.traceloop.com/docs/openllmetry/integrations/datadog)\n- [x] [New Relic](https://www.traceloop.com/docs/openllmetry/integrations/newrelic)\n- [x] [Honeycomb](https://www.traceloop.com/docs/openllmetry/integrations/honeycomb)\n- [x] [Grafana Tempo](https://www.traceloop.com/docs/openllmetry/integrations/grafana)\n- [x] [HyperDX](https://www.traceloop.com/docs/openllmetry/integrations/hyperdx)\n- [x] [SigNoz](https://www.traceloop.com/docs/openllmetry/integrations/signoz)\n- [x] [OpenTelemetry Collector](https://www.traceloop.com/docs/openllmetry/integrations/otel-collector)\n\nSee [our docs](https://traceloop.com/docs/openllmetry/integrations/exporting) for instructions on connecting to each one.\n\n## 🪗 What do we instrument?\n\nOpenLLMetry is in early-alpha exploratory stage, and we're still figuring out what to instrument.\nAs opposed to other languages, there aren't many official LLM libraries (yet?), so for now you'll have to manually log prompts:\n\n```ruby\nrequire \"openai\"\n\nclient = OpenAI::Client.new\n\ntraceloop.llm_call() do |tracer|\n  tracer.log_prompt(model=\"gpt-3.5-turbo\", user_prompt=\"Tell me a joke about OpenTelemetry\")\n  response = client.chat(\n    parameters: {\n      model: \"gpt-3.5-turbo\",\n      messages: [{ role: \"user\", content: \"Tell me a joke about OpenTelemetry\" }]\n    })\n  tracer.log_response(response)\nend\n```\n\n## 🌱 Contributing\n\nWhether it's big or small, we love contributions ❤️ Check out our guide to see how to [get started](https://traceloop.com/docs/openllmetry/contributing/overview).\n\nNot sure where to get started? You can:\n\n- [Book a free pairing session with one of our teammates](mailto:nir@traceloop.com?subject=Pairing%20session\u0026body=I'd%20like%20to%20do%20a%20pairing%20session!)!\n- Join our \u003ca href=\"https://join.slack.com/t/traceloopcommunity/shared_invite/zt-1plpfpm6r-zOHKI028VkpcWdobX65C~g\"\u003eSlack\u003c/a\u003e, and ask us any questions there.\n\n## 💚 Community \u0026 Support\n\n- [Slack](https://join.slack.com/t/traceloopcommunity/shared_invite/zt-1plpfpm6r-zOHKI028VkpcWdobX65C~g) (For live discussion with the community and the Traceloop team)\n- [GitHub Discussions](https://github.com/traceloop/openllmetry-ruby/discussions) (For help with building and deeper conversations about features)\n- [GitHub Issues](https://github.com/traceloop/openllmetry-ruby/issues) (For any bugs and errors you encounter using OpenLLMetry)\n- [Twitter](https://twitter.com/traceloopdev) (Get news fast)\n\n## 🙏 Special Thanks\n\nTo @patrickdebois, who [suggested the great name](https://x.com/patrickdebois/status/1695518950715473991?s=46\u0026t=zn2SOuJcSVq-Pe2Ysevzkg) we're now using for this repo!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraceloop%2Fopenllmetry-ruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftraceloop%2Fopenllmetry-ruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftraceloop%2Fopenllmetry-ruby/lists"}