用于aws cloudwatch度量的异步(和同步)python客户端

cloudwatch-metrics-client的Python项目详细描述


CloudWatch Metrics客户端

使用asyncio的python cloudwatch metrics客户端库(以及sync variant)

这是另一个python cloudwatch客户端。虽然有其他选择,但它们是 不支持异步或不主动维护。

https://github.com/awslabs/cloudwatch-fluent-metrics

https://github.com/peterdemin/awsme

不过,客户机会收集您提供给它的任何指标,并定期向cloudwatch报告 您也可以将其用于特别报告

注意:aioboto3不在需求中,以防您只需要同步版本。如果在Python3.6下运行,您将 还需要异步发电机=1.10

用法:

importasynciofromcloudwatch_metrics_client.aiocloudwatchimportCloudWatchAsyncMetrics,CloudWatchAsyncMetricReporterasyncdefsetup():reporter=CloudWatchAsyncMetricReporter(report_interval=REPORTINTERVAL)# secondsCloudWatchAsyncMetrics.with_namespace('<YOUR NAMESPACE').with_reporter(reporter)# .with_client(aioboto3_cloudwatch_client) is you're not happy with default clientawaitreporter.run()@CloudWatchAsyncMetrics.monitored_taskasyncdefprocess_request(request):# processing logic...## request_type = ... # request_specific_data = # Set details on monitored callCloudWatchAsyncMetrics\
    .with_monitored_dimension('TypeOfRequest',request_type)\
    .with_monitored_dimension('SpecificAttribute',request_specific_data)# Put particular metricawaitCloudWatchAsyncMetrics.put_metric(MetricName='particular-metric-name',Unit='Count',Dimensions={'Kind':'metric-kind','Sort':'metric-sort'},Value=value)# Record statistical valueawaitCloudWatchAsyncMetrics.put_statistic(MetricName='particular-metric-name',Unit='Count',Dimensions={'Kind':'metric-kind','Sort':'metric-sort'},Value=value# Elapsed time will be recorded  

在内部数据结构中记录协同程序每次调用的经过时间并聚合 统计数据将定期发送给cloudwatch。 可以使用put_metric调用收集单个度量值-它们也将存储一段时间,然后发送 去看云表。put_metric保留每个唯一值,并发送它们的列表以及每个值的出现次数 值,put_statistics仅通过一系列指标发送聚合数据-sum、samplecount、min和max (详见https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cloudwatch.html#CloudWatch.Client.put_metric_data

报告器具有用于刷新尚未发送到CloudWatch的度量数据的异步flush方法。如果定期报告没有 需要时,只要不调用runcoro,而是在需要报告度量时调用flush

同步版本以同样的方式工作,它使用单独的线程进行报告。

fromcloudwatch_metrics_client.cloudwatchimportCloudWatchSyncMetrics,CloudWatchSyncMetricReporterdefsetup():reporter=CloudWatchSyncMetricReporter(report_interval=REPORTINTERVAL)# secondsCloudWatchSyncMetrics.with_namespace('<YOUR NAMESPACE').with_reporter(reporter)reporter.run()@CloudWatchSyncMetrics.monitored_taskdefprocess_request(request):# Same here, but with CloudWatchSync*

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
graph Java自己生成类图   java MouseMotionListener:鼠标和触控板给出不同的结果   java解析清单条目的正确方法是什么。jar中的mf文件?   java如何创建带有半透明色块的透明gif/png图像?   java应用内计费V3:跨设备同步购买   java Spring数据JPA注入失败BeanCreationException:无法自动连接字段   Java数据结构维护插入顺序和重复值   java无法在VSCode中设置JavaFX   java中数据字段初始化的类顺序   java如何使用ClientBuilder为Rest Post Api多部分编写集成测试   JUnit测试divide()方法的java正确方法   java将消息标记为接收前已读   Java ArrayList调用扩展对象函数   java Android:只使用GCM的TCP/IPServer   Java如何将xls数据转换为txt文件   编译为Jar文件后未找到java类   java返回子字符串的所有匹配项   java Get json用户_timeline api twitter 1.1