Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Prometheus の relabeling
Search
Teraoka Yoshinori
June 03, 2019
Technology
18k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Prometheus の relabeling
Teraoka Yoshinori
June 03, 2019
More Decks by Teraoka Yoshinori
See All by Teraoka Yoshinori
Job に挿入される sidecar を停止させる sidecar を挿入する話
yteraoka
0
190
What is the difference between docker and containerd about logging?
yteraoka
2
1.1k
GitLabサーバーのモニタリング / gitlab server monitoring
yteraoka
1
2.9k
Other Decks in Technology
See All in Technology
そのタスクオンスケですか?
poropinai1966
0
140
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
3
670
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
150
Claude Code 珍プレー好プレー
shinyasaita
0
270
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
160
知らん間に、回ってる
ming_ayami
0
140
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
1.2k
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
3
2.1k
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
0
2.2k
はじめてのWDM
miyukichi_ospf
1
120
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
580
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
390
Featured
See All Featured
Claude Code のすすめ
schroneko
67
230k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
270
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
Paper Plane (Part 1)
katiecoart
PRO
0
9.5k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Transcript
Prometheus の relabeling Prometheus Meetup Tokyo #2 2019.6.3
自己紹介 Name: Teraoka Yoshinori Twitter: yteraoka Github: yteraoka Blog: https://blog.1q77.com/
Job: SRE @ M3 https://jobs.m3.com/
エムスリーでの Prometheus • 2016年に Docker Swarm を導入し、しばらくは Zabbix でメトリクスを収集していた が、Zabbix
に慣れていないこともあり不便だったため2017年頭に Prometheus に切 り替えた • その後、物理・仮想サーバーへと拡大 • Cacti で5分間隔の polling を行っていたが、もっと高頻度(1分未満間隔)で取得し たかった • 可視化はもちろん Grafana ◦ Grafana の Alert を使ってグラフ付きで slack に投稿している • Alertmanager はまだ使っていない
使用している Exporter • cAdvisor • node_exorter • libvirt_exporter • postgres_exporter
• redis_exporter • memcached_exporter • elasticsearch_exporter • haproxy_exorter • jmx_exporter • oracledb_exporter これらの他に、SpringBoot アプリに Prometheus 用の actuator を入れてい たり、アプリがもつ既存のメトリクスエンド ポイントの出力を Prometheus 用に書き 換える Proxy を自作したりしています
話すことが無い... だいたい全部この本に書いてある 読みましょう 原著のリリースが2018年7月で、それより前に躓 いた話をします
導入時に躓いた話 • (旧) Docker Swarm で registrator を使って Consul にサービス情報を登録している
◦ このあたりのことは SlideShare にあります ◦ https://www.slideshare.net/yteraoka1 • Swarm クラスタ外の Prometheus からアクセスしたい • Consul だから consul_sd_configs を使えばそれで完了だと思ってた
導入時に躓いた話 • Consul から取得された target にはクラスタ内でしか通信できない Container のIP アドレス、ポートが __address__
にセットされていた これを書いていて気付きましたが Prometheus の Targets ページ (/targets) で label にポインタを乗せると Before relabeling という情報が表示される
導入時に躓いた話 Before relabeling: __address__="10.0.1.5:32791" ← クラスタ内からしかアクセスできないアドレス __meta_consul_address="172.16.0.100" ← クラスタ外からもアクセス可能なホストのアドレス __meta_consul_dc="dc1"
__meta_consul_node="docker-node2" __meta_consul_service="someapp" __meta_consul_service_address="10.0.1.5" __meta_consul_service_id="docker-node2:someapp_1:8080" __meta_consul_service_port="32791" __meta_consul_tags=",," __metrics_path__="/actuator/prometheus" __scheme__="http" job="someapp"
導入時に躓いた話 • Github で問い合わせた https://github.com/prometheus/prometheus/issues/2342
• Github で問い合わせた https://github.com/prometheus/prometheus/issues/2342 導入時に躓いた話 “You can use relabeling to
pull in the other address.” は??
導入時に躓いた話 • label って取ってきたメトリクスについてるものなんじゃないの? • target address を relabel ??
• と思いましたが、翌日には「ありがとう、解決したよ」って返してるからなんとかなっ たみたいです(もう覚えていない) • 「入門 Prometheus」を読んでおけばこんなことにはならないはず
導入時に躓いた話 - job_name: 'someapp' metrics_path: '/actuator/prometheus' consul_sd_configs: - server: '127.0.0.1:8500'
datacenter: 'dc1' services: - ‘someapp’ relabel_configs: - source_labels: ['__meta_consul_address', '__meta_consul_service_port'] separator: ':' regex: '(.*)' target_label: '__address__' replacement: '$1'
導入時に躓いた話 Before relabeling: __address__="10.0.1.5:32791" __meta_consul_address="172.16.0.100" ← コレと __meta_consul_dc="dc1" __meta_consul_node="docker-node2" __meta_consul_service="someapp"
__meta_consul_service_address="10.0.1.5" __meta_consul_service_id="docker-node2:someapp_1:8080" __meta_consul_service_port="32791" ← コレで __address__ を上書き __meta_consul_tags=",," __metrics_path__="/actuator/prometheus" __scheme__="http" job="someapp"
https://jobs.m3.com/ 仲間募集中