Linux部署Prometheus+Grafana
【Linux】Prometheus+Grafana
- 一、Prometheus(普罗米修斯)
- 1、Prometheus简述
- 2、Prometheus特点
- 3、Prometheus生态组件
- 4、Prometheus工作原理
- 二、部署Prometheus
- 1、系统架构
- 2、部署Prometheus
- 3、修改配置文件
- 4、配置系统启动文件
- 三、部署 Node Exporter 监控系统级指标
- 1、下载安装包
- 2、配置启动文件
- 3、启动
- 四、监控远程MySQL
- 1、下载安装包
- 2、安装mysqld_exporter组件
- 3、配置服务端
- 五、Grafana平台部署
- 1、Grafana简介
- 2、Grafana起源与初衷
- 3、Grafana部署
- 4、配置数据源
- 5、导入模板
- 6、数据源做数据展示
- 7、导入监控模板
一、Prometheus(普罗米修斯)
1、Prometheus简述
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB),基于Go语言开发,是Google BorgMon监控系统的开源版本。Prometheus在2016年加入了云原生计算基金会,成为Kubernetes之后的第二个项目。
Prometheus是一个开源的监控系统,它可以帮助用户监控各种不同类型的系统和应用程序。Prometheus采用的是pull模型,它定期从目标系统中拉取指标数据在本地数据库中。这些指标数据可以用于生成图表、警报和报告,以帮助用户了解他们系统的运作状态和性能表现。Prometheus通过多种数学算法能实现强大的监控需求,原生支持k8s服务发现,能监控容器的动态变化,并且结合Grafana能绘出漂亮图形,然后使用Altermanager或Grafana实现报警。
2、Prometheus特点
-
多维数据模型:由度量名称和键值对标识的时间序列数据
-
时间序列数据:按照时间顺序记录系统、设备状态变化的数据,每个数据称为一个样本;服务器指标数据、应用程序性能监控数据、网络数据等都是时序数据
-
内置时间序列(Time Series)数据库:Prometheus ;外置的远端存储通常会用:InfluxDB、OpenTSDB 等
-
promQL 一种灵活的查询语言,可以利用多维数据完成复杂查询
-
基于 HTTP 的 pull(拉取)方式采集时间序列数据
-
同时支持 PushGateway 组件收集数据
-
通过静态配置或服务发现发现目标
-
支持作为数据源接入 Grafana
3、Prometheus生态组件
Prometheus Server:用于收集、存储和查询监控数据的核心组件。它定期从配置的目标中拉取指标数据,并将其存储在本地的时间序列数据库中。
Alertmanager:用于处理和发送警报通知的组件。Alertmanager可以根据配置的规则对监控数据进行分析,并在触发警报条件时发送通知。
Exporters:用于将各种服务和应用程序的指标数据转换成Prometheus可读取的格式。
Client Libraries:用于将应用程序的指标数据暴露给Prometheus Server的库。Prometheus提供了多种语言的客户端库,方便开发人员集成监控功能到他们的应用程序中。
Service Discovery:服务发现,用于动态发现待监控的 Target,Prometheus 支持多种服务发现机制:文件、DNS、Consul、Kubernetes 等等。 服务发现可通过第三方提供的接口,Prometheus 查询到需要监控的 Target 列表,然后轮询这些 Target 获取监控数据。该组件目前由 Prometheus Server 内建支持
Grafana:一个开源的数据可视化工具,可以与Prometheus集成,用于创建仪表板和图表展示监控数据。
4、Prometheus工作原理
●Prometheus Server 基于服务发现(Service Discovery)机制或静态配置获取要监视的目标(Target),并通过每个目标上的指标 exporter 来采集(Scrape)指标数据;
●Prometheus Server 内置了一个基于文件的时间序列存储来持久存储指标数据,用户可使用 PromQL 接口来检索数据,也能够按需将告警需求发往 Alertmanager 完成告警内容发送;
●一些短期运行的作业的生命周期过短,难以有效地将必要的指标数据供给到 Server 端,它们一般会采用推送(Push)方式输出指标数据, Prometheus 借助于 Pushgateway 接收这些推送的数据,进而由 Server 端进行抓取
二、部署Prometheus
1、系统架构
2、部署Prometheus
直接访问官网
①地址:https://prometheus.io/download/
在服务器上直接下载
②地址:https://prometheus.io/download/
wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz
[root@Prometheus prometheus]# setenforce 0
[root@Prometheus prometheus]# systemctl disable --now firewalld.service
[root@Prometheus ~]# tar -xvf prometheus-2.53.0.linux-amd64.tar.gz
[root@Prometheus ~]#mv prometheus-2.53.0.linux-amd64 /usr/local/prometheus
3、修改配置文件
[root@Prometheus prometheus]# cp prometheus.yml prometheus.yml.bak## 第六行添加
scrape_timeout: 10s ##采集超时时间
## 最后一行localhost改为本机的ip(其实不改也可以,为了分辨,建议修改)- targets: ["172.16.11.209:9090"]
4、配置系统启动文件
配置系统启动文件,并且设置开机自启动
#进入这个文件,默认是没有的,直接进入就行
vim /usr/lib/systemd/system/prometheus.service [Unit] #服务单元
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target #依赖关系[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \ #配置文件
--storage.tsdb.path=/usr/local/prometheus/data/ \ #数据目录
--storage.tsdb.retention=15d \ #保存时间
--web.enable-lifecycle #开启热加载ExecReload=/bin/kill -HUP $MAINPID #重载
Restart=on-failure[Install]
WantedBy=multi-user.target
[root@Prometheus prometheus]# systemctl restart prometheus
[root@Prometheus prometheus]# systemctl enable prometheus
[root@Prometheus prometheus]# ss -antp|grep 9090
通过浏览器访问http:// 服务器 IP:9090 就可以访问到 Prometheus 的主界面:
默认只监控了本机一台,点 Status→点 Targets→可以看到只监控了本机:
通过 http:// 服务器 IP:9090/metrics 可以查看到监控的数据:
三、部署 Node Exporter 监控系统级指标
1、下载安装包
地址:https://prometheus.io/download/
监控远程主机(被监控端上安装node_Export192.168.10.131)组件
(1)上传所需要软件包到 /opt目录,并解压
[root@node opt]# tar xf node_exporter-1.8.1.linux-amd64.tar.gz
[root@node opt]# ls
node_exporter-1.8.1.linux-amd64 node_exporter-1.8.1.linux-amd64.tar.gz rh
[root@node opt]# cd node_exporter-1.8.1.linux-amd64/
[root@node node_exporter-1.8.1.linux-amd64]# ls
LICENSE node_exporter NOTICE
[root@node node_exporter-1.8.1.linux-amd64]# mv node_exporter /usr/local/bin/
[root@node node_exporter-1.8.1.linux-amd64]#
2、配置启动文件
[root@node ~]# vim /usr/lib/systemd/system/node_exporter.service[Unit]
Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstatExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure[Install]
WantedBy=multi-user.target
3、启动
[root@node ~]# systemctl start node_exporter.service
[root@node ~]# systemctl enable node_exporter.service
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
[root@node ~]# ss -natp|grep 9100浏览器访问:http://192.168.109.20:9100/metrics ,可以看到 Node Exporter 采集到的指标数据
通过浏览器访问 http:// 被监控端 IP:9100/metrics 就可以查看到 node_exporter 在被监控端收集的监控信息:
点击Metrics
可以查看node_exporter 在被监控端收集的监控信息
(1)修改Prometheus配置文件
vim /usr/local/prometheus/prometheus.yml- job_name: 'agent'static_configs:- targets: ['192.168.10.131:9100']
[root@Prometheus prometheus]# systemctl restart prometheus.service #修改完后重启服务
[root@Prometheus prometheus]# systemctl status prometheus
监测prometheus配置文件是否正确
[root@Prometheus prometheus]#cd /usr/local/prometheus
[root@Prometheus prometheus]# ./promtool check config prometheus.yml
成功状态
Checking prometheus.ymlSUCCESS: prometheus.yml is valid prometheus config file syntax
失败状态
Checking prometheus.ymlFAILED: parsing YAML file prometheus.yml: "172.16.11.209:9999/cs" is not a valid hostname
(2)访问Prometheus服务器,刷新
回到 web 管理界面→点 Status→点 Targets→可以看到多了一台监控目标
注:也可以在本机安装 node_exporter,使用上面的方式监控本机。
四、监控远程MySQL
在被管理机 agent上安装 mysqld_exporter 组件
1、下载安装包
地址:https://prometheus.io/download/
也可在服务器上直接下载
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
2、安装mysqld_exporter组件
[root@agent opt]# tar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local
[root@agent opt]# mv /usr/local/mysqld_exporter-0.14.0.linux-amd64/ /usr/local/mysqld_exporter
[root@agent opt]# ls /usr/local/mysqld_exporter/
LICENSE mysqld_exporter NOTICE
(1) 安装mariadb数据库,并授权
[root@node opt]# yum install mariadb\* -y
[root@node opt]# systemctl start mariadb
[root@node opt]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@node opt]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> grant select,replication client,process ON *.* to 'mysql_monitor'@'192.168.10.131' identified by '123456';
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]>
(2)创建一个mariadb配置文件
创建一个mariadb配置文件,写上连接的用户名和密码(和上面的授权的用户名和密码要对应)
(3)配置启动文件
[root@node opt]# vim /usr/lib/systemd/system/mysqld_exporter.service[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target[Service]
Type=simple
ExecStart=/usr/local/bin/mysqld_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstatExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure[Install]
WantedBy=multi-user.target
#启动
systemctl restart mysqld_exporter#设置开机自启
systemctl enable mysqld_exporter#查看端口是否启动9104
netstat -anput | grep 9104
第二种启动方式
#进入解压目录
cd /usr/local/mysqld_exporter#挂后台执行 mysqld_exporter
nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &#查看端口是否启动
netstat -anput | grep 9104
页面访问:IP:9104
客户端配置完成
3、配置服务端
[root@Prometheus ~]# vim /usr/local/prometheus/prometheus.yml- job_name: "agetn-mysql"static_configs: - targets: ["192.168.10.131:9104"][root@Prometheus ~]# systemctl restart prometheus.service
添加完后,重启服务
[root@Prometheus ~]# systemctl restart prometheus.service
等待重启完成,刷新一下页面,如果还是没有可以清除一下缓存,试试。
添加成功
五、Grafana平台部署
1、Grafana简介
Grafana是一种开源的数据可视化和监控平台,它允许用户通过创建动态仪表板来监视和分析数据。Grafana最初由Torkel Ödegaard于2014年创建,旨在为不同数据源提供统一的可视化界面。它支持多种数据源,包括但不限于Graphite、Prometheus、Elasticsearch、InfluxDB等。通过Grafana,用户可以轻松创建图标、图形和面板,以直观和动态的方式展示数据趋势、指标和报警。
随着公司业务的不断发展,业务种类的增加、服务器数量的增长和网络环境的复杂以及版本发布频繁,从而不可避免带来了线上事故的增多,因此需要对服务器进行全方位的监控,提前预警,急需一个工具来实现解决这个问题,而Grafana的出现完美解决了这个问题。
Grafana特点:
多数据源支持:可以从多种数据源中收集数据,并在同一仪表板中进行统一展示。
可视化选项丰富:提供了各种图表类型、样式和配置选项,用户可以根据需求定制图表。
告警功能:支持设置警报规则,并在达到特定条件时发送通知。
插件生态系统:拥有丰富的插件生态系统,用户可以根据需要扩展和定制功能。
社区支持:拥有活跃的开发社区,提供了丰富的文档、教程和支持资源。
2、Grafana起源与初衷
Grafana的起源可以追溯到2014年,由瑞典工程师Torkel Ödegaard创建。当时,Torkel是一位开发者,他感受到了在处理和展示不同数据源时的困难和不便。他意识到,许多组织和开发者都面临着类似的挑战,需要从多个数据源中收集数据,并以可视化的方式将其呈现出来。
因此,Torkel决定创建一个开源的数据可视化平台,旨在为用户提供统一的界面和工具,帮助他们轻松地监控和分析数据。他的初衷是构建一个灵活、易于使用且功能强大的平台,能够满足各种不同场景下的需求。在初始阶段,Grafana主要是为了满足Graphite这样的数据存储和可视化工具的需求而创建的。但随着时间的推移,Grafana的功能逐渐扩展,开始支持更多的数据源,如InfluxDB、Prometheus、Elasticsearch等,使其成为一个更加通用的数据可视化和监控平台。由于其开放源代码的特性,Grafana迅速得到了开发者和用户的欢迎,形成了一个活跃的社区。这个社区不断贡献新的功能、插件和改进,推动了Grafana的不断发展和壮大。
3、Grafana部署
下载地址:https://grafana.com/grafana/download
下载推荐rpm包,点击一下,就会自动下载;或者复制一下,粘贴到服务器上也会下载。
如果是直接在服务器执行下载的,直接等待下载完成启动即可,如果是下载的rpm包,就需要上传到服务器上,然后使用rpm -ivh grafana-enterprise-9.5.2-1.x86_64.rpm 进行安装;
如果是使用的二进制离线包安装的,默认是没有系统启动配置文件的,所以我们需要加一个:
#进入这个文件,默认是没有的,直接进入就行
vim /usr/lib/systemd/system/grafana.service #将下面的全部写进去
[Unit]
Description=Grafana instance
After=network.target[Service]
Type=simple
WorkingDirectory=/data/monitor/grafana/
ExecStart=/data/monitor/grafana/bin/grafana-server
Restart=always[Install]
WantedBy=multi-user.target[root@Prometheus opt]# systemctl start grafana-server.service #启动
[root@Prometheus opt]# systemctl enable grafana-server.service #设置开机自启
[root@Prometheus opt]#ss -anput | grep 3000 #查看端口是否启动3000
页面访问 IP:port(3000)
注意:默认账号密码为:
账号:admin
密码:admingrafana默认配置文件目录 /etc/grafana/grafana.ini
进去需要设置一个新的密码
4、配置数据源
点击保存测试
可以看到刚创建的模板
5、导入模板
点进去,选择:Dashboards–>从中选择任意一个模板,这里我选择第二个,点击import。
点击名称,进入可以查看模板
这里所展示的只是个模板
6、数据源做数据展示
点击右上角加号,再点击创建新的仪表板
选择刚刚添加的监控项
在这写了三个条件
再次点击dashboard可以查看到
自定义的监控模块(监控的服务端的1、5、15分钟的平均负载),一个一个添加比较麻烦,我们可以去找一些模板
7、导入监控模板
这里我们使用现成的模板导入即可,GitHub上面很多人开发了dashboards模板,官方社区上也有很多开源的dashboards模板,我们只需要把模板的Copy ID 或者 Download JSON文件导入到grafana即可,参考官网免费的dashboards模板。官方模板地址:https://grafana.com/grafana/dashboards/
进入官网,往下拉,可以看到选择这几个,Data Source
选择Prometheus
,然后搜索主机监控,或者自己定义,linux什么的都可以,根据自己的需求选择
可以看到右边有Copy ID
和 Download JSON
,自行选择就行;这里我选择复制id,json需要下载
复制好id之后,打开在 grafana 页面中,+ Create -> Import ,输入面板 ID 号或者上传 JSON 文件,点击 Load,即可导入监控面板
添加完成后页面视图如下
相关文章:

