{"id":32173230,"url":"https://github.com/pryin-io/pryin","last_synced_at":"2026-02-21T03:31:22.730Z","repository":{"id":57537743,"uuid":"87229763","full_name":"pryin-io/pryin","owner":"pryin-io","description":"PryIn is an Application Performance Monitoring platform for your Elixir/Phoenix application.","archived":false,"fork":false,"pushed_at":"2018-07-15T06:06:18.000Z","size":183,"stargazers_count":27,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-01T21:18:19.823Z","etag":null,"topics":["apm","elixir-lang","elixir-phoenix","monitoring","performance-monitoring","phoenix","phoenix-framework","profiler"],"latest_commit_sha":null,"homepage":"https://pryin.io","language":"Elixir","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/pryin-io.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":"2017-04-04T20:03:58.000Z","updated_at":"2023-11-07T10:29:08.000Z","dependencies_parsed_at":"2022-09-07T17:34:55.254Z","dependency_job_id":null,"html_url":"https://github.com/pryin-io/pryin","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/pryin-io/pryin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pryin-io%2Fpryin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pryin-io%2Fpryin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pryin-io%2Fpryin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pryin-io%2Fpryin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pryin-io","download_url":"https://codeload.github.com/pryin-io/pryin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pryin-io%2Fpryin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29672704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T03:11:15.450Z","status":"ssl_error","status_checked_at":"2026-02-21T03:10:34.920Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["apm","elixir-lang","elixir-phoenix","monitoring","performance-monitoring","phoenix","phoenix-framework","profiler"],"created_at":"2025-10-21T18:51:01.630Z","updated_at":"2026-02-21T03:31:22.717Z","avatar_url":"https://github.com/pryin-io.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PryIn\n\n[![Build Status](https://travis-ci.org/pryin-io/pryin.svg?branch=master)](https://travis-ci.org/pryin-io/pryin)\n[![Hex pm](http://img.shields.io/hexpm/v/pryin.svg?style=flat)](https://hex.pm/packages/pryin)\n\n[PryIn](https://pryin.io) is a performance metrics platform for your Phoenix application.\n\n## Installation\n\n  1. Sign up for a [PryIn](https://pryin.io) account and create a new project there.\n  2. Add `pryin` to your dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:pryin, \"~\u003e 1.0\"}\n  ]\nend\n```\n\n  3. If you define an applications list in your `mix.exs`, add `:pryin` there, too:\n```elixir\ndef applications do\n  [..., :pryin]\nend\n```\n\n  4. Add general configuration for the pryin app in `config/config.exs`:\n\n```elixir\nconfig :pryin,\n  otp_app: :my_app,\n  api_key: \"your_secret_api_key\",\n  enabled: false,\n  env: :dev\n\nconfig :my_app, MyApp.Repo,\n  loggers: [PryIn.EctoLogger, Ecto.LogEntry]\n\nconfig :my_app, MyApp.Endpoint,\n  instrumenters: [PryIn.Instrumenter]\n```\n\n\n  5. Enable PryIn in the environments you want to collect metrics for.\n    If you want to collect data for the production environment, for example,\n    add the following to `config/prod.exs`:\n\n```elixir\nconfig :pryin,\n  enabled: true,\n  env: :prod\n```\n\n  Possible values for `env` are `:dev`, `:staging` or `:prod`.\n\n  6. Add the PryIn plug to your application's endpoint (`lib/my_app/endpoint.ex`) just before the router plug:\n\n\n```elixir\n...\nplug PryIn.Plug\nplug MyApp.Router\n```\n\n\n  7. To collect data about Ecto queries, view renderings or custom instrumentation in your channel joins,\n  you need to join the transport's trace first:\n```elixir\ndef join(\"rooms:lobby\", message, socket) do\n  PryIn.join_trace(socket.transport_pid, self())\n  Repo.all(...)\n  ...\n```\n\nThis is only neccessary in your channel join functions,\nbecause the channel process does not exist yet when tracing starts.\n\n## Configuration\n\nAbove steps will give you a basic installation with standard configuration.\nIf you want to tweak some settings, here are all the possible configuration options:\n\n| key | default | description |\n|-----|---------|-------------|\n| `:otp_app` | - | The name of your application. Mainly used to get your application's version. |\n| `:api_key` | - | Your project's api key. You can find this on PryIn under \"Settings\". |\n| `:enabled` | - | Whether to forward data to PryIn. Should be set to `true` in all enviroments you want to collect data in. |\n| `:env` | - | Name of the current environment. Can be one of `:dev`, `:staging` or `:prod`. |\n| `:forward_interval` | 1000 | Duration of forward intervals in milliseconds. During the interval, data is collected and stored locally. At the end of the interval, the data is then forwared to PryIn. |\n| `:max_interactions_for_interval` | 100 | Maximum number of traces stored locally during each forward interval. If this limit is reached, new traces will be dropped until data is sent to PryIn and the store is cleared. |\n| `:max_tracked_metric_values_for_interval` | 100 | Maximum number of Tracked Metric values stored locally during each forward interval. If this limit is reached, new values will be dropped until data is sent to PryIn and the store is cleared. |\n| `:node_name` | `node()` | Name of the current node. BEAM metrics will be grouped under this value. |\n\n## Further reading\n\nYou can find more details (about background jobs, custom instrumentation, and a lot more), in PryIn's [FAQs](https://pryin.zendesk.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpryin-io%2Fpryin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpryin-io%2Fpryin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpryin-io%2Fpryin/lists"}