{"id":21178779,"url":"https://github.com/nfibrokerage/hummingbird","last_synced_at":"2025-07-09T22:31:42.118Z","repository":{"id":47203822,"uuid":"251648086","full_name":"NFIBrokerage/hummingbird","owner":"NFIBrokerage","description":"A generic Phoenix plug for automatically sending traces to honeycomb.io","archived":false,"fork":false,"pushed_at":"2024-03-18T18:51:04.000Z","size":256,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-06-30T02:48:46.994Z","etag":null,"topics":["library"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/NFIBrokerage.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":"SECURITY.md","support":null}},"created_at":"2020-03-31T15:34:14.000Z","updated_at":"2024-07-19T22:01:43.000Z","dependencies_parsed_at":"2022-09-06T07:02:23.375Z","dependency_job_id":null,"html_url":"https://github.com/NFIBrokerage/hummingbird","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/NFIBrokerage/hummingbird","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFIBrokerage%2Fhummingbird","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFIBrokerage%2Fhummingbird/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFIBrokerage%2Fhummingbird/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFIBrokerage%2Fhummingbird/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NFIBrokerage","download_url":"https://codeload.github.com/NFIBrokerage/hummingbird/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NFIBrokerage%2Fhummingbird/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264504605,"owners_count":23618829,"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":["library"],"created_at":"2024-11-20T17:26:23.589Z","updated_at":"2025-07-09T22:31:41.826Z","avatar_url":"https://github.com/NFIBrokerage.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hummingbird\n\nA plug to correlate events between services in a ✋ful lines of Elixir.\n\nGiven appropriate trace headers, ships an event for router and response calls.\n\n## Use Case\n For reasons, you may not have access to configure structured logging and log shipping.  If you can control your controller, this might help.  It's dangerous out there, take this.\n\n## To Use\n\n```elixir\ndefmodule YourAppWeb.YourController do\n  use YourAppWeb, :controller\n\n  plug Hummingbird, service_name: \"your_service_name\"\nend\n```\n\nand add the `Hummingbird.Telemetry` child to your supervision tree:\n\n```elixir\ndefmodule YouApp.Application do\n  # ..\n\n  def start(_type, _args) do\n    children = [\n      Hummingbird.Telemetry,\n      # ..\n    ]\n\n    Supervisor.start_link(children, strategy: :one_for_one, name: YourApp.Supervisor)\n  end\n\n  # ..\nend\n```\n\n## Configuration\n\n**Configure OpenCensus**\n\nIn your config.exs:\n\n```elixir\n# configure opencensus\nconfig :opencensus,\n  reporters: [{Opencensus.Honeycomb.Reporter, []}],\n  send_interval_ms: 1000\n```\n\n**Set the dataset per environment**\n\nIn your dev, prod, exs files:\n\n```elixir\n# configure write key per dataset/environment\n# we use environment variables to protect the secret. It doesn't matter how you\n# set the value.  Choose your own adventure.\n\nconfig :opencensus_honeycomb,\n  dataset: \"your_dataset_name_goes_here\",\n  write_key: \"${HONEYCOMB_WRITE_KEY}\"\n```\n\n## Assumptions\n\nCurrently, it looks for `x-b3-spanid` and `x-b3-traceid` headers on incoming request to create the trace.\n\n## Current Example\n\n![Image of Trace Waterfall](images/waterfall.png)\n\n## Thanks\n\nWraps around https://github.com/open-telemetry/opentelemetry-erlang\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfibrokerage%2Fhummingbird","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnfibrokerage%2Fhummingbird","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnfibrokerage%2Fhummingbird/lists"}