推荐您使用 云监控-自定义监控 !

目前内测阶段免费使用,无需审核,开通服务即用。诚邀您点击 申请页面 参与内测体验!


背景:

云函数可帮助您在无需购买和管理服务器的情况下运行代码。云函数的配套监控功能覆盖了云函数自身的指标监控,比如:函数被调用次数,错误次数,消耗内存等。

自定义监控可以帮助您监控业务逻辑,比如:某个逻辑错误的次数,红包活动中用户发送红包的数量,领取红包的数量等。您可以直接在代码内打点上报业务指标,自动汇聚后实时生成监控图表。可以针对上报指标配置告警,查看指标趋势变化。

示例逻辑:

  • 每次请求判断是否存在‘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:配置告警

参阅“配置告警策略”


扫描二维码,关注腾讯云公众号

文章来源于腾讯云开发者社区,点击查看原文