KO
|
EN
gitlite — search
Search
#javascript
#python
#hacktoberfest
#react
#ai
#typescript
#llm
#go
#golang
#android
#machine-learning
#rust
#deep-learning
#linux
dogmatix
★ 9
Open GitHub ↗
A StatsD/DogStatsD client for Elixir
Download README (.md)
Explore Similar Repositories
Upload-Multiple-Image-
:
Upload multile images to server
AscTrio
:
AscTrio 是基于 Pytest 开发的接口自动化测试框架
GetSimple-SmtpPlugin-CSRF2RCE
:
GetSimple CMS My SMTP Contact Plugin <= v1.1.1 - CSRF to RCE
DEX
:
The smart contracts
sis-site
:
Website sources for the Apache SIS website
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
dogmatix
?
Download (.md)
# Dogmatix  [](https://coveralls.io/github/vptheron/dogmatix?branch=master) [](https://hex.pm/packages/dogmatix) > A StatsD/DogStatsD client for Elixir. Dogmatix is a StatsD/DogStatsD client build in Elixir. It is primarily designed to support the protocol and extensions provided by the [DataDog agent][datadog], but works with any StatsD-compatible server. ## Features This library is still in its early stages. Currently, the main supported features are: * Communication with an agent via UDP * Support for all types of metrics (count, gauge, timer, histogram, set and distribution) * Support for events and service checks * Support for metric sampling * Support for tagging * Connection pooling * Metric buffering See the [documentation][documentation] for usage, configuration and implementation details. ## Installation Add the `:dogmatix` dependency to your `mix.exs` file: ```elixir def deps do [ {:dogmatix, "~> 0.1"} ] end ``` Then run `mix deps.get` in your shell to fetch the new dependency. ## Overview The detailed documentation is available on [HexDocs][documentation]. An instance of the client can be started with `Dogmatix.start_link/4`: ```elixir {:ok, pid} = Dogmatix.start_link("my_dogmatix", "localhost", 8125, _opts = []) ``` The returned pid can be used to incorporate in a supervision tree, the provided name (`"my_dogmatix"`) is used to identify the instance and query the Dogmatix API. A few examples of sending data to the agent: ```elixir # Increment a counter Dogmatix.increment("my_dogmatix", "page.views") # Set the value of a gauge Dogmatix.gauge("my_dogmatix", "fuel.level", 0.5) # Increment a counter with tags Dogmatix.count("my_dogmatix", "users.online", 42, tags: ["country:USA", "app:mobile"]) # Sample a histogram 20% of the time Dogmatix.histogram("my_dogmatix", "song.length", 100, sample_rate: 0.2) # Send an event Dogmatix.event("my_dogmatix", %Event{title: "Exception occurred", text: "Failed to parse CSV file", alert_type: :warning}, tags: ["error_type:input_file"]) # Send a service check Dogmatix.service_check("my_dogmatix", %ServiceCheck{name: "DB Connection", status: :warning, message: "Timed out after 10s"}, tags: ["env:dev"]) ``` The "name-based" API, while providing some flexibility, can be cumbersome. A macro is provided to create custom client modules: ```elixir defmodule MyDogmatix do use Dogmatix end {:ok, pid} = MyDogmatix.start_link("localhost", 8125) MyDogmatix.count("users.online", 42) ``` ## Features still in the work * Support for Unix Domain Socket connections * Client-side aggregation for some metrics (this is different from metric buffering which is already supported) ## License Copyright 2021 Vincent Theron Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. [datadog]: https://docs.datadoghq.com/getting_started/agent/ [documentation]: https://hexdocs.pm/dogmatix