Packages

Professional observability suite for Gleam: structured logging, metrics, and statistical benchmarking

Current section

Files

Jump to
viva_telemetry src viva_telemetry.erl
Raw

src/viva_telemetry.erl

-module(viva_telemetry).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/viva_telemetry.gleam").
-export([info/2, error/2, debug/2, warning/2, trace/2, version/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" viva_telemetry - Professional Observability Suite for Gleam\n"
"\n"
" Part of the VIVA ecosystem - for the Gleam community\n"
"\n"
" ## Modules\n"
" - `viva_telemetry/log` - Structured logging with handlers\n"
" - `viva_telemetry/metrics` - Counters, gauges, histograms (coming soon)\n"
" - `viva_telemetry/bench` - Statistical benchmarking (coming soon)\n"
"\n"
" ## Quick Start\n"
"\n"
" ```gleam\n"
" import viva_telemetry/log\n"
"\n"
" pub fn main() {\n"
" log.info(\"Hello from VIVA!\", [#(\"version\", \"0.1.0\")])\n"
" }\n"
" ```\n"
).
-file("src/viva_telemetry.gleam", 24).
?DOC(" Quick logging functions (re-exports)\n").
-spec info(binary(), list({binary(), binary()})) -> nil.
info(Msg, Fields) ->
viva_telemetry@log:info(Msg, Fields).
-file("src/viva_telemetry.gleam", 28).
-spec error(binary(), list({binary(), binary()})) -> nil.
error(Msg, Fields) ->
viva_telemetry@log:error(Msg, Fields).
-file("src/viva_telemetry.gleam", 32).
-spec debug(binary(), list({binary(), binary()})) -> nil.
debug(Msg, Fields) ->
viva_telemetry@log:debug(Msg, Fields).
-file("src/viva_telemetry.gleam", 36).
-spec warning(binary(), list({binary(), binary()})) -> nil.
warning(Msg, Fields) ->
viva_telemetry@log:warning(Msg, Fields).
-file("src/viva_telemetry.gleam", 40).
-spec trace(binary(), list({binary(), binary()})) -> nil.
trace(Msg, Fields) ->
viva_telemetry@log:trace(Msg, Fields).
-file("src/viva_telemetry.gleam", 64).
?DOC(" Get library version\n").
-spec version() -> binary().
version() ->
<<"0.1.0"/utf8>>.