Under the general trend of cloud native, application containerization and serverlessization are being quickly accepted and selected by developers.
Alibaba Cloud FunctionCompute (FC), released in 2017, is one of the earliest Serverless Cloud Services in China. Function as a service (FaaS) frees developers from operations such as servers management, resource planning.
FC supports sub-seconds rapid auto-scaling and organizations only pay for the actual usage. However, FaaS vendors abstract many concepts that DevOps are already familiar with, which poses several new observability challenges compared with Serverfull technologies:
Tingyun platform, one of the authoritative application performance monitoring platforms in China, is also always paying attention to the evolution of cloud native technology and new challenges in the field of observability. With observability capabilities of Tingyun APM , developers know well of the application by instance-level monitoring, distributed tracing and link tracing.
In order to facilitate the integration of the third-party APM platform such as Tingyun, FC released Lifecycle Capability which allows APM agent to better monitor Serverless applications.
Next we introduce how to integrate Tingyun in FC, follow our steps and you will get your own serverless observability dashboard.
An easy and simple way to install Funcraft is to download the executable binary files.
fun --version
to check whether the installation is successful.fun config
to configure Funcraft. Then configure Account ID, Access Key ID, Access Key Secret, and Default region name as prompted.$ fun config
Aliyun Account ID 1234xxx
Aliyun Access Key ID xxxx
Aliyun Access Key Secret xxxx
Default region name cn-xxxx
The timeout in seconds for each SDK client invoking 300
The maximum number of retries for each SDK client 5
Allow to anonynously report usage statistics to improve the tool over time? (Y/n)
Run the following command to clone the sample project to your local machine.
git clone https://github.com/awesome-fc/fc-tingyun-demo.git
Run the following command to access the cloned sample project:
cd fc-tingyun-demo
Replace licence key in tingyun.json with your own license key
{
"nbs.app_name" : "my-ty-app",
"nbs.agent_enabled" : true,
"dataSentInterval": 1,
"nbs.license_key" : "replace with your own key",
"nbs.log_file_name" : "/tmp/tingyun.log",
"nbs.audit" : true,
"nbs.max_log_count": 3,
"nbs.max_log_size": 9,
"nbs.ssl" : true
}
Run the following command to deploy the function:
make deploy
The following result is returned:
➜ tingyun make deploy
docker build -t fc-go-runtime -f build-image/Dockerfile build-image
Sending build context to Docker daemon 2.048kB
Step 1/5 : FROM golang:1.12.16-stretch
---> 7ad03a8aece5
Step 2/5 : RUN mkdir -p $GOPATH/src/golang.org/x/
---> Using cache
---> 5678ac31beda
Step 3/5 : RUN cd $GOPATH/src/golang.org/x/ && git clone https://github.com/golang/net.git
---> Using cache
---> 77d355f1730b
Step 4/5 : RUN cd $GOPATH/src/golang.org/x/ && git clone https://github.com/golang/sys.git
---> Using cache
---> 414d3e786a8e
Step 5/5 : RUN go get github.com/TingYunAPM/go
---> Using cache
---> 4c08b95694b5
Successfully built 4c08b95694b5
Successfully tagged fc-go-runtime:latest
docker run --rm -it -v $(pwd):/tmp fc-go-runtime bash -c "go build -o /tmp/code//bootstrap /tmp/code/main.go"
chmod +x code/bootstrap
fun deploy -y
using template: template.yml
using region: cn-shenzhen
using accountId: ***********3743
using accessKeyId: ***********Ts6J
using timeout: 20
Collecting your services information, in order to caculate devlopment changes...
Resources Changes(Beta version! Only FC resources changes will be displayed):
┌─────────────────────┬──────────────────────────────┬────────┬──────────┐
│ Resource │ ResourceType │ Action │ Property │
├─────────────────────┼──────────────────────────────┼────────┼──────────┤
│ tingyun-integration │ Aliyun::Serverless::Function │ Modify │ CodeUri │
└─────────────────────┴──────────────────────────────┴────────┴──────────┘
Waiting for service fc-integrate-with-third-apm to be deployed...
make sure role 'aliyunfcgeneratedrole-cn-shenzhen-xxx' is exist
role 'aliyunfcgeneratedrole-cn-shenzhen-xxx' is already exist
Waiting for function tingyun-integration to be deployed...
Waiting for packaging function tingyun-integration code...
The function tingyun-integration has been packaged. A total of 2 files were compressed and the final size was 4.16 MB
function tingyun-integration deploy success
service xxx deploy success
Application has been deployed successfully, and your function can be monitored by tingyun.
The application template has time trigger by dafault, it is triggerd every minite, and you can view a default dashboard with 1tps invocation.
You can also invoke function by fun invoke
command or API calls.
Alibaba Cloud Functions on Kubernetes with Event Driven Autoscaling Ability
99 posts | 7 followers
FollowAlibaba Cloud Serverless - December 17, 2020
DavidZhang - June 14, 2022
Rupal_Click2Cloud - November 8, 2023
Alibaba Cloud Community - July 5, 2022
Alibaba Clouder - April 29, 2021
Alibaba Cloud Native Community - February 13, 2023
99 posts | 7 followers
FollowAlibaba Cloud Function Compute is a fully-managed event-driven compute service. It allows you to focus on writing and uploading code without the need to manage infrastructure such as servers.
Learn MoreElastic and secure virtual cloud servers to cater all your cloud hosting needs.
Learn MoreAlibaba Cloud Container Service for Kubernetes is a fully managed cloud container management service that supports native Kubernetes and integrates with other Alibaba Cloud products.
Learn MoreVisualization, O&M-free orchestration, and Coordination of Stateful Application Scenarios
Learn MoreMore Posts by Alibaba Cloud Serverless