Packages
prom_ex
1.12.0
1.12.0
1.11.0
1.10.0
1.9.0
1.8.0
1.7.1
1.7.0
retired
1.6.0
1.5.0
1.4.1
1.4.0
1.3.0
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.1
1.0.0
0.1.15-beta
0.1.14-beta
0.1.13-beta
0.1.12-beta
0.1.11-alpha
0.1.10-alpha
0.1.9-alpha
0.1.8-alpha
0.1.7-alpha
0.1.6-alpha
0.1.5-alpha
0.1.4-alpha
0.1.3-alpha
0.1.2-alpha
0.1.1-alpha
0.1.0-alpha
Prometheus metrics and Grafana dashboards for all of your favorite Elixir libraries
Current section
Files
Jump to
Current section
Files
lib/prom_ex/grafana_agent/downloader.ex
defmodule PromEx.GrafanaAgent.Downloader do
@moduledoc """
This module is responsible for downloading the GrafanaAgent binary.
"""
use OctoFetch,
latest_version: "0.42.0",
github_repo: "grafana/agent",
download_versions: %{
"0.42.0" => [
{:darwin, :amd64, "0b86ffb8cf1f25897880b71f6028f0666fc3227cb56e7e7b1597452930f4f9b3"},
{:darwin, :arm64, "b510b1dc46c0f82a3543f56f3ba198e387a69273fd2cba8801832f58985e12a2"},
{:linux, :amd64, "32acd8d2f1997205c9a87c88503bc40cdf2cb4874291f7f643bcf5741a1c761e"},
{:linux, :arm64, "eb62450f0e8293e77088034e6e25c3fd2b251cabd2f503600e770530cc7fc08c"},
{:freebsd, :amd64, "b66eb08b3769748321d1abca80fa85600bdeffd1cd28c5bdf3f0372ca4523ad5"}
]
}
require Logger
@impl true
def download_name(_version, os, arch) do
"grafana-agent-#{os}-#{arch}.zip"
end
@impl true
def post_write_hook(grafana_agent_file) do
File.chmod!(grafana_agent_file, 0o755)
:ok
end
@impl true
def pre_download_hook(_download_file, output_dir) do
already_downloaded =
output_dir
|> File.ls!()
|> Enum.any?(fn file ->
Regex.match?(~r/grafana-agent-(?:linux|darwin|freebsd|windows)-(?:amd64|arm64)/, file)
end)
if already_downloaded do
Logger.info("GrafanaAgent binary already present")
:skip
else
:cont
end
end
end