Packages
A typed Elixir wrapper for the Docker CLI with struct-based commands and pipeline composition
Current section
Files
Jump to
Current section
Files
lib/docker/telemetry.ex
defmodule Docker.Telemetry do
@moduledoc """
Telemetry event definitions for docker_wrapper.
## Events
All events are prefixed with `[:docker_wrapper]`.
### Command execution
* `[:docker_wrapper, :command, :start]` -- emitted before a command runs
Measurements: `%{system_time: integer()}`
Metadata: `%{command: module(), args: [String.t()]}`
* `[:docker_wrapper, :command, :stop]` -- emitted after a command completes
Measurements: `%{system_time: integer()}`
Metadata: `%{command: module(), args: [String.t()], exit_code: non_neg_integer()}`
## Attaching handlers
:telemetry.attach(
"docker-logger",
[:docker_wrapper, :command, :stop],
fn event, measurements, metadata, _config ->
Logger.info("Docker [\#{inspect(metadata.command)}] exited \#{metadata.exit_code}")
end,
nil
)
"""
@doc """
Returns a list of all telemetry events emitted by this library.
"""
@spec events() :: [list(atom())]
def events do
[
[:docker_wrapper, :command, :start],
[:docker_wrapper, :command, :stop]
]
end
end