{"id":17483416,"url":"https://github.com/logflare/telemetry_metrics_logflare","last_synced_at":"2025-08-24T22:25:25.119Z","repository":{"id":57517710,"uuid":"303402793","full_name":"Logflare/telemetry_metrics_logflare","owner":"Logflare","description":"Easily ship Telemetry metrics events to Logflare from your Erlang or Elixir app.","archived":false,"fork":false,"pushed_at":"2020-10-13T20:49:24.000Z","size":42,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-24T03:17:20.790Z","etag":null,"topics":["elixir","erlang","logging","logs","metrics","o11y","observability"],"latest_commit_sha":null,"homepage":"https://logflare.app","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Logflare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-12T13:35:48.000Z","updated_at":"2023-10-26T23:07:51.000Z","dependencies_parsed_at":"2022-09-26T18:01:31.086Z","dependency_job_id":null,"html_url":"https://github.com/Logflare/telemetry_metrics_logflare","commit_stats":null,"previous_names":["logflare/logflare_telemetry_ex"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logflare%2Ftelemetry_metrics_logflare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logflare%2Ftelemetry_metrics_logflare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logflare%2Ftelemetry_metrics_logflare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Logflare%2Ftelemetry_metrics_logflare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Logflare","download_url":"https://codeload.github.com/Logflare/telemetry_metrics_logflare/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241726741,"owners_count":20009966,"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":["elixir","erlang","logging","logs","metrics","o11y","observability"],"created_at":"2024-10-19T00:04:54.376Z","updated_at":"2025-03-03T19:30:40.929Z","avatar_url":"https://github.com/Logflare.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TelemetryMetricsLogflare\n\n`TelemetryMetricsLogflare` makes it easy to ship individual `Telemetry` metrics events to [Logflare](https://logflare.app). Easily search, dashboard and drill down into your application metrics with Logflare.\n\nTelemetryMetricsLogflare does not aggregate metrics in your app. It sends individual events and metadata to Logflare so you can dynamically query your metrics without having to create 10s, 1000s or millions of separate metrics. This lets you drill down to the actual events which make up an aggregation and lets you do dynamic aggregation on historical data.\n\n## Example\n\n### Ecto\nGive me the 99th percentile total query time of queries from the `properties` table.\n\nLogflare query: `m.ecto.source:\"properties\" c:p99(m.refinder.repo.query.every.total_time) c:group_by(t::minute)`\n\n![Ecto TelemetryMetricsLogflare example](https://p195.p4.n0.cdn.getcloudapp.com/items/YEuyQpQY/Screen%20Shot%202020-10-13%20at%201.27.03%20PM.png?v=0a731c4ef30658613f8743e54f2351ea)\n\n## Supported Metrics\n\n### TelemetryPoller\n- [x] `[vm, memory]`\n- [x] `[vm, total_run_queue_lengths]`\n- [x] `[vm, system_counts]`\n\n### Broadway\nhttps://hexdocs.pm/broadway/Broadway.html#module-telemetry\n\n- [ ] `[:broadway, :processor, :start]`\n- [ ] `[:broadway, :processor, :stop]`\n- [ ] `[:broadway, :processor, :message, :start]`\n- [ ] `[:broadway, :processor, :message, :stop]`\n- [ ] `[:broadway, :processor, :message, :exception]`\n- [ ] `[:broadway, :consumer, :start]`\n- [ ] `[:broadway, :consumer, :stop]`\n- [ ] `[:broadway, :batcher, :start]`\n- [ ] `[:broadway, :batcher, :stop]`\n\n### Phoenix\nhttps://hexdocs.pm/phoenix/Phoenix.Logger.html#module-instrumentation\n\n\n- [ ] `[:phoenix, :endpoint, :start]`\n- [x] `[:phoenix, :endpoint, :stop]`\n- [ ] `[:phoenix, :router_dispatch, :start]`\n- [ ] `[:phoenix, :router_dispatch, :exception]`\n- [ ] `[:phoenix, :router_dispatch, :stop]`\n- [ ] `[:phoenix, :error_rendered]`\n- [ ] `[:phoenix, :socket_connected]`\n- [ ] `[:phoenix, :channel_joined]`\n- [ ] `[:phoenix, :channel_handled_in]`\n- [ ] `[:phoenix, :live_view, :mount, :start]`\n- [ ] `[:phoenix, :live_view, :mount, :stop]`\n- [ ] `[:phoenix, :live_view, :mount, :exception]`\n- [ ] `[:phoenix, :live_view, :handle_params, :start]`\n- [ ] `[:phoenix, :live_view, :handle_params, :stop]`\n- [ ] `[:phoenix, :live_view, :handle_params, :exception]`\n- [ ] `[:phoenix, :live_view, :handle_event, :start]`\n- [ ] `[:phoenix, :live_view, :handle_event, :stop]`\n- [ ] `[:phoenix, :live_view, :handle_event, :exception]`\n- [ ] `[:phoenix, :live_component, :handle_event, :start]`\n- [ ] `[:phoenix, :live_component, :handle_event, :stop]`\n- [ ] `[:phoenix, :live_component, :handle_event, :exception]`\n\n### Ecto\nhttps://hexdocs.pm/ecto/Ecto.Repo.html#module-telemetry-events\n\n- [ ] `[:ecto, :repo, :init]`\n- [x] `[:my_app, :repo, :query]`\n\n### Oban\nhttps://hexdocs.pm/oban/Oban.Telemetry.html\n\n- [ ] `[:oban, :job, :start]`\n- [ ] `[:oban, :job, :stop]`\n- [ ] `[:oban, :job, :exception]`\n\n ### Plug\n https://hexdocs.pm/plug/Plug.Telemetry.html\n\n - [ ] `[:my, :plug, :start]`\n - [ ] `[:my, :plug, :stop]`\n\n ### Tesla\n https://hexdocs.pm/tesla/Tesla.Middleware.Telemetry.html\n\n - [ ] `[:tesla, :request, :start]`\n - [ ] `[:tesla, :request, :stop]`\n - [ ] `[:tesla, :request, :exception]`\n\n## Configuration \n\nIn your config.exs: \n\n```elixir\nconfig :telemetry_metrics_logflare,\n  ecto: [applications: :your_app],\n  url: \"https://api.logflare.app\",\n  api_key: \"YOUR_INGEST_API_KEY\",\n  source_id: \"YOUR_SOURCE_ID\",\n  max_batch_size: 5,\n  tick_interval: 1_000\n```\n\n## Installation\n\nIf [available in Hex](https://hex.pm/docs/publish), the package can be installed\nby adding `telemetry_metrics_logflare` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [\n    {:telemetry_metrics_logflare, \"~\u003e 0.1.0\"}\n  ]\nend\n```\n\nDocumentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)\nand published on [HexDocs](https://hexdocs.pm). Once published, the docs can\nbe found at [https://hexdocs.pm/telemetry_metrics_logflare](https://hexdocs.pm/telemetry_metrics_logflare).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogflare%2Ftelemetry_metrics_logflare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flogflare%2Ftelemetry_metrics_logflare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flogflare%2Ftelemetry_metrics_logflare/lists"}