kantox / gelato

Telemetry + Elastic Search Helper

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gelato Gelato

An opinionated logger backend helper library to log events with telemetry attached.

Installation

def deps do
  [
    {:gelato, "~> 0.2"}
  ]
end

Usage

# sends the single event with attached process info to Elastic server
Logger.info "users", name: "John", reference: "U-123456789"

# sends the “in” and “out” events to Elastic server, with some collected
#   stats in “out” events; discards process info
Gelato.bench :info, "users", name: "John", reference: "U-123456789", process_info: "N/A"

Besides Gelato.bench/4, this library provides Gelato.defdelegatelog/2 macro that might be used for mastering interfaces to internal codepieces featured by telemetry log.

Once delegated, the function is being wrapped into Gelato.bench/4 call. The following example is taken from tests.

defmodule Gelato.Test.DDL.Helper do
  @moduledoc false
  def yo(arg), do: {:ok, arg}
end

defmodule Gelato.Test.DDL.Test do
  @moduledoc false
  use Gelato

  defdelegatelog yo_test(arg),
                 to: Gelato.Test.DDL.Helper,
                 as: :yo,
                 level: :warn,
                 tag: "app",
                 entity: :ddl
end

Documentation.

About

Telemetry + Elastic Search Helper


Languages

Language:Elixir 100.0%