Packages

Web based metrics, monitoring, and observer.

Current section

Files

Jump to
wobserver_ng lib wobserver.ex
Raw

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_ng, :vsn) do
{:ok, v} -> List.to_string(v)
_ -> "Unknown"
end
%{
name: "Wobserver NG",
version: version,
description: "Web based metrics, monitoring, and observer.",
license: %{
name: "MIT",
url: "license"
},
links: [
%{
name: "Hex",
url: "https://hex.pm/packages/wobserver_ng"
},
%{
name: "Docs",
url: "https://hexdocs.pm/wobserver_ng/"
},
%{
name: "Github",
url: "https://github.com/liyu1981/wobserver-ng"
},
%{
name: "Original Project Github",
url: "https://github.com/shinyscorpion/wobserver"
}
]
}
end
end