Python Web Application Monitoring in Mackerel

E14400051eaea77f543ef32ee271cef0?s=47 kizkoh
April 27, 2017

Python Web Application Monitoring in Mackerel

E14400051eaea77f543ef32ee271cef0?s=128

kizkoh

April 27, 2017
Tweet

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!