Tesla.StatsD
Tesla.StatsD
is an instrumenting middleware for tesla
HTTP client that submits metrics to StatsD (includes support for Datadog tags).
Documentation can be found at https://hexdocs.pm/tesla_statsd.
description
Description
This middleware sends histogram or gauge stats to Datadog for every HTTP request. The sent value is response time in milliseconds.
Metric name is configurable and defaults to "http.request". The middleware also sends tags:
http_status
- HTTP status code.http_status_family
(2xx, 4xx, 5xx) - HTTP status familyhttp_host
- The host request has been sent to
Tags have "http" in their names to avoid collisions with default tags sent by Datadog StatsD agent.
installation
Installation
The package can be installed by adding tesla_statsd
to your list of dependencies in mix.exs
:
tesla-1-x
Tesla 1.x
def deps do
[
{:tesla_statsd, "~> 0.3.0"}
]
end
tesla-0-9
Tesla 0.9
def deps do
[
{:tesla_statsd, "~> 0.1.0"}
]
end
configuration
Configuration
:backend
- StatsD backend module. Defaults toTesla.StatsD.Backend.ExStatsD
. A backend must implementTesla.StatsD.Backend
behaviour.Statix
backends are supported by default, just provide a module name that usesStatix
(use Statix
).:metric
- Metric name. Can be ether string or function(Tesla.Env.t -> String.t)
.:metric_type
- Metric type. Can be:histogram
(default) or:gauge
. See Datadog documentation.:tags
- List of additional tags. Can be either list or function(Tesla.Env.t -> [String.t])
.:sample_rate
- Limit how often the metric is collected (default: 1)
usage-with-tesla
Usage with Tesla
defmodule AccountsClient do
use Tesla
plug Tesla.StatsD, metric: "external.request", tags: ["service:accounts"]
end
license
License
MIT License, Copyright (c) 2017 SaleMove