Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python Web Application Monitoring in Mackerel

kizkoh
April 27, 2017

Python Web Application Monitoring in Mackerel

kizkoh

April 27, 2017
Tweet

More Decks by kizkoh

Other Decks in Technology

Transcript

  1. Python Web Application Monitoring in Mackerel id:kizkoh Hatena Co., Ltd.

    2017-04-27 Mackerel Meetup #10 Tokyo #mackerelio
  2. Python Web Application Application - WSGI に則ったインターフェイスを持つ

  3. Python Web Application WSGI WSGI は Python の Web アプリケーション規格

  4. uWSGI 高機能な WSGI 対応 Web サーバ Python(WSGI) 以外にも対応 Ruby Perl

    (PSGI) PHP Java Lua
  5. uWSGI --stats オプション[1] JSON 形式でメトリクスの出力をサポート 出力されるメトリクス Backlog (処理待ちリクエスト)、worker 数、処理リクエスト数に対応 Busy

    Worker, Idle Worker 累計処理リクエスト数 mackerel-plugin-uwsgi-vassal でサポート [1] "The uWSGI Stats Server — uWSGI 2.0 documentation" http://uwsgi- docs.readthedocs.io/en/latest/StatsServer.html
  6. uWSGI Workers

  7. uWSGI Requests

  8. uWSGI Listen Queue

  9. Gunicorn シンプルな WSGI 対応 Web サーバ uWSGI と違い Python(WSGI) のみ対応

    --statsd_host オプション[1] Worker の状態(busy, idle) を区別できない [1] "Settings — Gunicorn 19.7.1 documentation"" http://docs.gunicorn.org/en/stable/settings.html#statsd-host
  10. モニタリングのために WSGI ミドルウェア作った!

  11. WSGI Status[1] アプリケーション(WAF)の前段に置く 通過するときにメトリクスを出力する uwsgi の stats と同じフォーマットでファイルに出力 [1] "wsgi_status

    0.2.5 : Python Package Index" https://pypi.python.org/pypi/wsgi_status/
  12. Gunicorn Workers

  13. Gunicorn Requests

  14. Python Web Application Monitoring uWSGI 細かなメトリクスを収集できる 設定に慣れが必要、運用が難しい Gunicorn WSGI status

    をミドルウェアとして挟む 設定項目が少ない、運用が簡単 uWSGI, Gunicorn 両方とも Mackerel でモニタリングできる!!
  15. mackerel-plugin-uwsgi-vassal

  16. Enjoy Python Hack!