Petdog é um facilitador para envios de eventos para o datadog.
Criado em cima do GenServer, o Petdog roda em processo separado da aplicação e as chamadas são feitas de forma assincrona com o mínimo de impacto na aplicação.
Adicione a lib no seu projeto
def deps do
[
{:petdog, github: "petlove/petdog"}
]
end
Customize as configurações se necessário
config :petdog,
exclude_envs: [:test]
Segue a lista de valores configuráveis e seus padrões.
Nome | Descrição | Valores Padrões |
---|---|---|
api_key |
(required) Datadog API Key | {:system, "DATADOG_API_KEY"} |
environment_name |
(required) Nome do ambiente que o app está rodando. (:prod, :dev...) | {:system, "APP_ENV"} |
exclude_envs |
Lista de ambientes no qual o Petdog não enviara eventos | [:dev, :test] |
host |
Endereço da api do honeybadger (depende da região da conta datadog) | https://api.us5.datadoghq.com |
hackney_opts |
Opções repassadas para o hackney | [] |
Defina seu Datadog Sender
defmodule MyApp.DatadogSender do
use Petdog, otp_app: :my_app
end
Inicie o GenServer no supervisor da sua aplicação
defmodule MyApp.Application do
use Application
@impl true
def start(_type, _args) do
children = [
# ...
MyApp.DatadogSender
]
#...
end
#...
end
Dispare eventos utilizando o sender criado anteriormente:
Exemplo:
defmodule MyApp.Accounts do
alias MyApp.DatadogSender
def create_user(attrs) do
# create user funcion
DatadogSender.send_event(%{title: "Usuário Criado"})
end
end
Para saber quais parametros você pode estar utilizando no send_event, confira a documentação do Datadog: https://docs.datadoghq.com/api/latest/events/#post-an-event