Grafana系列之Dashboard:新增仪表板、新增变量、过滤变量、变量查询、导入仪表板、变量联动、Grafana Alert
概述
关于Prometheus和Grafana的安装,略过。
写在前面
- Dashboard:仪表板,可包含多个Panel
- Panel:面板,Dashboard中的组件
如有写得不对的地方,烦请指出。
新增仪表板
点击右上角的
选择New dashboard,
备注:上图自有探索->自由探索。
自由探索
点击Add visualizaton,出现选择数据源界面,
如上图所示,一个Grafana可以新增多个Prometheus数据源。选择Prometheus数据源,然后出现如下视图
点击Code,输入http_server_requests
,Grafana有自动补齐提示,也就是说,我们现在是在Grafana里写PromQL。
选择不同的数据源,写的Code不一样,如果选择的是Loki,则写Code时需要遵从LogQL语法(计划会另写一篇博客)。
勾选Explain,下面会出现关于code的解释,比如下面的1 Fetch all series matching metric name and label filters.
,翻译过来就是抓取所有满足指标名称和标签过滤符的序列
变量
在Grafana中,用户可为仪表板定义一组变量(Variables),变量一般包含一个到多个可选值。通过将变量渲染为一个下拉框,使用户可动态地调整变量的值,进而查询不同标签(Tag)下的数据,从而实现分组(Group by)效果
在仪表板右上角,点击Settings,会发现若干个Tab标签页,其中第三个Variables就是变量
点击新增变量
变量是仪表板全局生效的,一个仪表板如果有多个面板,则全部面板都会复用这个变量,也就是说,放在一个仪表板里的多个面板最好是强相关的(能复用这些变量的,负责查询面板会出现No Data问题)。
变量过滤
以http_server_requests
(参考Grails应用http.server.requests指标数据采集问题排查及解决)这个Micrometer默认暴露出来的指标为例,在Prometheus Graph页面查询此指标时,有如下图所示几个标签组(注意,下文会使用这个数据):
- container:容器,表示是Pushgateway采集的
- endpoint:采集方式
- exception:API接口异常
- job:即应用,服务,非常关心
- method:接口方法,GET、POST等
- namespace:命名空间
- outcome:结果,和status功能定位比较类似
- pod:和container类似
- service:和container类似
- status:状态码,表示成功与否
- uri:接口的路径
上面新增过job这个变量。
默认情况下,job变量带出很多个非业务应用的数据(至于为什么,目前尚不清楚),比如kube系列,apiserver,coredns等,如下图所示:
带来的问题(干扰):
在面板里选择应用时,会出现很多不关心的应用。
需求:过滤无关应用,即实现变量过滤功能。
Regex
咨询DeepSeek、ChatGPT等工具后,告知可利用Regex来实现:
给出如下的表达式/^(?!.*kube).*$/
。
注意:只有在点击保存仪表板后才能看到效果。
如下截图所示,Preview of values里不再出现kube相关的数据
在面板上选择应用时,不再出现kube相关的选项
问题来了,我还想继续过滤掉上面截图里的apiserver和coredns,咋办。
DeepSeek给出的答复是:/^(?!.*(kube|apiserver)).*$/
。
是不是看起来非常有理有据,Regex正则表达式嘛,用|
符号实现多个候选项。
结果点击报错仪表板后,页面居然报错:
众所周知,Grafana UI是用JS写的,上面的报错也全是JS相关。
WTF?根本就不能进行任何点击或查看操作。
这该死的、害人的AI幻觉(hallucination)。
问题是AI带来的,还是得靠它们来解决。
给出的答复,其中一个是,强制刷新浏览器。
使用Chrome快捷键Ctrl + Shift + R,果然可以正常查看仪表板,赶紧把上面的错误的Regex表达式给删除。
经过反复尝试,比较明确的一点是,通过Regex,只能过滤一类数据。
几个表达式:
/^(?!.*kube).*$/
:可以过滤kube相关的数据;/^(?!.*(kube|apiserver)).*$/
:不能实现过滤kube和apiserver相关的数据,Grafana解析此Regex表达式失败,页面渲染数据出错;/^(?!.*(kube))}).*$/
:同上,多个()
括号,页面报错。
Metric
既然Regex无法实现过滤,只有另寻他法。反复询问AI工具,给出的答复是使用Metric,即指标。
此时才发现,绕了个弯路,Metric才是最正规的实现指标数据过滤的方法。
下面截图里还写着Regex,实际上无用,应删除,请忽视。
不过,如上图所示,还是有一个不太关心的数据,nacos。Java业务应用里并没有nacos,而是使用Nacos作为配置中心和注册中心。
Label filters
进一步实现过滤。Label filters,中文译为标签过滤器,正好是用于数据过滤的场景:
备注:忽略上面截图里的Regex表达式。
可知,将nacos给过滤掉。
此外,点击中间的操作符
Grafana提供的四种对比符号:
=
:等于,精准匹配!=
:不等于,精准过滤(排除)=~
:等于,模糊匹配!~
:不等于,模糊过滤(排除)
总结
有三种方法:
- Regex:不建议使用
- Metric:绑定指标,可过滤大部分无关数据
- Label filters:进一步过滤数据
变量查询
上面已经新增三个变量:
- 应用:对应于job
- API:对应于uri
- 状态码:对应于status
需求是查询所有的应用下所有API接口,且状态码是4xx或5xx的数据:
遇到的问题:
- 清空应用或API的勾选项,并不能查询到数据,即上图展示的No data。分析下来,发现浏览器的URL上,job这个变量
var-job
- )还是写死(绑定)某个应用agent
,var-uri
还是把所有的已经勾选的接口放在URL路径 - 勾选全部应用以及全部API,可以实现上面提到的查询需求,但是页面太不美观。
经过各种反复尝试。
解决方法:修改变量,构想Include All option。
遇到的问题,查询不到数据,可是通过Prometheus Graph查看明明有数据的
咨询AI类工具,以及反复尝试,发现需要配置如下的Custom all value信息,填入.*
保存仪表板后,果然看到数据
总结:勾选Include All option时,需要配置下面的Custom all value,否则查询数据时会显示No data。
导入仪表板
前面在新增仪表板时,只讲述过Add visualizaton这种方式。
上面的操作,都是基于http_server_requests
这个指标,并不是自定义的指标,而是Micrometer官方暴露出来的数据。以Grafana + Dashboard + http_server_requests 三个单词为关键词搜索Google,不难找到官方维护的仪表板,其ID为21308,URL地址为https://grafana.com/grafana/dashboards/21308-http/
。
此处使用导入功能
如上图所示,Grafana真的很贴心
(注意这里的排版),提供好几种导入方式:
- 文件:在最上方。别人不清楚,我个人会认为这种方式更重要,使用频率更高,所以放在最上面。
- URL:贴入URL
- ID:输入ID
- JSON model:没用过,不太清楚
踩过的坑
:将测试环境的仪表板同步到生产环境,首先导出测试环境的仪表板为JSON文件,点击仪表板右上角的Share->Export->Save to file
然后在生产环境导入JSON文件,却发现无数据
经过排查与分析后才发现,虽然都是Prometheus数据源,但是其uid不一样。(直接给出结论)
选中某个面板后,快捷键E
进入编辑模式,直接点击Run queries发现其实是有数据的。
对于部署多个不同Prometheus集群的场景来说,多了个步骤,切换使用的Prometheus数据源,然后点击Run queries,也可查询到数据。
我们公司做LLM相关应用,因此需要GPU机器用于模型推理与训练。对于GPU机器上的Python应用,额外再部署一套Prometheus集群。
最后点击保存面板,可发现使用的数据源uid确实不一样。
一个仪表板里面有十几个甚至几十个面板,一一进入编辑模式,然后保存面板切换使用的Prometheus数据源,岂不是要疯掉。
如截图所示,上面的仪表板是Node Exporter Dashboard 20240520 TenSunS自动同步版,这是一个三方维护的GitHub开源、仪表板。
解决方法:直接使用URL或ID的方式导入。
总结:
- URL或ID:官方维护的,三方维护的,且一般不会调整加以修改的仪表板;里面的面板一般会比较多;
- JSON:适合于业务自定义的仪表板;仪表板里的面板比较少,使用导出导入功能,需要编辑调整数据源的地方比较少;不编辑保存面板,则无数据。
变量联动
不会配置面板,不知道如何写PromQL,跟着别人学习啊。在Grafana Dashboard页面里,有几万个仪表板(持续新增中),有官方维护的,也有三方维护的。
上面已经导入21308仪表板,点击面板,进入编辑模式,看看别人的变量怎么配置的
点击instance变量后,发现是这样的:
Grafana自动解析变量之间的关系,生成Show dependencies按钮。
同样都是http_server_requests
指标,官方维护的仪表板使用application、cluster、instance三个变量,我上面列出的标签里,这三个一个都没有,所以下拉框并没有数据,不清楚官方为何使用这三个变量。
要善于取学习,跟着配置三个变量后,可以实现联动效果,即所谓选择应用后,API里只出现该应用下的接口:
注意:上面截图里Label filters使用的符号不一致。
Grafana Alert
一般情况下,可以基于面板创建Alert,即Grafana Alert
Grafana Alert涉及很多知识点,如Alert rule(告警规则)、Contact Point(联络点)、Notification policy(通知策略)、Silence(静默),其中联络点又涉及到最常见的邮件告警,告警模板配置;如果是Webhook配置,飞书还非常特殊。
因此另起一篇。
但是也有例外:
No alerting capable query found
Cannot create alerts from this panel because no query to an alerting capable datasource is found.
数据源是Prometheus,PromQL如下,为啥不能基于此面板新增告警的具体原因,有待进一步学习
Prometheus Alertmanager
除了Grafana Alert外,也可接入Prometheus Alertmanager。
另起一篇Grafana系列之面板接入Prometheus Alertmanager。
参考
- Grafana官网
- ChatGPT
- DeepSeek
- GitHub Copilot
相关文章:
Grafana系列之Dashboard:新增仪表板、新增变量、过滤变量、变量查询、导入仪表板、变量联动、Grafana Alert
概述 关于Prometheus和Grafana的安装,略过。 写在前面 Dashboard:仪表板,可包含多个PanelPanel:面板,Dashboard中的组件 如有写得不对的地方,烦请指出。 新增仪表板 点击右上角的 选择New dashboard…...
管道符、重定向与环境变量
个人博客站—运维鹿: http://www.kervin24.top CSDN博客—做个超努力的小奚: https://blog.csdn.net/qq_52914969?typeblog 一、重定向 将命令和文件结合 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入&am…...
如何使用 Redis 作为高效缓存
如何使用 Redis 作为高效缓存 Redis(Remote Dictionary Server)是一个高性能的 内存存储系统,通常被用作 缓存 来加速数据访问,提高应用的吞吐量和响应速度。本文详细讲解如何使用 Redis 作为高效缓存,包括基本原理、…...
simulink入门学习01
文章目录 1.基本学习方法2.图形环境--模块和参数3.激活菜单---添加到模型3.1输入选项3.2添加到模型3.3更改运算3.4验证要求 4.乘以特定值--Gain模块4.1引入gain模块4.2更改增益参数4.3接入系统4.4大胆尝试 1.基本学习方法 今天突然想要学习这个simulink的相关知识,…...
接上篇基于Alertmanager 配置钉钉告警
Alertmanager 是一个用于处理和管理 Prometheus 警报的开源工具。它负责接收来自 Prometheus 服务器的警报,进行去重、分组、静默、抑制等操作,并通过电子邮件、PagerDuty、Slack 等多种渠道发送通知。 主要功能 去重:合并相同或相似的警报&a…...
【Elasticsearch】index.mapping.source.mode
在Elasticsearch中,当设置 index.mapping.source.mode 为 synthetic 时,Elasticsearch会自动生成和存储源文档的合成版本。这些合成版本的内容取决于你索引的字段和映射定义。具体来说,synthetic 模式会存储以下内容: ### 合成源文…...
GBase8c aes_encrypt和aes_decrypt函数
在数据库中,aes_encrypt和aes_decrypt函数进行加解密时使用的块加密模式。 GBase8c 与 MySQL 的aes_encrypt和aes_decrypt函数区别: 1、GBase8c 中的初始化向量init_vector不能为空 2、MySQL的加密模块block_encryption_mode 为aes-128-ecb,…...
【Unity】ScrollViewContent适配问题(Contentsizefilter不刷新、ContentSizeFilter失效问题)
最近做了一个项目,菜单栏读取数据后自动生成,结果用到了双重布局 父物体 尝试了很多方式,也看过很多大佬的文章,后来自己琢磨了一下,当子物体组件自动生成之后,使用以下以下代码效果会好一些: …...
第二届国赛铁三wp
第二届国赛 缺东西去我blog找👇 第二届长城杯/铁三 | DDLS BLOG web Safe_Proxy 源码题目 from flask import Flask, request, render_template_stringimport socketimport threadingimport htmlapp Flask(__name__)app.route(/, methods"GET"])de…...
对称二叉树(力扣101)
这道题翻译过来就是判断根节点的左右子树是否可以通过翻转,变得完全一样。如果可以,则这棵二叉树为对称二叉树。那么什么样的左右子树可以通过翻转相互变换呢?它们的节点的数值一定对称分布。那么我们就需要同时遍历左右树,不断比…...
postgresql15的停止
PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统,且因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。介绍过postgresql的启动方法,就很有必要介绍下postgresql的停止方法。 一、停止…...
3.1 Go函数调用过程
在 Go 语言中,函数调用的核心机制依赖于内存的栈区分配和指针操作,理解这一原理有助于掌握函数的执行过程。 1. 内存结构概述 在 Go 程序编译成可执行文件并启动后,操作系统会为其分配进程内存,进程内存主要分为以下区域&#x…...
Java导出通过Word模板导出docx文件并通过QQ邮箱发送
一、创建Word模板 {{company}}{{Date}}服务器运行情况报告一、服务器:总告警次数:{{ServerTotal}} 服务器IP:{{IPA}},总共告警次数:{{ServerATotal}} 服务器IP:{{IPB}},总共告警次数:{{ServerBTotal}} 服务器IP:{{IPC}}&#x…...
c++---------------------------模板进阶
1.非类型模板参数 模板参数分类类型形参与非类型形参 。 类型形参即:出现在模板参数列表中,跟在 class 或者 typename 之类的参数类型名称 。 非类型形参,就是用一个常量作为类 ( 函数 ) 模板的一个参数,在类 ( 函数 ) 模板中可…...
FPGA与ASIC:深度解析与职业选择
IC(集成电路)行业涵盖广泛,涉及数字、模拟等不同研究方向,以及设计、制造、封测等不同产业环节。其中,FPGA(现场可编程门阵列)和ASIC(专用集成电路)是两种重要的芯片类型…...
c++面试题,请使用STL的std::remove_if算法删除std::vector<int>容器中大于5的数字
请使用STL的std::remove_if算法删除std::vector容器中大于5的数字 在C 中, std::remove_if 算法并不会真正从容器中删除元素, 而是将满足条件的元素移动到容器末尾,并返回一个指向新的逻辑结束位置的迭代器。 你需要使用容器的 erase 成员函…...
阿里云-银行核心系统转型之业务建模与技术建模
业务领域建模包括业务建模和技术建模,整体建模流程图如下: 业务建模包括业务流程建模和业务对象建模 业务流程建模:通过对业务流程现状分析,结合目标核心系统建设能力要求,参考行业建 模成果,形成结构化的…...
快速搭建深度学习环境(Linux:miniconda+pytorch+jupyter notebook)
本文基于服务器端环境展开,使用的虚拟终端为Xshell。 miniconda miniconda是Anaconda的轻量版,仅包含Conda和Python,如果只做深度学习,可使用miniconda。 [注]:Anaconda、Conda与Miniconda Conda:创建和管…...
智能风控 数据分析 groupby、apply、reset_index组合拳
目录 groupby——分组 本例 apply——对每个分组应用一个函数 等价用法 reset_index——重置索引 使用前编辑 注意事项 groupby必须配合聚合函数、 关于agglist 一些groupby试验 1. groupby对象之后。sum(一个列名) 2. groupby对象…...
Linux(Centos 7.6)命令详解:iconv
1.命令作用 将给定文件的编码从一种编码转换为另一种编码(Convert encoding of given files from one encoding to another) 2.命令语法 Usage: iconv [OPTION...] [FILE...] 3.参数详解 OPTION: 输入/输出格式规范: -f, --from-codeNAME,原始文本编码-t, --t…...
MySQL实现批量表分区完全示例
对于单表大数据量大的问题,如果数据支持分片,使用表分区是个不错的选择,那么MySQL是如何实现表分区的? 一、表分区条件 1.数据库存储引擎支持:InnoDB 和 MyISAM引擎 2.数据库版本支持:MySQL 5.1以后&…...
缓存商品、购物车(day07)
缓存菜品 问题说明 问题说明:用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。 结果: 系统响应慢、用户体验差 实现思路 通过Redis来缓存菜品数据,减少数据库查询…...
开发环境搭建-1:配置 WSL (类 centos 的 oracle linux 官方镜像)
一些 Linux 基本概念 个人理解,并且为了便于理解,可能会存在一些问题,如果有根本上的错误希望大家及时指出 发行版 WSL 的系统是基于特定发行版的特定版本的 Linux 发行版 有固定组织维护的、开箱就能用的 Linux 发行版由固定的团队、社…...
QT 使用QSqlTableModel对数据库进行创建,插入,显示
文章目录 效果图概述功能点代码分析初始数据插入数据数据显示 总结 效果图 概述 本案例用于对数据库中的数据进行显示等其他操作,其他表格筛选,过滤等功能可看此博客 框架:数据模型使用QSqlTableModel,视图使用QTableView&#x…...
26、正则表达式
目录 一. 匹配字符 .:匹配除换行符外的任意单个字符。 二. 位置锚点 ^:匹配输入字符串的开始位置。 $:匹配输入字符串的结束位置。 \b:匹配单词边界。 \B:匹配非单词边界。 三. 重复限定符 *:匹配…...
vue 数据双向绑定无效 明明值修改了 页面却没有变化
在 Vue.js 中,数据双向绑定通常通过 v-model 指令来实现。如果你修改了数据但页面没有更新,可能是因为以下几个原因之一: 1. 检查 data 函数 确保你的数据属性是在 Vue 实例的 data 函数中声明的,并且是响应式的。例如ÿ…...
【深度学习】3.损失函数的作用
损失函数的作用 假设把猫这张图片分成四个像素点,分别为:56、231、24、2(实际应该是三维的,因为还有颜色通道的维度,这里简化成二维)。 像素点拿到以后,进行三分类,粉红色为第一组W…...
使用 Aryn DocPrep、DocParse 和 Elasticsearch 向量数据库实现高质量 RAG
作者:来自 Elastic Hemant Malik 及 Jonathan Fritz 组织依靠自然语言查询从非结构化数据中获取见解,但要获得高质量的答案,首先要进行有效的数据准备。Aryn DocParse 和 DocPrep通过将复杂文档转换为结构化 JSON 或 markdown 来简化此过程&a…...
Vue3初学之Element Plus Dialog对话框,Message组件,MessageBox组件
Dialog的使用: 控制弹窗的显示和隐藏 <template><div><el-button click"dialogVisible true">打开弹窗</el-button><el-dialogv-model"dialogVisible"title"提示"width"30%":before-close&qu…...
【面试】Java 记录一次面试过程 三年工作经验
2025 个人工作经验与基础概念 工作挑战及解决方式:这需要根据个人实际工作经历来回答,例如在项目中遇到性能瓶颈,通过代码优化、数据库索引调整或引入缓存机制等方式解决。单例模式: 常见的实现方式有饿汉式、懒汉式(…...
1/20赛后总结
1/20赛后总结 T1『讨论区管理员』的旅行 - BBC编程训练营 算法:IDA* 分数:0 damn it! Ac_code走丢了~~(主要是没有写出来)~~ T2华强买瓜 - BBC编程训练营 算法:双向DFS或者DFS剪枝 分数:0 Ac_code…...
Linux 高级路由与流量控制-用 tc qdisc 管理 Linux 网络带宽
大家读完记得觉得有帮助记得关注和点赞!!! 此分享内容比较专业,很多与硬件和通讯规则及队列,比较底层需要有技术功底人员深入解读。 Linux 的带宽管理能力 足以媲美许多高端、专用的带宽管理系统。 1 队列࿰…...
大模型GUI系列论文阅读 DAY1:《基于大型语言模型的图形用户界面智能体:综述》(6.6W 字长文)
摘要 图形用户界面(Graphical User Interfaces, GUIs)长期以来一直是人机交互的核心,为用户提供了直观且以视觉为驱动的方式来访问和操作数字系统。传统上,GUI交互的自动化依赖于基于脚本或规则的方法,这些方法在固定…...
【组件库】使用Vue2+AntV X6+ElementUI 实现拖拽配置自定义vue节点
先来看看实现效果: 【组件库】使用 AntV X6 ElementUI 实现拖拽配置自定义 Vue 节点 在现代前端开发中,流程图和可视化编辑器的需求日益增加。AntV X6 是一个强大的图形化框架,支持丰富的图形操作和自定义功能。结合 ElementUI,…...
考研408笔记之数据结构(三)——串
数据结构(三)——串 1. 串的定义和基本操作 本节内容很少,重点是串的模式匹配,所以对于串的定义和基本操作,我就简单提一些易错点。另外,串也是一种特殊的线性表,只不过线性表是可以存储任何东…...
Java 和 JavaScript 的区别
尽管名字相似,JavaScript 的名字中带有 “Java”,确实让很多人误以为它与 Java 有紧密联系。但实际上,它们是完全不同的语言,只是在 JavaScript 的发展历史中与 Java 有一定的关联。 1. JavaScript 的诞生背景 时间点࿱…...
Web3与传统互联网的对比:去中心化的未来路径
随着互联网技术的不断发展,Web3作为去中心化的新兴架构,正在逐步改变我们的网络体验。从传统的Web2到Web3,互联网的演进不仅是技术的革新,更是理念的变革。那么,Web3与传统互联网相比,到底有何不同…...
C++之初识模版
目录 1.关于模版的介绍 2.函数模版 2.1函数模板概念 2.2函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5模板参数的匹配原则 3.类模版 3.1类模板的定义格式 3.2 类模板的实例化 1.关于模版的介绍 C中的模板是一种通用编程工具,它允许程序员编…...
如何给自己的域名配置免费的HTTPS How to configure free HTTPS for your domain name
今天有小伙伴给我发私信,你的 https 到期啦 并且随手丢给我一个截图。 还真到期了。 javapub.net.cn 这个网站作为一个用爱发电的编程学习网站,用来存编程知识和面试题等,平时我都用业余时间来维护,并且还自费买了服务器和阿里云…...
什么是Memecoin?它如何在加密货币世界崭露头角
在加密货币的世界里,Memecoin已经成为一个越来越受欢迎的词汇。作为一种新兴的加密货币,Memecoin凭借其独特的性质和文化背景吸引了大量投资者和加密爱好者。本文将详细探讨Memecoin是什么、它的起源、以及为什么它在市场中越来越受到关注。 什么是Meme…...
[unity 高阶]使用ASE制作一个cubed的skybox的shader,跟做版本
第一步,导入ASE 此步骤不在此讲解,有时间再补充 第二步,创建shader 需要选择shader的类型,此处选择legacy/Unlit第三步,创建变量 根据默认shader中的变量 _Tint (“Tint Color”, Color) = (.5, .5, .5, .5)[Gamma] _Exposure (“Exposure”, Range(0, 8)) = 1.0_Rotat…...
Java复习第四天
一、代码题 1.相同的树 (1)题目 给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p[1,2,3],q[1,2,3] 输出:true示例 2: 输…...
mysql数据库启动出现Plugin ‘FEEDBACK‘ is disabled.问题解决记录
本人出现该问题的环境是xampp,异常关机,再次在xampp控制面板启动mysql出现该问题。出现问题折腾数据库之前,先备份数据,将mysql目录下的data拷贝到其他地方,这很重要。 然后开始折腾。 查资料,会发现很多…...
Spring 是如何解决循环依赖问题
Spring 框架通过 三级缓存 机制来解决循环依赖问题。循环依赖是指两个或多个 Bean 相互依赖,形成一个闭环,例如 Bean A 依赖 Bean B,而 Bean B 又依赖 Bean A。Spring 通过提前暴露未完全初始化的 Bean 来解决这个问题。 以下是 Spring 解决…...
【论文笔记】TranSplat:深度refine的camera-required可泛化稀疏方法
深度信息在场景重建中是非常重要的先验,有一个精确的深度估计,重建质量起码提升一半,这一篇就是围绕着transformer优化深度来展开工作,进而提升GS的效果,感谢作者大佬们的work! 1 Abstract 与之前的3D重建方…...
营销2.0时代的挑战与开源AI智能名片2+1链动模式S2B2C商城小程序源码的解决方案
摘要:本文旨在探讨营销2.0时代企业在客户管理方面的挑战,并提出开源AI智能名片21链动模式S2B2C商城小程序源码作为解决方案。营销2.0虽然强调客户导向,但在实际操作中,企业往往无差别地对待所有客户,导致客户忠诚度下降…...
PHP教育系统小程序
🌐 教育系统:全方位学习新体验,引领未来教育风尚 🚀 教育系统:创新平台,智慧启航 📱 教育系统,一款深度融合科技与教育的创新平台,匠心独运地采用先进的ThinkPHP框架与U…...
开篇:吴恩达《机器学习》课程及免费旁听方法
课程地址: Machine Learning | Coursera 共包含三个子课程 Supervised Machine Learning: Regression and Classification | Coursera Advanced Learning Algorithms | Coursera Unsupervised Learning, Recommenders, Reinforcement Learning | Coursera 免费…...
zookeeper的介绍和简单使用
1 zookerper介绍 zookeeper是一个开源的分布式协调服务,由Apache软件基金会提供,主要用于解决分布式应用中的数据管理、状态同步和集群协调等问题。通过提供一个高性能、高可用的协调服务,帮助构建可靠的分布式系统。 Zookeeper的特点和功能…...
python学opencv|读取图像(三十八 )阈值自适应处理
【1】引言 前序学习了5种阈值处理方法,包括(反)阈值处理、(反)零值处理和截断处理,相关文章链接为: python学opencv|读取图像(三十三)阈值处理-灰度图像-CSDN博客 python学opencv|读取图像(三十四&#…...