How Telemetry Works#
本文将详细介绍如何用这个库来定时采集 EC2 和 RDS 状态的数据.
acore_server_monitoring_measurement.telemetry.Ec2RdsStatusMeasurement.measure_on_lambda() 能用 Lambda Function 批量采集多台 server 的状态数据并批量写入到 DynamoDB 中. 你的 Lambda Function 的 Layer 中需要包含本项目. 下面给出了一段示例代码:
tests_int/test_telemetry.py
1# -*- coding: utf-8 -*-
2
3import boto3
4import pynamodb_mate.api as pm
5from acore_server_monitoring_measurement.telemetry import (
6 Ec2RdsStatusMeasurement as Base,
7)
8
9
10class Ec2RdsStatusMeasurement(Base):
11 class Meta:
12 # you may need to change this table name
13 table_name = "acore_server_monitoring_measurement-dev"
14 region = "us-east-1"
15 billing_mode = pm.constants.PAY_PER_REQUEST_BILLING_MODE
16
17
18Ec2RdsStatusMeasurement.create_table(wait=True)
19boto_ses = boto3.session.Session(profile_name="bmt_app_dev_us_east_1")
20Ec2RdsStatusMeasurement.measure_on_outside(
21 server_id_list=["sbx-blue"],
22 boto_ses=boto_ses,
23)