Packages

Elixir Tracing Framework.

Current section

Files

Jump to
tracer lib tracer.ex
Raw

lib/tracer.ex

defmodule Tracer do
@moduledoc """
Tracer API
"""
alias Tracer.{Server, Probe, Tool}
import Tracer.Macros
defmacro __using__(_opts) do
quote do
import Tracer
import Tracer.Matcher
alias Tracer.{Tool, Probe, Clause}
alias Tracer.Tool.{Display, Count, CallSeq, Duration}
:ok
end
end
delegate :start_server, to: Server, as: :start
delegate :stop_server, to: Server, as: :stop
delegate :stop, to: Server, as: :stop_tool
delegate_1 :set_tool, to: Server, as: :set_tool
def probe(params) do
Probe.new(params)
end
def probe(type, params) do
Probe.new([type: type] ++ params)
end
def tool(type, params) do
Tool.new(type, params)
end
def run(%{"__tool__": _} = tool) do
Server.start_tool(tool)
end
def run(type, params) do
Server.start_tool(tool(type, params))
end
end