{"id":32166492,"url":"https://github.com/vptheron/dogmatix","last_synced_at":"2026-02-21T03:30:58.211Z","repository":{"id":52569700,"uuid":"361287330","full_name":"vptheron/dogmatix","owner":"vptheron","description":"A StatsD/DogStatsD client for Elixir","archived":false,"fork":false,"pushed_at":"2021-04-25T17:26:50.000Z","size":17,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-31T22:04:41.153Z","etag":null,"topics":["datadog","dogstatsd-client","elixir","statsd","statsd-client"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vptheron.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-24T23:24:43.000Z","updated_at":"2022-11-17T17:52:49.000Z","dependencies_parsed_at":"2022-08-29T22:12:38.796Z","dependency_job_id":null,"html_url":"https://github.com/vptheron/dogmatix","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/vptheron/dogmatix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vptheron%2Fdogmatix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vptheron%2Fdogmatix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vptheron%2Fdogmatix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vptheron%2Fdogmatix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vptheron","download_url":"https://codeload.github.com/vptheron/dogmatix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vptheron%2Fdogmatix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29672704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T03:11:15.450Z","status":"ssl_error","status_checked_at":"2026-02-21T03:10:34.920Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datadog","dogstatsd-client","elixir","statsd","statsd-client"],"created_at":"2025-10-21T15:06:30.526Z","updated_at":"2026-02-21T03:30:58.202Z","avatar_url":"https://github.com/vptheron.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dogmatix\n\n![](https://github.com/vptheron/dogmatix/workflows/CI/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/vptheron/dogmatix/badge.svg?branch=master)](https://coveralls.io/github/vptheron/dogmatix?branch=master)\n[![Hex.pm](https://img.shields.io/hexpm/v/dogmatix.svg)](https://hex.pm/packages/dogmatix)\n\n\u003e A StatsD/DogStatsD client for Elixir.\n\nDogmatix 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.\n\n## Features\n\nThis library is still in its early stages.  Currently, the main supported features are:\n\n  * Communication with an agent via UDP\n  * Support for all types of metrics (count, gauge, timer, histogram, set and distribution)\n  * Support for events and service checks\n  * Support for metric sampling\n  * Support for tagging\n  * Connection pooling\n  * Metric buffering\n\nSee the [documentation][documentation] for usage, configuration and implementation details.\n\n## Installation\n\nAdd the `:dogmatix` dependency to your `mix.exs` file:\n\n```elixir\ndef deps do\n  [\n    {:dogmatix, \"~\u003e 0.1\"}\n  ]\nend\n```\n\nThen run `mix deps.get` in your shell to fetch the new dependency.\n\n## Overview\n\nThe detailed documentation is available on [HexDocs][documentation].\n\nAn instance of the client can be started with `Dogmatix.start_link/4`:\n\n```elixir\n{:ok, pid} = Dogmatix.start_link(\"my_dogmatix\", \"localhost\", 8125, _opts = [])\n```\n\nThe 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.\n\nA few examples of sending data to the agent:\n\n```elixir\n# Increment a counter\nDogmatix.increment(\"my_dogmatix\", \"page.views\")\n\n# Set the value of a gauge\nDogmatix.gauge(\"my_dogmatix\", \"fuel.level\", 0.5)\n\n# Increment a counter with tags\nDogmatix.count(\"my_dogmatix\", \"users.online\", 42, tags: [\"country:USA\", \"app:mobile\"])\n\n# Sample a histogram 20% of the time\nDogmatix.histogram(\"my_dogmatix\", \"song.length\", 100, sample_rate: 0.2)\n\n# Send an event\nDogmatix.event(\"my_dogmatix\", %Event{title: \"Exception occurred\", text: \"Failed to parse CSV file\", alert_type: :warning}, tags: [\"error_type:input_file\"])\n\n# Send a service check\nDogmatix.service_check(\"my_dogmatix\", %ServiceCheck{name: \"DB Connection\", status: :warning, message: \"Timed out after 10s\"}, tags: [\"env:dev\"])\n```\n\nThe \"name-based\" API, while providing some flexibility, can be cumbersome.  A macro is provided to create custom client modules:\n\n```elixir\ndefmodule MyDogmatix do\n  use Dogmatix\nend\n\n{:ok, pid} = MyDogmatix.start_link(\"localhost\", 8125)\n\nMyDogmatix.count(\"users.online\", 42)\n```\n\n## Features still in the work\n\n* Support for Unix Domain Socket connections\n* Client-side aggregation for some metrics (this is different from metric buffering which is already supported)\n\n## License\n\nCopyright 2021 Vincent Theron\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n[datadog]: https://docs.datadoghq.com/getting_started/agent/\n[documentation]: https://hexdocs.pm/dogmatix\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvptheron%2Fdogmatix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvptheron%2Fdogmatix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvptheron%2Fdogmatix/lists"}