aws cloudwatch客户端库方便高效地发送度量
awsme的Python项目详细描述
亚马逊网络服务云监控指标库
可配置的客户端库,支持异步和缓冲发送 AWS云监控指标。
安装
默认情况下,安装awsme时不需要boto3依赖项以使其部署 在aws lambda环境中更快(有关详细信息,请参见https://github.com/peterdemin/awsme/issues/3>;)。
如果在lambda之外运行awsme,请使用以下命令激活boto3依赖项:
pip install awsme[boto3]
使用量
fromawsmeimportcreate_cloud_watchcloud_watch=create_cloud_watch(namespace='Application',dimensions={'version':'1.0.0'},)cloud_watch.log('metric',dimensions={'key':'dim'},value=123)
创建选项
create_cloud_watch接受以下参数:
- 异步(可选bool):如果为true(默认),则从单独的线程发送度量。
- buffered(可选bool):如果为true(默认值),度量将在缓冲区中累积并成批发送。
- dummy(可选bool):如果为true,则忽略前面两个选项并创建dummy recorder。默认为False。
- dimensions:(可选dict[str,str]):将附加到所有度量的默认维度字典。
- 所有其他Kwargs将被绕过到boto3.client('cloudwatch', **kwargs)
日志选项
由create_cloud_watch返回的cloudwatch有两个公共方法。主要方法是log。 它的参数:
- name(必选str):度量的名称。
- 尺寸(可选dict[str,str]):附加尺寸, 将从工厂添加到默认尺寸。
- 值(可选浮点):度量值,默认为1。
- 单位(可选str):公制单位,例如count、seconds、bytes, 有关有效值的完整列表,请参见AWS docs。
- 存储分辨率(可选int):以秒为单位度量存储分辨率,默认为60。
冲洗
如果使用buffered=True(默认值)调用create_cloud_watch,则可能需要强制 刷新内部度量缓冲区。 在标准应用程序中,这可能不是必需的,因为缓冲区将自动刷新atexit。 但是,如果应用程序作为aws lambda函数运行,则lambda函数的执行 当功能完成时,将“冻结”,防止退出,从而冲洗。在这个用例中, 您需要通过调用flush强制刷新缓冲区。 这是论点:
- complete(可选bool):如果为true(默认),则执行完全刷新。
AWS配置
awsme使用boto3库,它从environment variables获取配置 和配置文件。 要检查是否已正确配置发送度量值的所有内容,请使用附带的命令行工具:
$ awsme-test ... Successfully sent metric "awsme-test" to "Test Namespace"
学分
这个包是用Cookiecutter和elgertam/cookiecutter-pipenv项目模板创建的,基于audreyr/cookiecutter-pypackage。
历史记录
0.2.2(2019-01-24)
- 添加了异步记录器和用户文档
0.1.0(2018-11-13)
- pypi上的第一个版本。