by shigemk2

当面は技術的なことしか書かない

memo ユーザ目線でのPrometheus/管理者目線でのPrometheus #mackerel_ug

@matsumana パート

自己紹介

Line 福岡

アジェンダ

  • 実際にどういったメトリクスをとっているのか
  • exporterをつくるときのベストプラクティス
  • アラートルールの書き方
  • まとめ

時間の都合上Prometheusの入門はやらない

使ってるバージョン

Prometheus 1.8

使っているメトリクス(exporter)

  • apache_exporter
  • plack_exporter(perl)
  • jmx_exporter
  • memcached
  • mysql
  • redis
  • elasticsearch
  • fluentd

  • exporterについては他のひとが作ったものがないか確認する

  • 監視ごとにexporterが存在する
  • 公式のwikiを見る
  • もしくはググる
  • 機能がなかったらググる
  • オフィシャルガイドラインを読む
  • client library

exporter をつくるときのベストプラクティス

  • Golangがよい
    • Exporter は Go で書くのが楽だが、Linux Kernel 2.6.44 未満は Golang サポートされてないので注意
  • CentOS5だと動かないかも

いくつか抜粋

  • サーバーにいろんなexporterをインストール
  • コードがかぶらないようにすること
  • 誰でも編集できる
  • exporterでメトリクス値を計算しない PromQLをつかう

Exporterのバージョン番号を確認すること

  • exporterの数が増えるとどのバージョンがデプロイされているか分からなくなる
    • prometheus_build_info
  • xxx_upメトリクスをexportする

アラートルールの書き方の例

  • exporterが落ちていないかどうか監視
  • exporterの監視対象が落ちていないか監視

  • node_exporter

    • TextFile Collector機能が使える
  • dailyバッチが正常に動いているかどうかを監視する例

    • バッチ

@kfdm パート

自己紹介

  • LINE Fukuoka開発室
  • Prometheusの運用

  • アーキ

  • 4 HA Pairs
  • 80万くらいのメトリクス
  • 7000くらいのexporter

  • HA

    • AlertManagerがLINEとか飛ばす
  • Targets Prometheus AlertManger LINE
  • Scaling Prometheus Shard
    • split targets across multiple servers
    • alertmanager de-duplicates alerts
    • proxy or remote read
    • promgen

1.8 Storage Format

  • one series per file
  • rewrites may have to touch millions of files
  • queries also may touch millions of files
  • no easy way to backup

2.0 Storage Format

  • chunks stores in buckets by time
  • chunks past retention setting are just deleted
  • easier to backup
  • easier to compress

よくなった

2.0 flag changes

  • most flags move from single dash to double dash
  • many storage settings move to tsdb settings
  • -config.file -> --config.file
  • -storage.local.path -> --storege.local.path

  • 2.0 backup

2.0 rule format changes

  • update rules
    • YAML
    • Migration

2.0 Migration

  • Grafana
  • remote read from 2.0 to 1.8
  • Longterm storage

2.0 remote read

  • prometheus 1.8(read)
  • index db(read and write)
  • Graphite(write)
  • OpenTSDB(Write)
  • timescaledb(read and write)

open metrics

  • github RichiH/OpenMetrics
    • contributers