推荐您使用 云监控-自定义监控 !
目前内测阶段免费使用,无需审核,开通服务即用。诚邀您点击 申请页面 参与内测体验!
背景:
云函数可帮助您在无需购买和管理服务器的情况下运行代码。云函数的配套监控功能覆盖了云函数自身的指标监控,比如:函数被调用次数,错误次数,消耗内存等。
自定义监控可以帮助您监控业务逻辑,比如:某个逻辑错误的次数,红包活动中用户发送红包的数量,领取红包的数量等。您可以直接在代码内打点上报业务指标,自动汇聚后实时生成监控图表。可以针对上报指标配置告警,查看指标趋势变化。
示例逻辑:
- 每次请求判断是否存在‘key1’字符传入,如有,则成功次数(suc_counts)+1,如无,则失败次数(fail_counts)+1
- 本示例基于python2.7环境演示
前提条件:
操作流程:
步骤1: 新建本地项目
[root@VM_0_3_centos /data]# mkdir MyProject
步骤2:编写业务逻辑
新建一个index.py,内容如下:
# -*- coding: utf8 -*-
import time
import urllib2
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.monitor.v20180724 import monitor_client, models
#自定义监控初始化函数,指定region和secrecId、secretKey
def MONITOR(secretId,secretKey):
try:
# 获取region地区,这里填写云函数所在的地域
region = "ap-guangzhou"
cred = credential.Credential(secretId,secretKey )
client = monitor_client.MonitorClient(cred, region)
except TencentCloudSDKException as err:
print(err)
return client
#自定义监控上报函数,传入函数名称,指标名称,指标值
def API(client,instanceName,MetricName,Value):
req = models.PutMonitorDataRequest()
req.AnnounceInstance = instanceName
req.AnnounceTimestamp = int(time.time())
req.Metrics = [
{"MetricName": MetricName,"Value": Value}
]
resp = client.PutMonitorData(req)
return resp.to_json_string()
def main_handler(event, context):
client = MONITOR("yourSecretId", "yourSecretKey")
if 'key1' in event.keys():
#scf的名称需要包含namespace和函数名称,中间用"|"分割
print(API(client,"default|scf_monitor_Test","scf_suc_count",1))
else:
print(API(client,"default|scf_monitor_Test","scf_fail_count",1))
return "hello from scf" #return
步骤3:安装自定义监控sdk
将自定义监控的sdk以及相关依赖安装到项目目录中
[root@VM_0_3_centos /data/MyProject]# pip install tencentcloud-sdk-python -t .
安装完成后,项目根目录文件如下:
[root@VM_0_3_centos /data/MyProject]# ll
total 3016
-rw-r--r-- 1 root root 1348 Dec 16 20:31 index.py
drwxr-xr-x 4 root root 4096 Dec 16 20:40 QcloudApi
drwxr-xr-x 99 root root 4096 Dec 16 20:40 tencentcloud
drwxr-xr-x 2 root root 4096 Dec 16 20:40 tencentcloud_sdk_python-3.0.113.dist-info
步骤4:打包项目文件
将整个项目目录打包成zip文件
[root@VM_0_3_centos /data/MyProject]# zip project.zip * -r
下载文件到本地,方便后续把整个项目上传到云函数
步骤5:上传项目压缩包至云函数
5.1 进入云函数
5.2 点击“新建”
5.3 使用默认设置,点击完成
5.4 上传上一步打包好的项目zip文件,点击保存
5.5 整个项目目录会自动解压并展示index.py文件内的代码内容
5.6 点击保存,完成项目上传
步骤6:触发调试
新建测试模板
基于代码逻辑填入测试内容:
{
"key1": "test value 1",
"key2": "test value 2"
}
提交后,选择scf_monitor_test测试模板测试:
步骤7:查看监控视图
进入自定义监控查看刚才触发上报的指标视图
步骤8:配置告警
参阅“配置告警策略”