vector.devをDockerで使っているとhost_metrics
のホスト名がhuman friendlyではなくなるので環境変数から上書き設定したい、というのは全ての(docker & vector.dev)ユーザーが最初に通る場所だと思うのでやり方を記しておきます。
以下、host_metrics
をprometheusにsinkする vector.toml
[sources.host_metrics]
type = "host_metrics"
collectors = [
"cpu", "disk", "load", "memory", "network", "cgroups", "filesystem", "host"
]
[transforms.remap_host]
type = "remap"
inputs = ["host_metrics"]
source = '''
.tags.host = get_env_var!("HOSTNAME")
'''
[sinks.prometheus]
type = "prometheus_exporter"
inputs = ["remap_host"]
address = "0.0.0.0:9598"
罠がいくつかあって、検索するとremap
ではなくadd_fileds
を使っている古い例が散見されますがこれは動きません (at v0.31.0)
また、 .host = get_env_var!("HOSTNAME")
としている例も見かけますがhost_metrics
を使う場合 .tags.host
にする必要があります