Promregatorのインストールメモ。
Cloud Foundry上のアプリケーションのPrometheusメトリクスを集約してscrapeしたい場合に使用する。
jarをダウンロード。
wget https://github.com/promregator/promregator/releases/download/v0.5.7/promregator-0.5.7.jar
以下のmanifest.yml
を作成。
applications:
- name: promregator
memory: 3G
instances: 1
path: ./promregator-0.5.7.jar
health-check-type: http
health-check-http-endpoint: /
env:
# https://github.com/promregator/promregator/blob/master/docs/config.md
# adminまたはread only adminを作って設定、あるいは以下で設定するOrgにアクセスできるアカウント名
# https://docs.cloudfoundry.org/uaa/uaa-user-management.html#admin-read-only
CF_API_HOST: ((cf_api_host))
CF_USERNAME: ((cf_username))
CF_PASSWORD: ((cf_password))
# Promeregatorのアクセス対象Org名
PROMREGATOR_TARGETS_0_ORGNAME: ((promregator_targets_0_orgname))
# メトリクスのパス。Org内で一括指定。Spring Bootの場合は/actuator/prometheus
PROMREGATOR_TARGETS_0_PATH: ((promregator_targets_0_path))
# 複数のOrgにアクセスさせたい場合はindexを増やしていく
# PROMREGATOR_TARGETS_1_ORGNAME: ((promregator_targets_1_orgname))
# PROMREGATOR_TARGETS_1_PATH: ((promregator_targets_1_path))
# Promregator自体の認証設定
PROMREGATOR_AUTHENTICATOR_TYPE: basic
PROMREGATOR_AUTHENTICATOR_BASIC_USERNAME: ((promregator_authenticator_basic_username))
PROMREGATOR_AUTHENTICATOR_BASIC_PASSWORD: ((promregator_authenticator_basic_password))
# Promregatorがアクセスする先の認証設定
PROMREGATOR_ENDPOINT_AUTH: basic
PROMREGATOR_AUTHENTICATION_BASIC_USERNAME: ((promregator_authentication_basic_username))
PROMREGATOR_AUTHENTICATION_BASIC_PASSWORD: ((promregator_authentication_basic_password))
LOGGING_LEVEL_ORG_CLOUDFOUNDRY_PROMREGATOR: ((logging_level_org_cloudfoundry_promregator))
プレースホルダに埋める値はvars.yml
に設定。適当に修正を。
cf_api_host: api.sys.example.com
cf_username: admin
cf_password: passsword
promregator_targets_0_orgname: Foo
promregator_targets_0_path: /actuator/prometheus
promregator_authenticator_basic_username: promregator
promregator_authenticator_basic_password: promregator
promregator_authentication_basic_username: demo
promregator_authentication_basic_password: demo
logging_level_org_cloudfoundry_promregator: WARN
cf push
する。
cf push --vars-file=vars.yml
Promemtheus側には以下の設定を行う。
- job_name: promregator
scrape_interval: 60s
scrape_timeout: 10s
metrics_path: /metrics
scheme: https
basic_auth:
username: promregator
password: promregator
static_configs:
- targets:
- promregator.apps.example.com:443
prometheus-boshreleaseを使っている場合は、以下のops-fileを追加。
- type: replace
path: /instance_groups/name=prometheus2/jobs/name=prometheus2/properties/prometheus/scrape_configs/-
value:
job_name: promregator
scrape_interval: 60s
scrape_timeout: 10s
metrics_path: /metrics
scheme: https
basic_auth:
username: promregator
password: promregator
static_configs:
- targets:
- promregator.apps.example.com:443