Cabot是什么
Cabot是GitHub上面的一個基于Django框架的開源項(xiàng)目,主要功能是服務(wù)的監(jiān)控和告警。
Cabot目前提供如下監(jiān)控類型:
- ICMP Ping監(jiān)控
- HTTP接口監(jiān)控
- Graphite Metrics監(jiān)控
Cabot提供插件式的告警方式,目前已有的告警插件有slack、sms、telephone、email等等。開發(fā)者可以開發(fā)自己的告警插件以滿足自身需求。
安裝依賴
Cabot默認(rèn)使用PostgreSQL數(shù)據(jù)庫,我們可以替換為MySQL,修改數(shù)據(jù)庫連接URI即可。
下面記錄在安裝依賴的Python包中遇到的問題。
openssl
在安裝mysql-python、cryptography等一些依賴openssl的python包時(shí),會報(bào)錯無法找到ssl庫。解決辦法如下:
brew info openssl
For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
pip install mysql-python
openldap
在安裝python-ldap包的時(shí)候報(bào)錯找不到sasl.h頭文件。python-ldap官方下載頁面有如下解釋:
Set up a suitable development environment by running xcode-select --install. After that you can install directly from PyPI.
下面記錄其它工具的安裝。
npm
download node.js then install node & npm
# install lessc
npm install -g less
# install coffee script
npm install -g coffee-script
Honcho
Cabot項(xiàng)目使用Foreman管理環(huán)境以及啟動應(yīng)用。Foreman是用Ruby寫的,不想安裝Ruby環(huán)境的話,可以使用Python語言移植版本Honcho:
pip install honcho
啟動開發(fā)環(huán)境
# 創(chuàng)建數(shù)據(jù)庫
# 假設(shè)conf/development.env中配置的數(shù)據(jù)庫名為cabot
create database cabot default charset=utf8;
# 創(chuàng)建表
honcho -e conf/development.env run python manage.py migrate
honcho -e conf/development.env run python manage.py migrate cabotapp
# 創(chuàng)建超級用戶
honcho -e conf/development.env run python manage.py createsuperuser
# 啟動
honcho -e conf/development.env -f Procfile.dev start
Cabot項(xiàng)目源碼閱讀
Cabot源碼值得一讀,對Django Web開發(fā)有很大的指導(dǎo)意義。在閱讀過程中,收獲不少,下面是一些相關(guān)技術(shù)點(diǎn):
- django rest框架
- django-polymorphic,與django的contenttypes框架有關(guān)
- model的具體繼承、抽象繼承、proxy繼承
- Celery