BOSH CLI 期望在路径中找到地图...但找到了“[]接口{}”
BOSH CLI Expected to find a map at path ... but found '[]interface {}'
与另一个问题非常相似,但略有不同。尝试了接受的答案,但仍然没有成功。
我在 运行 命令时收到此错误:
bosh -d prometheus deploy -n pfg-prometheus-boshrelease/manifests/prometheus.yml -o replace_vars.yml
Expected to find a map at path '/instance_groups/name=prometheus2/jobs/name=prometheus2/properties/prometheus/scrape_configs/job_name=bosh/static_configs/targets?' but found '[]interface {}'
replace_vars.yml:
- type: replace
path: /instance_groups/name=prometheus2/jobs/name=prometheus2/properties/prometheus/scrape_configs/job_name=bosh/static_configs/targets?/-
value: 192.168.123.26:9190
清单部分:
- name: prometheus2
properties:
prometheus:
rule_files:
- ...
scrape_configs:
- file_sd_configs:
- files:
- /var/vcap/store/bosh_exporter/bosh_target_groups.json
job_name: prometheus
relabel_configs:
- action: keep
...
- regex: (.*)
...
- job_name: bosh
scrape_interval: 2m
scrape_timeout: 1m
static_configs:
- targets:
- localhost:9190
正确的路径是什么?
编辑:我查看了 bosh cli ops files 但找不到像我这样的例子。
我也曾多次遇到这个问题,但从未找到针对此用例的解决方案。作为解决方法,我通常做的是更换一个台阶。
对于您的示例:
/tmp/replace-vars.yml
:
- type: replace
path: /instance_groups/name=prometheus2/jobs/name=prometheus2/properties/prometheus/scrape_configs/job_name=bosh/static_configs/0
value:
targets:
- 192.168.123.26:9190
- localhost:9190
/tmp/test-manifest.yml
:
instance_groups:
- name: prometheus2
jobs:
- name: prometheus2
properties:
prometheus:
rule_files:
- abc
scrape_configs:
- file_sd_configs:
- files:
- /var/vcap/store/bosh_exporter/bosh_target_groups.json
job_name: prometheus
relabel_configs:
- action: keep
- regex: (.*)
- job_name: bosh
scrape_interval: 2m
scrape_timeout: 1m
static_configs:
- targets:
- localhost:9190
由bosh int /tmp/test-manifest.yml -o /tmp/replace-vars.yml
插值:
instance_groups:
- jobs:
- name: prometheus2
properties:
prometheus:
rule_files:
- abc
scrape_configs:
- file_sd_configs:
- files:
- /var/vcap/store/bosh_exporter/bosh_target_groups.json
job_name: prometheus
relabel_configs:
- action: keep
- regex: (.*)
- job_name: bosh
scrape_interval: 2m
scrape_timeout: 1m
static_configs:
- targets:
- 192.168.123.26:9190
- localhost:9190
name: prometheus2
与另一个问题非常相似,但略有不同。尝试了接受的答案,但仍然没有成功。
我在 运行 命令时收到此错误:
bosh -d prometheus deploy -n pfg-prometheus-boshrelease/manifests/prometheus.yml -o replace_vars.yml
Expected to find a map at path '/instance_groups/name=prometheus2/jobs/name=prometheus2/properties/prometheus/scrape_configs/job_name=bosh/static_configs/targets?' but found '[]interface {}'
replace_vars.yml:
- type: replace
path: /instance_groups/name=prometheus2/jobs/name=prometheus2/properties/prometheus/scrape_configs/job_name=bosh/static_configs/targets?/-
value: 192.168.123.26:9190
清单部分:
- name: prometheus2
properties:
prometheus:
rule_files:
- ...
scrape_configs:
- file_sd_configs:
- files:
- /var/vcap/store/bosh_exporter/bosh_target_groups.json
job_name: prometheus
relabel_configs:
- action: keep
...
- regex: (.*)
...
- job_name: bosh
scrape_interval: 2m
scrape_timeout: 1m
static_configs:
- targets:
- localhost:9190
正确的路径是什么?
编辑:我查看了 bosh cli ops files 但找不到像我这样的例子。
我也曾多次遇到这个问题,但从未找到针对此用例的解决方案。作为解决方法,我通常做的是更换一个台阶。 对于您的示例:
/tmp/replace-vars.yml
:
- type: replace
path: /instance_groups/name=prometheus2/jobs/name=prometheus2/properties/prometheus/scrape_configs/job_name=bosh/static_configs/0
value:
targets:
- 192.168.123.26:9190
- localhost:9190
/tmp/test-manifest.yml
:
instance_groups:
- name: prometheus2
jobs:
- name: prometheus2
properties:
prometheus:
rule_files:
- abc
scrape_configs:
- file_sd_configs:
- files:
- /var/vcap/store/bosh_exporter/bosh_target_groups.json
job_name: prometheus
relabel_configs:
- action: keep
- regex: (.*)
- job_name: bosh
scrape_interval: 2m
scrape_timeout: 1m
static_configs:
- targets:
- localhost:9190
由bosh int /tmp/test-manifest.yml -o /tmp/replace-vars.yml
插值:
instance_groups:
- jobs:
- name: prometheus2
properties:
prometheus:
rule_files:
- abc
scrape_configs:
- file_sd_configs:
- files:
- /var/vcap/store/bosh_exporter/bosh_target_groups.json
job_name: prometheus
relabel_configs:
- action: keep
- regex: (.*)
- job_name: bosh
scrape_interval: 2m
scrape_timeout: 1m
static_configs:
- targets:
- 192.168.123.26:9190
- localhost:9190
name: prometheus2