Linux部署Prometheus+Grafana
【Linux】PrometheusGrafana 一、Prometheus(普罗米修斯)1、Prometheus简述2、Prometheus特点3、Prometheus生态组件4、Prometheus工作原理 二、部署Prometheus1、系统架构2、部署Prometheus3、修改配置文件4、配置系统启动文件 三、部署 Node Exporter …...

【视频讲解】神经网络、Lasso回归、线性回归、随机森林、ARIMA股票价格时间序列预测|附代码数据
全文链接:https://tecdat.cn/?p37019 分析师:Haopeng Li 随着我国股票市场规模的不断扩大、制度的不断完善,它在金融市场中也成为了越来越不可或缺的一部分。 【视频讲解】神经网络、Lasso回归、线性回归、随机森林、ARIMA股票价格时间序列…...
低代码前端框架Amis全面教程
什么是Amis? 1.1 Amis的基本概念 Amis是一个基于JSON配置的前端低代码框架,由百度开源。它允许开发者通过简单的JSON配置文件来生成复杂的后台管理页面,从而大大减少了前端开发的工作量。Amis的核心理念是通过配置而非编码来实现页面的构建…...

Windows 如何安装和卸载 OneDrive?具体方法总结
卸载 OneDrive 有人想问 OneDrive 可以卸载吗?如果你不使用当然可以卸载,下面是安装和卸载 OneDrive 中的卸载应用具体操作步骤: 卸载 OneDrive 我们可以从设置面板中的应用选项进行卸载,打开设置面板之后选择应用,然…...

