fission二次测试以及组件日志分析
对fission进行测试分析组件日志:
进行测试如下:
- 创建语言环境镜像、给函数创建路由route trigger、上传函数、测试函数、请求函数、查看函数日志
- 编译多个文件组成的源码函数:对源码进行打包上传,根据压缩包创建函数、创建路由、通过fission进行解释或编译链接、查看bulid日志
- 编译artifacts(已打包函数),创建函数、创建路由、测试函数、查看全部函数
- 创建语言环境镜像、创建builder、查看环境
- 自动扩容(需要未安装工具hey)
- 创建trigger:包括http trigger,time trigger,message queue trigger
- 传源码包:通过fission创建由多个文件组成的函数压缩包,创建package,查看package信息,通过package创建函数
- 创建部署包:通过fission创建由一个文件组成的函数压缩包,创建package,查看package信息,通过package创建函数
- 测试函数对k8s中secret和ConfigMaps的访问(demo中的secret路径出现问题,还没找到对的路径)
- fission的workflow测试
组件分析如下:
builder:
- 作用:编译链接上传的源码package
- 日志包括:记录创建builder service、builder deployment、builder pod、build程序包(注意给build.dh加权限)、上传部署包、更新部署包、build失败报错信息
controller:
- 作用:每次http请求函数的信息
- 日志包括:服务器状态,端口,返回http请求的head信息,每次向fission请求时http信息(包括请求错误url的proxy error)如
1
2
3
4127.0.0.1 - - [07/Jun/2018:01:50:33 +0000] "GET /v2/packages/demo-src-pkg-zip-8lwt?namespace=default HTTP/1.1" 404 9
以及(应该是)每次请求的函数地址和传入参数的地址如
github.com/fission/fission/controller.(*API).respondWithError(0xc420082ae0, 0x7f5c883e4e60, 0xc4201a4960, 0x178ea60, 0xc420510b40)
/Volumes/MacintoshHD/Dropbox/Dropbox/goWorkspace/src/github.com/fission/fission/controller/api.go:98 +0x29
executor:
- 作用:创建函数
- 日志包括:检查是缓冲中跑起来的函数,没有找到的话创建一个,为函数分配环境,设置一个数据结构记录函数信息(如函数名,GenerateName:命名空间;SelfLink,Generation;创建时间戳,删除时间戳,存活时间(DeletionGracePeriodSeconds),标签,实例化url),从pool中得到这个函数,选择pod,通过pod ip实例化pod,从pool中找到可以实例化的pod,对函数和pod进行映射,对pod加上标签,选择pod,调用fetcher 拷贝函数到指定url上,实例化pod,用环境镜像实例化pod,为pod加上ip,创建对应语言的pool,拉取fetcher镜像等。
kubewatcher:
没有查到日志
router:
- 作用:对http请求进行转发
- 日志包括:
1
2
3
4
5
6
72018/06/07 05:47:12 Calling getServiceForFunction for function: hello
2018/06/07 05:47:30 Tapped 1 services in batch
2018/06/07 05:47:30 Tapped 1 services in batch
2018/06/07 05:48:00 Tapped 1 services in batch
2018/06/07 05:48:00 Tapped 1 services in batch
2018/06/07 05:48:15 Tapped 1 services in batch
2018/06/07 05:48:15 Tapped 1 services in batch
storagesvc:
- 作用:储存服务
- 日志包括:
1
2
3
4
5
6
7
8
9
10
11time="2018-06-06T07:24:53Z" level=info msg="Storage service started"
time="2018-06-06T07:24:53Z" level=info msg="listening to archiveChannel to prune archives"
time="2018-06-06T08:24:53Z" level=info msg="getting orphan archives"
time="2018-06-06T09:24:53Z" level=info msg="getting orphan archives"
time="2018-06-06T09:32:41Z" level=info msg="Handling upload for /packages/demo-src-pkg-zip-fbza-o3s5sk-icbzii.zip"
172.16.76.86 - - [06/Jun/2018:09:32:41 +0000] "POST /v1/archive HTTP/1.1" 200 72
172.16.76.115 - - [06/Jun/2018:09:40:01 +0000] "GET /v1/archive?id=%2Ffission%2Ffission-functions%2Fde313c06-247e-44a5-83a6-0d257d224212 HTTP/1.1" 200 103852
time="2018-06-06T10:24:53Z" level=info msg="getting orphan archives"
time="2018-06-07T01:50:32Z" level=info msg="Handling upload for /packages/demo-src-pkg-zip-d20x-rnhpna-i8fmoq.zip"
172.16.76.95 - - [07/Jun/2018:01:50:32 +0000] "POST /v1/archive HTTP/1.1" 200 72
time="2018-06-07T02:24:53Z" level=info msg="getting orphan archives"
timer:
- 作用:一个基于时间的triggers,定时向请求指定函数。这里是每30s请求一次。
- 日志包括:
2018/06/07 08:17:30 Making HTTP request to http://router.fission/fission-function/hello
主要是记录时间