k8s之VelaQL简单理解
kubevela中利用Application对象对底层资源进行了封装,屏蔽了底层基础架构,但是这样对Application创建的资源状态的监控,就只能依赖Application的状态透出,但状态信息简略、状态实时反馈性差,VelaQL就是为了提升Application的可观测性,用于查询应用级别的资源状态。
并且velaQL 对标的是 PromQL ,,提供了和 PromQL 类似语法的查询语句,期望能够成为应用监控领域的 Prometheus。
view{parameter1=value1,parameter2=value2}
并且,vela apiserver内置了3种比较通用的查询视图:
1、component-pod-view 对应用下某个组件创建出的 pod 列表的查询
curl --location -g --request GET \
http://127.0.0.1:8000/api/v1/query?velaql=component-pod-view{appNs=default,appName=demo,name=demo}
2、pod-view 对一个 pod 详细状态的查询,包括容器状态以及 pod 产生的事件
curl --location -g --request GET \
http://127.0.0.1:8000/api/v1/query?velaql=pod-view{name=demo-1-bf6799bb5-dpmk6,namespace=default}
3、resource-view 获取集群中某类资源的列表
curl --location -g --request GET \
'http://127.0.0.1:8000/api/v1/query?velaql=resource-view{type=ns}'
每次使用 velaQL 时,系统都会从 vela-system 命名空间下查找和视图同名的 configMap 提取出 template的CUE模板来进行查询操作,所以要保证你的自定义视图存储在 vela-system 下(默认)。
4、velaql流程
velaql执行流程:
// 1、组装一个workflowstep,用于完成QueryView
// 2、通过provider注册了需要的方法,并提供了TaskLoader用于加载cue模板
// 3、使用TaskLoader加载cue模板,并生成TaskGenerator函数
// 4、执行上边返回的TaskGenerator函数,并生成executor,然后并把handler放到了对应的executor,然后是很成了taskRunnertaskRunner主要有run和checkPending两个函数,并返回taskRunner
// 5、执行TaskRunner的Run方法,run方法中会将workflowstep的cue模板和参数生成的cue.value合并成一个新的cue.value作为taskValue,然后调用doSteps对cue中#component-apply进行处理,对应会执行具体的provider注册的某个方法
k8s之VelaQL简单理解相关推荐
- K8s之ControllerRateLimiter简单理解
1.RateLimiter实现了对于队列元素的重试规则,包括三个函数When获取某个元素应该等待的时间,Forget释放某个元素不再监测,NumRequeues返回该元素已经失败重试的次数. 2.Ra ...
- k8s之kubebuilder简单理解
kubebuilder流程 1.创建manager,ctrl.NewManager,包括设置 shemme和端口.选主信息等配置.NewCluster(用来访问k8s,主要包括newCache和New ...
- k8s之informer简单理解
informer简介 Informer是一个能够缓存apiserver的对象到本地.具有索引机制.并可以注册 EventHandler 的 client.使用 informer 的目的是为了减轻 ap ...
- android 点击事件消费,Android View事件分发和消费源码简单理解
Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...
- 【转载】Deep learning:十九(RBM简单理解)
Deep learning:十九(RBM简单理解) 这篇博客主要用来简单介绍下RBM网络,因为deep learning中的一个重要网络结构DBN就可以由RBM网络叠加而成,所以对RBM的理解有利于我 ...
- 学习:双机热备、集群、负载均衡、SQL故障转移群集简单理解(转)
双机热备.集群.负载均衡.SQL故障转移群集简单理解平常,大家常提到几个技术名词:双机热备.集群.负载均衡.SQL故障转移群集.这里,就我的理解,和大家简单探讨下,有不足或错误之处还请各位指出! 这些 ...
- 字符串匹配算法Java_如何简单理解字符串匹配算法?
这篇文章来说说如何简单理解KMP,BM算法.之前看过一些文章说,KMP算法很难理解. 可我并不觉得. 我反而觉得它容易理解.平时我们写java代码的时候, 判断一个字符串是否存在包含另一个字符串都是直 ...
- python yield的简单理解
2019独角兽企业重金招聘Python工程师标准>>> yield是个生成器,它可以使一个方法变成可迭代的方法,每次迭代返回yield后面的值 简单理解: >>>d ...
- linun——SElinux的简单理解
SElinux简单理解 一.什么是SElinux? SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Co ...
最新文章
- python怎么编程乘法口诀表_用python编写乘法口诀表的方法
- 刚安装了Fedora32,尝尝鲜~,哈哈~~~
- 学会选择最适合自己的GPS定位系统源码
- 1.17 选择排序法
- 线程条件控制实现线程的同步
- 1088 三人行 (20 分)
- 【C语言】编写一个简单的学生成绩管理系统
- hdu1054(最小顶点覆盖)
- LAMP 3.2 mysql登陆
- 对话框:创建对话框模板和修改对话框属性
- go-基础知识二-数据类型-变量
- Linux的IO机制
- 详解Android定位,AndroidGPS定位详解(1)
- Infopath入门到精通系列-2 Infopath 文件内容查看
- 黑客教父郭盛华:11个IDA Pro反汇编程序的替代品
- 兜兜转转解决office和visio不能同时安装的问题
- 无效的m3u8怎么办_vue使用video.js解决m3u8视频播放格式
- react-navigation 6.x 学习(3)
- allegro差分信号走线_Cadence差分线走线规则
- Elasticsearch(ES) 基本知识