TelemetryMetricsZabbix (TelemetryMetricsZabbix v0.3.0) View Source
Provides a Zabbix format reporter and server for Telemetry.Metrics definitions.
Installation
The package can be installed by adding telemetry_metrics_zabbix
to your list of dependencies in mix.exs
:
def deps do
[
{:telemetry_metrics_zabbix, "~> 0.1"}
]
end
Configuration
Add approperiate config section to your config.exs
config :telemetry_metrics_zabbix, :config,
host: "zabbix.trapper.host",
port: 10051,
hostname: "monitored.host",
batch_window_size: 1000,
timestamping: true
Usage
Add TelemetryMetricsZabbix
to your application supervision tree and pass metrics as a param.
Example
metrics = [
Telemetry.Metrics.sum("http.request.latency", tags: [:host])
]
children = [
{TelemetryMetricsZabbix, metrics: metrics}
]
opts = [strategy: :one_for_one, name: MyApp]
Supervisor.start_link(children, opts)
Currently supported metrics
Telemetry.Metrics.Counter
: counts eventsTelemetry.Metrics.Sum
: sums events' valuesTelemetry.Metrics.Summary
: calculates events' values averageTelemetry.Metrics.LastValue
: returns all events' values with timestamps
Measuremet to zabbix value conversion
Measurements are aggregated by event name, measurement and tag values. All those parts are included as Zabbix Sender Protocol key. Tag values are treated as Zabbix key parameters sorted by tag key.
Example
with metric
Telemetry.Metrics.sum("http.request.latency", tags: [:host, :method])
and event
:telemetry.execute([:http, :request], %{latency: 200}, %{host: "localhost", method: "GET"})
Zabbix key will be http.request.latency["localhost","GET"]
Link to this section Summary
Functions
Returns a specification to start this module under a supervisor.
Link to this section Types
Specs
Link to this section Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.