c# .net core中间件,生命周期
某些模块和处理程序具有存储在 Web.config 中的配置选项。但是在 ASP.NET Core 中,使用新配置模型取代了 Web.config。 HTTP 模块和处理程序如何工作 官网地址: 将 HTTP 处理程序和模块迁移到 ASP.NET Core 中间件 | Microsoft Learn 处理程序是…...

Spring后端框架复习总结
之前写的博客太杂,最近想把后端框架的知识点再系统的过一遍,主要是Spring Boot和Mybatis相关,带着自己的理解使用简短的话把一些问题总结一下,尤其是开发中和面试中的高频问题,基础知识点可以参考之前写java后端专栏,这篇不再赘述。 目录 Spring什么是AOP?底层原理?事务…...

基于Llama Index构建RAG应用
前言 Hello,大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,本文参与活动是2024 DataWhale AI夏令营;😲 在本文中作者将通过: Gradio、Streamlit和LlamaIndex介绍 LlamaIndex 构…...
SSLRec代码分析
文章目录 encoder-models-general_cfautocf.py data_utilsdata_handler_general_cf.py输入输出说明使用方法 trainertuner.py encoder-models-general_cf autocf.py import torch as t # 导入PyTorch并重命名为t from torch import nn # 从PyTorch导入神经网络模块 import …...
第四节shell条件测试(1)(2)
一,命令执行结果判定 &&在命令执行后如果没有任何报错时会执行符号后面的动作 ||在命令执行后如果命令有报错会执行符号后的动作 示例: vim lee.sh #!/bin/bash ls /mnt/file &> /dev/null &&{echo /mnt/filr is not existecho no }||{echo /mnt/fi…...

