Skip to content
/ petdog Public

Datadog event sender for elixir

Notifications You must be signed in to change notification settings

petlove/petdog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Petdog

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.

Como usar

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

About

Datadog event sender for elixir

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages