当前位置:主页 > 查看内容

云函数 使用博睿数据 APM - 操作指南

发布时间:2021-10-13 00:00| 位朋友查看

简介:本文将为您介绍云函数如何接入和使用博睿数据 APM。 前提条件 已注册 博睿 Server 账号。若您尚未注册博睿账号,可 注册新账号 以获得 Serverless 专属的15天免费产品体验。 已 创建云函数 并开启公网访问。 说明: 博睿探针目前支持 Python 和 Node.js 的多……

本文将为您介绍云函数如何接入和使用博睿数据 APM。

前提条件

  • 已注册 博睿 Server 账号。若您尚未注册博睿账号,可 注册新账号 以获得 Serverless 专属的15天免费产品体验。
  • 已 创建云函数 并开启公网访问。
说明:

博睿探针目前支持 Python 和 Node.js 的多数主流框架,且仅在使用支持的框架时,博睿 smartAgent 才可自动捕获。详情请参见 博睿探针支持列表。

操作步骤

使用云函数控制台接入

您可以使用云函数控制台接入博睿,详细步骤如下:

绑定探针

您需要下载博睿探针,将该探针上传到层并绑定在函数上。

  1. 下载 博睿 Serverless 版探针。
  2. 登录云函数控制台,选择左侧菜单栏中的【层】。
  3. 在“层”管理页面,单击【新建】。
  4. 在“新建层”页面,根据提示信息进行配置。如下图所示:
    • 层名称:输入层名称。只能包含字母、数字、下划线、连字符,以字母开头,以数字或字母结尾,2 - 60个字符。
    • 提交方法:选择【本地上传zip包】。
    • 层代码:选择步骤1下载的探针文件。
    • 运行环境:根据实际运行环境进行选择。目前支持 Python 和 Node.js。
  5. 单击【确定】即可创建层。
  6. 选择左侧菜单栏中的【函数服务】,进入函数服务页面。
  7. 单击需要绑定层的函数名称,进入函数管理页面。
  8. 选择【层管理】>【绑定】,在绑定层窗口按照提示绑定上述步骤创建的层。如下图所示:
  9. 单击【确定】即可完成探针的绑定。

引入探针

绑定层后,探针并不会自动启动,需要在代码入口引入探针。探针运行会占用少量内存,但不会影响您的业务运行。如业务代码本身占用了大量内存,探针将触发熔断机制以保障业务运行。目前提供 Nods.js 和 Python 引入:

  • Node.js 的引入
  • Python 的引入

在云函数的入口函数所在的文件 require 博睿探针。例如您可以在 sl_handler.js 文件中加入如下引入的代码:

require("/opt/bonree/apm/agent/nodejs/serverless/Bonree/index.js");

增加云函数环境变量

您需要在每个绑定博睿探针的云函数中增加环境变量,探针将根据环境变量中的账户信息上报。需新增以下变量:

环境变量 Key Value
BONREE_SMARTAGENT_SDK_PATH /opt/bonree/apm/agent/c/serverless/lib/libagentsdk-x64-linux.so
BONREE_APM_ACCOUNT_GUID 博睿账户 GUID
说明:

您可以在博睿 Server 产品的右上角找到 GUID 信息。如下图所示:

使用 Serverless Framework 接入

您还可以使用 Serverless Framework 的 bonree component 上传博睿探针。本文以 Flask 框架为例,介绍如何使用bonree component来绑定和使用博睿探针。您也可以单独使用 bonree component 上传层,再进行 层绑定。

