2分钟

课程背景

实验预计耗时:30分钟

1. 课程背景

1.1 课程目的

用户在项目部署后,为了监控业务逻辑、对相应指标进行展示分析,往往需要编写大量逻辑代码。这时,云监控-自定义监控可以帮助用户监控业务逻辑,比如:某个逻辑错误的次数,红包活动中用户发送红包的数量,领取红包的数量等。用户可以直接在代码内打点上报业务指标,自动汇聚后实时生成监控图表。并且可以针对上报指标配置告警,查看指标趋势变化。

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

本实验将云函数以及云监控相结合,通过编写云函数SCF调用云监控API,判断每次GET请求是否存在"key1"字符传入,并通过云监控-自定义监控控制台查看该监控指标及配置告警。

通过本实验,学员将掌握使用云函数SCF上报数据至自定义监控、查看指标及配置告警的方法。

1.2 课前知识准备

(1)相关技术及产品:

  • 腾讯云相关:
    • 云服务器CVM:腾讯云服务器 CVM(Cloud Virtual Machine)是腾讯云提供的可扩展的计算服务。使用 CVM 避免了使用传统服务器时需要预估资源用量及前期投入,帮助您在短时间内快速启动任意数量的云服务器并即时部署应用程序。腾讯云 CVM 支持用户自定义一切资源:CPU、内存、硬盘、网络、安全等等,并可以在需求发生变化时轻松地调整它们。
    • 对象存储COS:对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务。具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK 和工具等多样化方式,用户可简单、快速地接入 COS,进行多格式文件的上传、下载和管理,实现海量数据存储和管理。
    • 云监控CM:云监控(Cloud Monitor,CM)可收集并通过图表展示腾讯云产品自助上报的各项监控指标和用户自定义配置上报的监控指标,以及针对指标设置告警。为用户提供立体化云产品数据监控、智能化数据分析、实时化异常告警和个性化数据报表配置,让用户实时、精准掌控业务和各个云产品健康状况。
    • 云函数SCF:云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助用户在无需购买和管理服务器的情况下运行代码。只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。SCF 是实时文件处理和数据处理等场景下理想的计算平台。
  • Linux相关:
    • Linux:Linux是一套开源的类Unix操作系统,也是现在在服务端使用最为广泛的操作系统,它有多种发行版本。
    • CentOS:CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定放出的源代码编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS完全开源。
  • Python相关:
    • tencentcloud-sdk-python:腾讯云开发者工具套件(SDK)Python语言版本,SDK是云API平台的配套工具。新版SDK实现了统一化,具有各个语言版本的SDK使用方法相同,接口调用方式相同,统一的错误码和返回包格式这些优点。

(2)相关原理:

  • 事件触发时代表用户执行SCF函数,根据用户的配置信息(如内存大小等)进行资源分配,并启动和管理容器(即函数的执行环境)。SCF平台负责所有函数运行容器的创建、管理和删除清理操作,用户没有权限对其进行管理。
  • 容器启动需要一些时间,这会使每次调用函数时增加一些延迟。但通常仅在首次调用函数、更新函数或长时间未调用时重新调用函数时才会察觉到延迟。因为平台为了尽量减少容器启动延迟,会尝试对后续调用重用容器,在调用函数后容器会根据平台的实际情况存留一段时间,预期用于下次调用,在此时间段内的调用会直接重用该容器。
    云函数SCF工作原理

(3)相关命令介绍:

  • Linux相关命令:
    • 进入目录: cd <目录名>
    • 创建文件夹: mkdir <文件夹名>
    • 安装软件: yum install <软件名> -y
    • 通过vim创建并编辑文件: vi <文件名>
    • pip安装依赖: pip install <依赖名> -t .
    • 打包当前文件为zip: zip project.zip * -r
    • 配置COSCMD工具: coscmd config -a <SecretId> -s <SecretKey> -b <指定的存储桶名称> -r <存储桶所在地域>
    • COSCMD上传文件: coscmd upload <localpath> <cospath>
  • vim相关命令:
    • 进入编辑模式,在当前字符前插入光标:i
    • 进入命令行模式:ESC
    • 保存并退出文件(命令行模式下)::wq