MetaPidRequest
MetaPidRequest provides an OTP application for keeping track of meta data associated with requests.
It exposes a simple %{pid => metadata} KV GenServer.
MetaPidRequest can be used to keep track of request ids and outbound service call times associated with a connection process.
It exposes a Plug to make managing this life cycle easier.
Installation
-
Add
meta_pid_requestto your list of dependencies inmix.exs:
```elixir
def deps do
{:meta_pid_request, git: "git@github.com:avvo/meta_pid_request.git"}
end
```-
Ensure
meta_pid_requestis started before your application:
```elixir
def application do
[applications: [:meta_pid_request]]
end
```- Use the Plug in any pipelined HTTP application to initialize entries in the registry
```elixir
# works best if included after Plug.RequestId
plug MetaPidRequest.Plug
```Use
# To register a new request to the registry
# (this is handled automatically by the plug)
MetaPidRequest.register_request(pid, request_id)
# To retrieve metadata for a pid
MetaPidRequest.fetch_metadata(pid)
# To add a service call time for a pid
MetaPidRequest.add_time(pid, service_name, duration)Development
To test:
mix test