Metadata-Version: 2.1
Name: biz-monitor
Version: 0.1.3
Summary: UNKNOWN
Home-page: UNKNOWN
Author: carton.swing
Author-email: cartonswing@xwfintech.com
License: UNKNOWN
Platform: UNKNOWN
Description-Content-Type: text/markdown
Requires-Dist: Flask
Requires-Dist: jaeger-client
Requires-Dist: opentracing
Requires-Dist: contextvars
Requires-Dist: gunicorn
Requires-Dist: requests
Requires-Dist: tornado
Requires-Dist: wrapt
Requires-Dist: gevent
Requires-Dist: flask-restful
Requires-Dist: kafka-python

## 业务监控 Python client

### 安装
> pip install biz-monitor

### 接入
##### Flask
在调用Flask实例化`app`之后, 加入以下代码:
```python
from biz_monitor.biz_tracing.flask_opentracing import init_tracing
from biz_monitor.biz_logging.log import init_logging
init_tracing("服务名", "jaeger_agent地址, 如 localhost:6831", "kafka地址, 如 localhost:9092", 'IDC', 'set0', 'instance-0', app)
log = init_logging("服务名", 'IDC', 'set0', 'instance-0')
```
##### Tornado
在实例化tornado.web.Application之前，加入以下代码:
```python
from biz_monitor.biz_logging import init_async_logging
from biz_monitor.biz_tracing.tornado_opentracing import init_tracing
init_tracing("服务名", "jaeger_agent地址, 如 localhost:6831", "kafka地址, 如 localhost:9092", "IDC", "set0", 'instance-0')
log = init_async_logging(service_name, "IDC", "set0", "instance-0")
```

----

### 运行示例
#### Tracing
已经运行jaeger-agent的基础上, 在不同的Terminal中分别运行来启动Tornado及Flask
```zsh
$ export PROCESS=flask && ./entrypoint.sh
$ export PROCESS=tornado && ./entrypoint.sh
$ curl http://localhost:5000/
```
请求路径: flask -> requests(2个请求) -> tornado -> tornado.client(2个请求) -> flask

得到的效果图:
![](images/jaeger-demo.png)

----

### 参考
* [业务监控执行](http://km.xwfintech.com/x/agpzAQ)
* [Logging Metrics 和 Tracing](https://www.alibabacloud.com/help/zh/doc-detail/68035.htm)
* [Opentracing](https://opentracing.io/)
* [Jaeger Bindings for Python OpenTracing API](https://github.com/jaegertracing/jaeger-client-python)
* [requests_opentracing](https://github.com/opentracing-contrib/python-requests)
* [flask_opentracing](https://github.com/opentracing-contrib/python-flask)
* [tornado_opentracing](https://github.com/opentracing-contrib/python-tornado)
* [contextvars](https://docs.python.org/3/library/contextvars.html)


