Tapper v0.1.1 Tapper.Application
Tapper main application; configures and starts application supervisor.
Add :tapper to your application’s mix.exs:
# Configuration for the OTP application.
#
# Type `mix help compile.app` for more information.
def application do
[mod: {MyApp, []},
applications: [
:tapper
# other applications
]]
end
Configuration
Looks for configuration under :tapper key:
| key | type | purpose |
|---|---|---|
system_id | String.t | This application’s id; used for service_name in default Endpoint used in annotations; default unknown |
ip | tuple | This application’s principle IPV4 or IPV6 address, as 4- or 8-tuple of ints; defaults to IP of first non-loopback interface, or {127.0.0.1} if none. |
reporter | atom | Module implementing Tapper.Reporter.Api to use for reporting spans, defaults to Tapper.Reporter.Console. |
All keys support the Phoenix-style {:system, var} format, to allow lookup from shell environment variables, e.g. {:system, "PORT"} to read PORT environment variable.
Example
In config.exs etc.:
config :tapper,
system_id: "my-cool-svc",
reporter: Tapper.Reporter.Zipkin,
port: {:system, "PORT"}
Summary
Functions
Called when an application is started
Functions
Called when an application is started.
This function is called when an the application is started using
Application.start/2 (and functions on top of that, such as
Application.ensure_started/2). This function should start the top-level
process of the application (which should be the top supervisor of the
application’s supervision tree if the application follows the OTP design
principles around supervision).
start_type defines how the application is started:
:normal- used if the startup is a normal startup or if the application is distributed and is started on the current node because of a failover from another mode and the application specification key:start_phasesis:undefined.{:takeover, node}- used if the application is distributed and is started on the current node because of a failover on the nodenode.{:failover, node}- used if the application is distributed and is started on the current node because of a failover on nodenode, and the application specification key:start_phasesis not:undefined.
start_args are the arguments passed to the application in the :mod
specification key (e.g., mod: {MyApp, [:my_args]}).
This function should either return {:ok, pid} or {:ok, pid, state} if
startup is successful. pid should be the PID of the top supervisor. state
can be an arbitrary term, and if omitted will default to []; if the
application is later stopped, state is passed to the stop/1 callback (see
the documentation for the c:stop/1 callback for more information).
use Application provides no default implementation for the start/2
callback.
Callback implementation for Application.start/2.