创建层并绑定至函数

  1. 在 apm 目录下新建 serverless.yml 文件,serverless.yml 文件内容如下:

    component: bonree
    name: bonree_agent
    org: tencent
    app: tencent
    stage: dev
    inputs:
    name: bonree_agent
    region: ap-beijing
    runtimes:
    - Nodejs10.15
    - Python3.6
  2. 同样在 src 目录下创建 Flask 的 serverless.yml 文件,在layers参数填写 bonree component 的信息,在环境变量中填写博睿账号的GUID和SDK路径参数。serverless.yml 文件内容如下:

    component: flask
    name: bonree_flask
    org: tencent
    app: tencent
    stage: dev
    inputs:
    region: ap-beijing
    runtime: Python3.6
    layers:
    - name: ${output:${stage}:${app}:bonree_agent.name}
    version: ${output:${stage}:${app}:bonree_agent.version}
    functionConf:
    memorySize: 128
    environment:
    variables:
    BONREE_APM_ACCOUNT_GUID: your_bonree_GUID
    BONREE_SMARTAGENT_SDK_PATH: /opt/bonree/apm/agent/c/serverless/lib/libagentsdk-x64-linux.so
  3. 查看目录结构,具体目录结构如下所示:

    .
    ├── apm
    │ └── serverless.yml
    └── src
    └── serverless.yml
  4. 只使用 bonree component 便可以完成层的创建。在云函数中配置 layers 参数可以完成绑定操作,您也可以选择在云函数控制台手动绑定层。

  5. 在根目录下执行以下命令,进行应用部署。

    sls deploy

引入探针

  1. 登录云函数控制台,选择左侧菜单栏中的【函数服务】。
  2. 在函数服务页面,单击对应的函数名称,进入函数管理页面。
  3. 单击【函数代码】页签,在 sl_handler.py 文件中加入引入探针的代码,详细内容可参考上文 引入探针。

使用博睿 Server

  1. 登录 博睿 Server 控制台,待数据上报至博睿。
  2. 在博睿 Server 控制台右上角中选择【】>【部署状态】,进入部署状态页面查看已进行数据上报的函数。如下图所示:
  3. 将该函数关联一个应用,即可查看应用运行的情况。如下图所示:
  4. 您可以将多个函数上报后关联至同一个应用,便可查看调用链路情况。如下图所示:
    image-20210120212212888

更多操作指导可以查看 博睿 Server 产品文档。

博睿探针支持列表

博睿探针目前支持以下主流框架和库:

  • Python
  • Node.js

Python 支持的框架及库如下:

框架版本
Flask0.10及以上/1.1.2
Django1.5及以上/3.1
Tornado3.0及以上/6.1
Web.py0.33及以上/0.6.2
Pyramid1.3及以上/1.10.5
Bottle0.12及以上/0.12.19
Cherrypy10.0及以上/18.6.0
Sanic0.5.0及以上/20.9.1
Odoo8.0及其以上/14.0
fastapi0.23.0及以0.63.0
quart0.11.0及以0.14.1
starlette0.12.0及以上0.14.1
Pymysql0.7.1及以上/0.10.1
mysqlclient1.3.0及以上/2.0.1
mysql-connector-python8.0.5及以上/8.0.22
psycopg22.6.2及以上/2.8.6
Cx-Oracle6.0及以上/8.0.1
pyhive0.1.6及以上/0.6.3
Pymongo3.3.0及以上/3.11.1
python-memcached1.57及以上/1.5.9
pyssdb0.4.0及以上/0.4.2
redis2.10.0及以上/3.5.3
redis-py-cluster0.1.0及以上/2.1.0
urllib31.18及以上/1.26.2
requests2.12.0及以上/2.25.0
httplib/http标准库
tornado_httpclient3.1及以上6.1
elasticsearch5.2.0及以上/7.10.0
grpcio1.0.0及以上/1.33.2
xmlrpclibpython 2.6/2.7
xmlrpcpython3.4+
thrift0.10.0及以上/0.13.0
aiohttp3.0.0及以上/3.7.3
kafka-python1.3.0及以上/2.0.2
stomp.py4.1.20及以上/6.1.0
kombu3.0.30及以上/5.0.2
librabbitmq1.6.0及以上2.0.0
Logging:标准库
logbook1.3.0及以上/1.5.3
Eliot0.8.0及以上/1.12.0
celery3.1.0及以上/5.0.2

本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:GetLiveChannelHistory - 对象存储 OSS 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