无服务云函数监控最佳实践:使用SCF上报自定义监控数据

无服务云函数监控最佳实践:使用SCF上报自定义监控数据

本文介绍如何使用腾讯云无服务云函数(SCF)上报数据至自定义监控,查看指标并配置告警。

目前腾讯云监控 - 自定义监控还处在内测阶段,可免费使用,无需审核,开通服务即用。点击 申请页面 可参与内测体验。

背景:

云函数可帮助您在无需购买和管理服务器的情况下运行代码。云函数的配套监控功能覆盖了云函数自身的指标监控,比如:函数被调用次数,错误次数,消耗内存等。
自定义监控可以帮助您监控业务逻辑,比如:某个逻辑错误的次数,红包活动中用户发送红包的数量,领取红包的数量等。您可以直接在代码内打点上报业务指标,自动汇聚后实时生成监控图表。可以针对上报指标配置告警,查看指标趋势变化。

示例逻辑:

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

参阅“配置告警策略”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值