Current section

Files

Jump to
pryin lib pryin.ex
Raw

lib/pryin.ex

defmodule PryIn do
for file <- Path.wildcard("lib/proto/*.proto") do
@external_resource file
end
use Protobuf, from: Path.wildcard("lib/proto/*.proto")
use Application
@moduledoc """
PryIn is a performance metrics platform for your Phoenix application.
This is the main entry point for the client library.
It starts an InteractionStore (which holds a list of interaction (e.g. web request) metrics)
and a InteractionForwarder (which polls the InteractionStore for metrics and forwards them to the api).
"""
def start(_type, _args) do
import Supervisor.Spec, warn: false
children = [
:hackney_pool.child_spec(:pryin_pool, [timeout: 60_000, max_connections: 5]),
worker(PryIn.InteractionStore, []),
worker(PryIn.InteractionForwarder, []),
worker(PryIn.SystemMetricsCollector, []),
]
opts = [strategy: :rest_for_one, name: PryIn.Supervisor]
Supervisor.start_link(children, opts)
end
end