aoishiの備忘録

備忘録

Python

PrometheusとPushgatewayでGoogle Finance APIの株価をPushしてモニタリングしてみた

コンテナ環境などスケールするインフラ、システムのモニタリングに向いていると話題のPrometheusですが、Zabbix SenderみたいなPush型方式のモニタリングができるのか興味があったので調べてみました。 結論から述べると、下記の要領でPush型のモニタリング…

Pythonのsetproctitleモジュールでプロセス名を設定する

Pythonのmultiprocessingモジュールで書かれたマルチプロセスなプログラムで、psコマンドで親・子プロセス名を分かりやすく表示させるために、setproctitleモジュールを使ってプロセス名を設定してみました。 環境 OS: Fedora release 27 (Twenty Seven) Pyt…

Pythonでネストを減らす(if文によるdictのキーチェック編)

やりたいこと PythonでJSONないしはYAMLで記述された設定ファイルを読み込みたい 読み込んだ設定ファイルをdictとして扱い、キーが存在したら何らかの処理をしたい キーチェックのためのネストを減らしたい 元の方法 YAMLで記述された設定ファイルを読み込み…

Pythonとcronで秒単位で定期処理する

やりたいこと Pythonのスクリプトを定期的に実行したい cronで手軽に定期処理したい 秒単位で定期実行したい 解決方法 Pythonスクリプト作成 下記のように、実行間隔(秒)と実行回数をコマンドライン引数で与えて、Pythonのスクリプトの中で繰り返し実行でき…

Zabbix Sender + LLD(ローレベルディスカバリ) + dstat + Grafanaでリソースモニタリング

はじめに Zabbix Advent Calendar 2017 の3日目の投稿です。 リソースモニタリング方法については、色々な手法が提案されていると思いますが、今回はZabbix SenderとLLD(ローレベルディスカバリ)を使い、dstatで得られるデータを収集・グラフ化してみたい…

CircleCI 2.0でDjangoの自動テスト環境を構築する

はじめに Djangoで作成したWebアプリケーションをCircle CI2.0で自動テストできるようにしてみました。# 環境 Django 1.11.5 CircleCI 2.0 Python 3.6.1 (circleci/python:3.6.1 DockerImage利用) MySQL 5.7 (circleci/mysql:5.7 DockerImage利用) また、事…

DockerでDjangoの開発環境を作成する(Quickstart: Compose and DjangoのMySQL版)

はじめに Dockerの公式ページにDocker Composeを使った簡単なDjango/PostgreSQLの環境構築のチュートリアルがあります。 docs.docker.com 普段からMySQLを使うことが多いので、PostgreSQLの代わりにMySQLを使ってチュートリアルをやってみました。 環境 OS: …

Djangoで文字コードutf8mb4でMySQLに接続する方法

はじめに Djangoで文字コードがutf8mb4のMySQLデータベースを利用するためのメモです。 絵文字を含むデータを使うために文字コードがutf8mb4のデータベースを作成したのですが、クライアント側の文字コード設定を忘れてしまい、レコード追加時に下記のエラー…

Pythonでloggingモジュール使ってライブラリ内でログ出力する時のまとめ

はじめに Pythonでloggingモジュールを使う際の備忘録です。 下記の要求を実現することを目的としています。 ライブラリ化したいコードがあり、デバッグ目的などでログを出力させたい。 ライブラリで発生した例外のトレースも同じログに出力させたい。 ライ…