申请https证书的具体流程
申请HTTPS证书的具体流程通常涉及以下步骤,不过请注意,具体细节可能因不同的证书颁发机构(CA)而有所差异: 1、确定证书类型: 证书类型:根据需求选择合适的SSL证书类型。常见的有DV(…...

IP溯源工具--IPTraceabilityTool
工具地址:xingyunsec/IPTraceabilityTool: 蓝队值守利器-IP溯源工具 (github.com) 工具介绍: 在攻防演练期间,对于值守人员,某些客户要求对攻击IP都进行分析溯源,发现攻击IP的时候,需要针对攻击IP进行分析…...

字节抖音电商 后端开发岗位 一面
笔者整理答案,以供参考 自我介绍 项目(20分钟) RocketMQ延时消息的底层实现 回答: 延时消息的实现主要依赖于RocketMQ中的定时任务机制。消息被发送到Broker时,会先存储在一个特定的延时消息队列中。Broker会定时扫…...

前端开发日记——在MacBook上配置Vue环境
前言 大家好,我是来自CSDN的寄术区博主PleaSure乐事。今天是开始学习vue的第一天,我使用的编译器是vscode,浏览器使用的是谷歌浏览器,后续会下载webstorm进行使用,当前学习阶段使用vscode也是可以的,不用担…...

测试开发面经总结(三)
TCP三次握手 TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。 一开始,客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口,处于 LISTEN 状态 客户端会随机初始化序号&…...
开始构建我们自己的大语言模型:数据处理部分
关注本专栏(NLP简论:手搓大语言模型实践) 继续学习从头编写、训练自己的大语言模型。 接上集,本章我们将深入说一下大语言模型数据处理部分的细节,并直接提供本部分的完整代码。 【配套资源】 暂时的词汇表࿱…...

springboot系列十: 自定义转换器,处理JSON,内容协商
文章目录 自定义转换器基本介绍应用实例查看源码注意事项和细节 处理JSON需求说明应用实例 内容协商基本介绍应用实例debug源码优先返回xml注意事项和细节 ⬅️ 上一篇: springboot系列九: 接收参数相关注解 🎉 欢迎来到 springboot系列十: 自定义转换器,…...

C++(new与delete操作符)
C中的new与delete new 与 delete定位new表达式 new 与 delete 在C中需要动态申请内存空间时需要使用 new 与 delete 这两个操作符 #include <iostream> using namespace std; int main() {int* p1 new int;//开辟一块int类型大小的空间给p1int* p2 new int(1);//开辟…...

STM32智能工业自动化监控系统教程
目录 引言环境准备智能工业自动化监控系统基础代码实现:实现智能工业自动化监控系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:工业自动化与管理问题解决方案与优化收尾与总结 1. 引言 智能…...
WPF设置欢迎屏幕,程序启动过度动画
当主窗体加载时间过长,这时候基本都会想添加一个等待操作来响应用户点击,提高用户体验。下面我记录两个方法,一点拙见,仅供参考。 方法1:在App类中使用SplashScreen类。 protected override void OnStartup(StartupEventArgs e)…...
Flink实时开发添加水印的案例分析
在Flink中,处理时间序列数据时,通常需要考虑事件时间和水印(watermarks)的处理。以下是修改前后的代码对比分析: 修改前的代码: val systemDS unitDS.map(dp > {dp.setDeviceCode(DeviceCodeEnum.fro…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...