Gunicorn
Gunicorn 是一个 Python WSGI UNIX 的 HTTP 服务器。该 Gunicorn 服务器与各种 Web 框架兼容,执行非常简单,轻量级的资源消耗,相当迅速的响应。
Cloud Insight 监控 Gunicorn 请求时间请求数等性能指标。
性能指标
Cloud Insight 采集 Gunicorn 以下性能指标:
指标 | 单位 | 具体含义 |
---|---|---|
gunicorn.log.critical | occurrences/second | 每秒记录 critical 状态的数量 |
gunicorn.log.error | occurrences/second | 每秒记录 error 的数量 |
gunicorn.log.exception | occurrences/second | 每秒记录 exception 的数量 |
gunicorn.log.warning | occurrences/second | 每秒记录 warning 的数量 |
gunicorn.request.duration.95percentile | milliseconds | 请求响应时间的第 95 百分位的值 |
gunicorn.request.duration.avg | milliseconds | 请求响应时间的平均值 |
gunicorn.request.duration.count | requests/second | 每秒收到请求数 |
gunicorn.request.duration.max | milliseconds | 请求响应时间的最大值 |
gunicorn.request.duration.median | milliseconds | 请求响应时间的中位值 |
gunicorn.request.status.100 | requests/second | 每秒生成 100 状态码的响应的请求数 |
gunicorn.request.status.101 | requests/second | 每秒生成 101 状态码的响应的请求数 |
gunicorn.request.status.102 | requests/second | 每秒生成 102 状态码的响应的请求数 |
gunicorn.request.status.200 | requests/second | 每秒生成 200 状态码的响应的请求数 |
gunicorn.request.status.201 | requests/second | 每秒生成 201 状态码的响应的请求数 |
gunicorn.request.status.202 | requests/second | 每秒生成 202 状态码的响应的请求数 |
gunicorn.request.status.203 | requests/second | 每秒生成 203 状态码的响应的请求数 |
gunicorn.request.status.204 | requests/second | 每秒生成 204 状态码的响应的请求数 |
gunicorn.request.status.205 | requests/second | 每秒生成 205 状态码的响应的请求数 |
gunicorn.request.status.206 | requests/second | 每秒生成 206 状态码的响应的请求数 |
gunicorn.request.status.207 | requests/second | 每秒生成 207 状态码的响应的请求数 |
gunicorn.request.status.208 | requests/second | 每秒生成 208 状态码的响应的请求数 |
gunicorn.request.status.226 | requests/second | 每秒生成 226 状态码的响应的请求数 |
gunicorn.request.status.300 | requests/second | 每秒生成 300 状态码的响应的请求数 |
gunicorn.request.status.301 | requests/second | 每秒生成 301 状态码的响应的请求数 |
gunicorn.request.status.302 | requests/second | 每秒生成 302 状态码的响应的请求数 |
gunicorn.request.status.303 | requests/second | 每秒生成 303 状态码的响应的请求数 |
gunicorn.request.status.304 | requests/second | 每秒生成 304 状态码的响应的请求数 |
gunicorn.request.status.305 | requests/second | 每秒生成 305 状态码的响应的请求数 |
gunicorn.request.status.306 | requests/second | 每秒生成 306 状态码的响应的请求数 |
gunicorn.request.status.307 | requests/second | 每秒生成 307 状态码的响应的请求数 |
gunicorn.request.status.308 | requests/second | 每秒生成 308 状态码的响应的请求数 |
gunicorn.request.status.400 | requests/second | 每秒生成 400 状态码的响应的请求数 |
gunicorn.request.status.401 | requests/second | 每秒生成 401 状态码的响应的请求数 |
gunicorn.request.status.402 | requests/second | 每秒生成 402 状态码的响应的请求数 |
gunicorn.request.status.403 | requests/second | 每秒生成 403 状态码的响应的请求数 |
gunicorn.request.status.404 | requests/second | 每秒生成 404 状态码的响应的请求数 |
gunicorn.request.status.405 | requests/second | 每秒生成 405 状态码的响应的请求数 |
gunicorn.request.status.406 | requests/second | 每秒生成 406 状态码的响应的请求数 |
gunicorn.request.status.407 | requests/second | 每秒生成 407 状态码的响应的请求数 |
gunicorn.request.status.408 | requests/second | 每秒生成 408 状态码的响应的请求数 |
gunicorn.request.status.409 | requests/second | 每秒生成 409 状态码的响应的请求数 |
gunicorn.request.status.410 | requests/second | 每秒生成 410 状态码的响应的请求数 |
gunicorn.request.status.411 | requests/second | 每秒生成 411 状态码的响应的请求数 |
gunicorn.request.status.412 | requests/second | 每秒生成 412 状态码的响应的请求数 |
gunicorn.request.status.413 | requests/second | 每秒生成 413 状态码的响应的请求数 |
gunicorn.request.status.414 | requests/second | 每秒生成 414 状态码的响应的请求数 |
gunicorn.request.status.415 | requests/second | 每秒生成 415 状态码的响应的请求数 |
gunicorn.request.status.416 | requests/second | 每秒生成 416 状态码的响应的请求数 |
gunicorn.request.status.417 | requests/second | 每秒生成 417 状态码的响应的请求数 |
gunicorn.request.status.418 | requests/second | 每秒生成 418 状态码的响应的请求数 |
gunicorn.request.status.421 | requests/second | 每秒生成 421 状态码的响应的请求数 |
gunicorn.request.status.422 | requests/second | 每秒生成 422 状态码的响应的请求数 |
gunicorn.request.status.423 | requests/second | 每秒生成 423 状态码的响应的请求数 |
gunicorn.request.status.424 | requests/second | 每秒生成 424 状态码的响应的请求数 |
gunicorn.request.status.426 | requests/second | 每秒生成 426 状态码的响应的请求数 |
gunicorn.request.status.428 | requests/second | 每秒生成 428 状态码的响应的请求数 |
gunicorn.request.status.429 | requests/second | 每秒生成 429 状态码的响应的请求数 |
gunicorn.request.status.431 | requests/second | 每秒生成 431 状态码的响应的请求数 |
gunicorn.request.status.451 | requests/second | 每秒生成 451 状态码的响应的请求数 |
gunicorn.request.status.500 | requests/second | 每秒生成 500 状态码的响应的请求数 |
gunicorn.request.status.501 | requests/second | 每秒生成 501 状态码的响应的请求数 |
gunicorn.request.status.502 | requests/second | 每秒生成 502 状态码的响应的请求数 |
gunicorn.request.status.503 | requests/second | 每秒生成 503 状态码的响应的请求数 |
gunicorn.request.status.504 | requests/second | 每秒生成 504 状态码的响应的请求数 |
gunicorn.request.status.505 | requests/second | 每秒生成 505 状态码的响应的请求数 |
gunicorn.request.status.506 | requests/second | 每秒生成 506 状态码的响应的请求数 |
gunicorn.request.status.507 | requests/second | 每秒生成 507 状态码的响应的请求数 |
gunicorn.request.status.508 | requests/second | 每秒生成 508 状态码的响应的请求数 |
gunicorn.request.status.510 | requests/second | 每秒生成 510 状态码的响应的请求数 |
gunicorn.request.status.511 | requests/second | 每秒生成 511 状态码的响应的请求数 |
gunicorn.requests | requests/second | 每秒收到的请求数 |
gunicorn.workers | workers | master 管理的 workers |
配置 Gunicorn 监控
1. 保证 Gunicorn 系统中安装有 setproctitle
模块
2. Gunicorn 运行命令模式如下,后面会使用 my_web_app
gunicorn --name my_web_app my_web_app_config.ini
3. 配置 Cloud Insight Agent 连接到 Gunicorn 进程
切换路径至 /etc/CiAgent
,开启配置文件 conf.d/gunicorn.yaml
cd /etc/CiAgent
cp conf.d/gunicorn.yaml.example conf.d/gunicorn.yaml
编辑配置文件如下:
init_config:
instances:
- proc_name: my_web_app
重启 Agent
重启 Cloud Insight Agent,使配置生效。
您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。
Checks
======
gunicorn
--------
- instance #0 [OK]
- Collected 2 metrics, 0 events & 2 service checks
有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作。
常见问题
- Gunicorn -- Found no master process with name: gunicorn: master[app]
- 配置 Gunicorn 监控后,只能看到两个指标,怎么看到其他指标?
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。