Packages
wobserverfork
0.1.9
Web based metrics, monitoring, and observer (a temporary fork, not recommended for public use)
Current section
Files
Jump to
Current section
Files
lib/wobserver.ex
defmodule Wobserver do
@moduledoc """
Web based metrics, monitoring, and observer.
"""
alias Wobserver.Page
alias Wobserver.Util.Metrics
@doc ~S"""
Registers external application to integrate with `:wobserver`.
The registration is done by passing a `type` and the `data` to register.
The `data` is usually passed on to a specialized function.
The following types can be registered:
- `:page`, see: `Wobserver.Page.register/1`.
- `:metric`, see: `Wobserver.Util.Metrics.register/1`.
"""
@spec register(type :: atom, data :: any) :: boolean
def register(type, data)
def register(:page, page), do: Page.register(page)
def register(:metric, metric), do: Metrics.register(metric)
@doc ~S"""
Information about Wobserver.
Returns a map containing:
- `name`, name of `:wobserver`.
- `version`, used `:wobserver` version.
- `description`, description of `:wobserver`.
- `license`, `:wobserver` license name and link.
- `links`, list of name + url for `:wobserver` related information.
"""
@spec about :: map
def about do
version =
case :application.get_key(:wobserver, :vsn) do
{:ok, v} -> List.to_string v
_ -> "Unknown"
end
%{
name: "Wobserver",
version: version,
description: "Web based metrics, monitoring, and observer.",
license: %{
name: "MIT",
url: "license",
},
links: [
%{
name: "Hex",
url: "https://hex.pm/packages/wobserver",
},
%{
name: "Docs",
url: "https://hexdocs.pm/wobserver/",
},
%{
name: "Github",
url: "https://github.com/shinyscorpion/wobserver",
},
],
}
end
end