性能監控體系:InfluxDB Grafana Prometheus

InfluxDB

簡介

什么是 InfluxDB ?

  • InfluxDB 是一個由 InfluxData 開發的,開源的時序型數據庫。它由 Go 語言寫成,著力于高性能地查詢與存儲時序型數據。

  • InfluxDB 被廣泛應用于存儲系統的監控數據、IoT 行業的實時數據等場景。

  • 可配合?Telegraf?服務(Telegraf 可以監控系統 CPU、內存、網絡等數據)。

  • 可配合?Grafana?服務(數據展現的圖像界面,將 InfluxDB 中的數據可視化)。

  • InfluxDB 官網

什么是時序數據?

時間序列數據(TimeSeries Data):按照時間順序記錄系統、設備狀態變化的數據被稱為時序數據。其應用場景很多,如:

  • 無人駕駛車輛運行中要記錄的經度、緯度、速度、方向、旁邊的距離等。
  • 某一地區的各車輛的行駛軌跡數據。
  • 傳統證券行業實時交易數據。
  • 實時運維監控數據等。

時序數據特點

  • 性能好:關系型數據庫對于大規模數據的處理性能糟糕,而 NoSQL 可以比較好地處理大規模數據,但依然比不上時間序列數據庫。
  • 存儲成本低:高效的壓縮算法,節省存儲空間,有效降低 I/O 。

數據存儲結構

與 MySQL 的基礎概念對比

概念MySQLInfluxDB
數據庫(同)databasedatabase
表(不同)tablemeasurement
列(不同)columntag(帶索引的,非必須)、field(不帶索引)、timestemp(唯一主鍵)
  • tag set:不同的每組 tag key 和 tag value 的集合。

  • field set:每組 field key 和 field value 的集合。

  • retention policy:數據存儲策略(默認策略為 autogen)InfluxDB 沒有刪除數據操作,規定數據的保留時間達到清除數據的目的。

  • series:共同 retention policy、measurement 和 tag set 的集合。

示例數據

  • census 是 measurement
  • butterflies 和 honeybees 是 field key
  • location 和 scientist 是 tag key
name: census
————————————
time                 butterflies     honeybees     location     scientist
2015-08-18T00:00:00Z      12             23           1         langstroth
2015-08-18T00:00:00Z      1              30           1         perpetua
2015-08-18T00:06:00Z      11             28           1         langstroth
2015-08-18T00:06:00Z      11             28           2         langstroth

注意點

  • tag 只能為字符串類型。
  • field 類型無限制。
  • 不支持 join。
  • 支持連續查詢操作(匯總統計數據):CONTINUOUS QUERY。

部署

新建容器網絡:
docker network create grafana

運行容器:
docker run -d --name=influxdb --network grafana -p 8086:8086 -v ${PWD}/influxdb/:/var/lib/influxdb influxdb:1.7.10

創建數據庫:

  • 第一種方式:
    curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE jmeter"
  • 第二種方式:
    docker exec -it influxdb influx

簡單使用:

create database jmeters;
use jmeter;
show measurements;
select * from jmeter limit 3;

常用 InfluxQL

-- 查看所有的數據庫
show databases;-- 使用特定的數據庫
use database_name;-- 查看所有的 measurement
show measurements;-- 查詢 10 條數據
select * from measurement_name limit 10;-- 數據中的時間字段默認顯示的是一個納秒時間戳,改成可讀格式
precision rfc3339; -- 之后再查詢,時間就是 rfc3339 標準格式
-- 或可以在連接數據庫的時候,直接帶該參數
influx -precision rfc3339-- 查看一個 measurement 中所有的 tag key 
show tag keys-- 查看一個 measurement 中所有的 field key 
show field keys-- 查看一個 measurement 中所有的保存策略(可以有多個,一個標識為 default)
show retention policies;

Grafana

簡介

Grafana(官網)是一個跨平臺的、開源的度量分析和可視化工具,可以通過將采集的數據查詢然后可視化的展示,并及時通知。

它主要有以下六大特點:

  1. 展示方式:快速靈活的客戶端圖表,面板插件有許多不同方式的可視化指標和日志,官方庫中具有豐富的儀表盤插件,比如熱圖、折線圖、圖表等多種展示方式;
  2. 支持多種數據源:Graphite、InfluxDB、OpenTSDB、Prometheus、Elasticsearch、CloudWatch 和 KairosDB 等;
  3. 通知提醒:以可視方式定義最重要指標的警報規則,Grafana 將不斷計算并發送通知,在數據達到閾值時通過 Slack、PagerDuty 等獲得通知;
  4. 混合展示:在同一圖表中混合使用不同的數據源,可以基于每個查詢指定數據源,甚至自定義數據源;
  5. 注釋:使用來自不同數據源的豐富事件注釋圖表,將鼠標懸停在事件上會顯示完整的事件元數據和標記;
  6. 過濾器:Ad-hoc 過濾器允許動態創建新的鍵/值過濾器,這些過濾器會自動應用于使用該數據源的所有查詢。

????自動化測試相關教程推薦:

2023最新自動化測試自學教程新手小白26天入門最詳細教程,目前已有300多人通過學習這套教程入職大廠!!_嗶哩嗶哩_bilibili

2023最新合集Python自動化測試開發框架【全棧/實戰/教程】合集精華,學完年薪40W+_嗶哩嗶哩_bilibili

測試開發相關教程推薦

2023全網最牛,字節測試開發大佬現場教學,從零開始教你成為年薪百萬的測試開發工程師_嗶哩嗶哩_bilibili

postman/jmeter/fiddler測試工具類教程推薦

講的最詳細JMeter接口測試/接口自動化測試項目實戰合集教程,學jmeter接口測試一套教程就夠了!!_嗶哩嗶哩_bilibili

2023自學fiddler抓包,請一定要看完【如何1天學會fiddler抓包】的全網最詳細視頻教程!!_嗶哩嗶哩_bilibili

2023全網封神,B站講的最詳細的Postman接口測試實戰教學,小白都能學會_嗶哩嗶哩_bilibili

??總結:

?光學理論是沒用的,要學會跟著一起敲,要動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰案例來學習。

如果對你有幫助的話,點個贊收個藏,給作者一個鼓勵。也方便你下次能夠快速查找。

如有不懂還要咨詢下方小卡片,博主也希望和志同道合的測試人員一起學習進步

在適當的年齡,選擇適當的崗位,盡量去發揮好自己的優勢。

我的自動化測試開發之路,一路走來都離不每個階段的計劃,因為自己喜歡規劃和總結,

測試開發視頻教程、學習筆記領取傳送門!!

基礎概念

Data Source

  • Grafana 確切的說是一個前端展示工具,將數據以非常美觀直接的圖形展示出來。那么這些數據必須有一個來源吧,那么 Grafana 獲取數據的地方就稱為 Data Source。
  • 官方文檔上說 Grafana 支持以下數據源:Graphite、InfluxDB、OpenTSDB、Prometheus、Elasticsearch、CloudWatch。
  • 在 Grafana 3.0+ 之后,不僅支持上面說的這些數據源,還支持一些其它的數據源,這些就稱為 Grafana Plugins。Grafana 支持的插件非常多,只要做一些簡單的插件安裝配置,就能獲取豐富的數據源。
  • 如下所示,添加數據源:

    image

DashBoard

  • 就像汽車儀表盤一樣可以展示很多信息,包括車速、水箱溫度等。Grafana 的 DashBoard 就是以各種圖形的方式來展示從 Datasource 拿到的數據。
  • 添加儀表盤的示例步驟:
    1. 如搜索 jmeter 儀表盤:

      image

    2. 選擇對應的儀表盤 ID :

      image

    3. 復制ID,填入導入界面(導入時需要選擇用戶組以及對應的數據庫):

      image

    4. 展示儀表盤(右上角可以選擇數據展示的時間段和刷新頻次):

      image

Row

  • Row 是 DashBoard 的基本組成單元,一個 DashBoard 可以包含很多個 Row 。
  • 一個 Row 可以展示一種信息或者多種信息的組合,比如系統內存使用率,CPU 五分鐘及十分鐘平均負載等。所以在一個 DashBoard 上可以集中展示很多內容。

Panel

  • Panel(面板)實際上就是 Row 展示信息的方式,支持表格(table)、列表(alert list)、熱圖(Heatmap)等多種方式,具體可以去官網上查閱。

Query Editor

  • 用來指定獲取哪一部分數據,類似于 SQL 查詢語句。比如要在某個 row 里面展示 test 這張表的數據,那么 Query Editor 里面就可以寫成 select * from test。
  • 這只是一種比方,實際上每個 DataSource 獲取數據的方式都不一樣,所以寫法也不一樣,比如像 zabbix 數據則是以指定某個監控項的方式來獲取的。

Organization

  • org 是一個很大的概念,每個用戶可以擁有多個 org,grafana 有一個默認的 main org 。
  • 用戶登錄后可以在不同的 org 之間切換,前提是該用戶擁有多個 org 。
  • 不同的 org 之間完全不一樣,包括 datasource、dashboard 等都不一樣。
  • 創建一個 org 就相當于開了一個全新的視圖,所有的 datasource、dashboard 等都要再重新開始創建。

User

  • Grafana 里面用戶有三種角色:admin、editor、viewer。
  • admin 權限最高,可以執行任何操作,包括創建用戶、新增 Datasource、創建 DashBoard 等。
  • editor 角色不可以創建用戶、不可以新增 Datasource、可以創建 DashBoard 。
  • viewer 角色僅可以查看 DashBoard 。
  • 在 2.1 版本及之后新增了一種角色 read only editor(只讀編輯模式),這種模式允許用戶修改 DashBoard,但是不允許保存。
  • 每個 user 可以擁有多個 organization 。

部署

運行容器:

docker run -d --name grafana --network grafana -p 3000:3000 grafana/grafana:6.6.2

image

默認登錄賬號密碼為 admin/admin 。

壓測結果采集:Jmeter + InfluxDB + Grafana

Jmeter 自帶的監視器在 Windows 使用 GUI 模式運行時,其渲染和效果都不是太好,而在 linux 環境下又無法實時可視化。

因此如果有一個性能測試結果實時展示的頁面,就可以提升我們對系統性能表現的掌握程度,另一方面也可以提升我們的測試效率。

Grafana 添加 InfluxDB 數據源

image


image


配置項:

  • URL:http://influxdb:8086:由于 grafana 和 influxdb 在在同個容器網絡中,因此可直接填寫【influxdb容器名:端口號】。
  • Database:jmeter:在 influxdb 中創建的數據庫名。
  • Min time interval:5:每 5 秒刷新一次數據源(這里是與 jmeter backend listener 每 5 秒寫入一次數據到 influxdb 保持同步)。

image

Grafana 創建 Jmeter 儀表盤

image

導入 Grafana 官方 Jmeter 儀表盤:Apache JMeter Dashboard using Core InfluxdbBackendListenerClient | Grafana Labs

image


image

填寫自定義配置:

image

儀表盤創建成功:

image

Jmeter 配置 Influxdb 監聽器

image

配置項說明:

  • influxdbUrl:http://192.168.3.222:8086/write?db=jmeter:influxdb 服務器地址以及寫入的數據庫。
  • application:app_1自定義應用名稱,可在 grafana 儀表盤中篩選區分。
  • measurement:jmeter:influxdb 表名,默認為 jmeter(寫入數據時會自動創建該表)。
  • summaryOnly:false:在 grafana 儀表盤中顯示詳細 Error 信息。
  • testTitle:test_demo_1:在 influxdb 表數據中作區分。

查看寫入的 Influxdb 表數據:

[root@localhost ~]# docker exec -it influxdb influxConnected to http://localhost:8086 version 1.7.10
InfluxDB shell version: 1.7.10
> show measurements;
name: measurements
name
----
events
jmeter
>
> select * from jmeter limit 3;
name: jmeter
time                application avg     count countError endedT hit max maxAT meanAT min minAT pct90.0 pct95.0 pct99.0 rb    responseCode responseMessage sb   startedT statut transaction
----                ----------- ---     ----- ---------- ------ --- --- ----- ------ --- ----- ------- ------- ------- --    ------------ --------------- --   -------- ------ -----------
1658844069082000000 app_1                                0              0     0          0                                                                     1               internal
1658844074048000000 app_1       34.9375 16                          42               30        41.3    42      42      39952                              1872          all    Single Request
1658844074050000000 app_1       34.9375 16                          42               30        41.3    42      42                                                       ok     Single Request
> 
> select * from events;
name: events
time                application text                title
----                ----------- ----                -----
1658844069036000000 app_1       test_demo_1 started ApacheJMeter
1658844215777000000 app_1       test_demo_1 ended   ApacheJMeter

查看儀表盤展示:

image

image

Prometheus(普羅米修斯)

簡介

什么是 Prometheus ?

  • Prometheus(官網)是一套開源的監控&報警&時序數據庫的組合,適合監控 Docker 容器。因為 Kubernetes 的流行帶動了 Prometheus 的發展

  • Prometheus 是最初在 SoundCloud 上構建的開源系統監視和警報工具包,該項目擁有非常活躍的開發人員和用戶社區。現在,它是一個獨立的開源項目,并且獨立于任何公司進行維護。為了強調這一點并闡明項目的治理結構,Prometheus 于 2016 年加入了 Cloud Native Computing Foundation,這是繼 Kubernetes 之后的第二個托管項目。

Prometheus 優點

  • 非常少的外部依賴,安裝使用超簡單。
  • 已經有非常多的系統集成,例如:docker、HAProxy、Nginx、JMX 等等。
  • 服務自動化發現。
  • 直接集成到代碼。
  • 設計思想是按照分布式、微服務架構來實現的。

Prometheus 特性

  • 多維度數據模型。
  • 提供靈活的查詢語言(PromQL)。
  • 不依賴分布式存儲,單個服務器節點是自主的。
  • 以 HTTP 方式,通過 Pull 模型拉取時間序列數據。
  • 也可以通過中間網關支持 Push 模型。
  • 通過服務發現或者靜態配置,來發現目標服務對象。
  • 支持多種多樣的圖標和界面展示。

Prometheus 生態系統

Prometheus 生態系統包含多個組件,其中許多是可選的。且大多數 Prometheus 組件都是用 Go 編寫的,因此易于構建和部署為靜態二進制文件。

  • Prometheus server:它會抓取并存儲時間序列數據。
  • client libraries:用于檢測應用程序代碼。
  • push gateway:一個支持短期工作的推送網關。
  • 諸如 HAProxy、StatsD、Graphite 等服務的專用輸出端。
  • 一個 alertmanager 處理警報。
  • 各種支持工具。

Prometheus 原理架構圖

下圖說明了 Prometheus 的體系結構及其某些生態系統組件。

image

Prometheus 直接或通過中介推送網關從已檢測作業中刪除指標,以處理短暫的作業。它在本地存儲所有報廢的樣本,并對這些數據運行規則,以匯總和記錄現有數據中的新時間序列,或生成警報。Grafana 或其他 API 使用者可以用來可視化收集的數據。

Prometheus 應用場景:

  • 什么時候適合?

    • Prometheus 可以很好地記錄任何純數字時間序列。它既適用于以機器為中心的監視,也適用于高度動態的面向服務的體系結構的監視。在微服務世界中,它對多維數據收集和查詢的支持是一種特別的優勢。
    • Prometheus 的設計旨在提高可靠性,使其成為中斷期間要使用的系統,以使你能夠快速診斷問題。每個 Prometheus 服務器都是獨立的,而不依賴于網絡存儲或其他遠程服務。當基礎結構的其他部分損壞時,你可以依靠它,并且無需設置廣泛的基礎結構即可使用它。
  • 什么時候不適合?

    • 普羅米修斯重視可靠性。即使在故障情況下也始終可以查看有關系統的可用統計信息。如果你需要 100% 的準確性(例如按請求計費),則 Prometheus 并不是一個好的選擇,因為所收集的數據可能不夠詳細和完整。在這種情況下,最好使用其他系統來收集和分析數據以進行計費,并使用 Prometheus 進行其余的監視。

部署

配置文件:

https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus.yml

運行容器:

docker run -d --name prometheus --network grafana -p 9090:9090 -v ${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus:v2.16.0 --config.file=/etc/prometheus/prometheus.yml

Web 訪問 Prometheus:查看默認監控目標

image

實時抓取監控數據,并存儲在 Prometheus 數據庫中:

image

主機性能采集:Prometheus + Grafana

node_exporter

Prometheus 提供了各種監控 Agent,這里以主機性能監控【node_exporter】為例。

下載解壓 node_exporter

image

# 根據系統選擇對應的下載包
[root@localhost prometheus]# wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz[root@localhost prometheus]# tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz 
node_exporter-1.3.1.linux-amd64/
node_exporter-1.3.1.linux-amd64/LICENSE
node_exporter-1.3.1.linux-amd64/NOTICE
node_exporter-1.3.1.linux-amd64/node_exportergzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
[root@localhost prometheus]# ls
node_exporter-1.3.1.linux-amd64  node_exporter-1.3.1.linux-amd64.tar.gz  prometheus.yml
[root@localhost prometheus]# cd node_exporter-1.3.1.linux-amd64/
[root@localhost node_exporter-1.3.1.linux-amd64]# ls
LICENSE  node_exporter  NOTICE

啟動 node_exporter

# 查看啟動參數
[root@localhost prometheus]# ./node_exporter --help
# 自定義啟動端口,且限定訪問IP
[root@localhost prometheus]# nohup ./node_exporter --web.listen-address="192.168.3.222:9102" &
# 不限定訪問IP
[root@localhost prometheus]# nohup ./node_exporter --web.listen-address=":9102" &

修改 Prometheus 配置文件,添加 node_exporter 配置:

image

重啟容器:

docker restart prometheus

監控添加成功:

image

Grafana 添加 Prometheus 數據源

image

Grafana 導入 node_exporter 儀表盤

image

導入 Grafana 官方 node_exporter 儀表盤:Node Exporter Dashboard 220413 ConsulManager自動同步版 | Grafana Labs

image

image

儀表盤導入成功:

image

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212570.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212570.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212570.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SSD基礎架構與NAND IO并發問題探討

在我們的日常生活中,我們經常會遇到一些“快如閃電”的事物:比如那場突如其來的雨、那個突然出現在你眼前的前任、還有就是今天我們要聊的——固態硬盤(SSD)。 如果你是一個技術宅,或者對速度有著近乎偏執的追求&…

電阻知識總結與詳細選型指南

目錄 1. 基礎知識 1.1 電阻的定義和符號 1.2 電阻的公式 1.3 電阻的串聯與并聯 2. 參數選型 2.1 電阻值 2.2 功率 2.3 精度 2.4 溫度系數 2.5 電壓系數 2.6 包裝類型 2.7 耐壓 2.8 特殊應用需求 2.9 環保要求 3. 產品應用 3.1 電流限制和保護 3.2 電壓分壓和電…

【Qt開發流程】之容器類1:介紹及常用容器類和使用Java風格迭代器進行遍歷

概述 Qt庫提供了一組通用的基于模板的容器類。這些類可用于存儲指定類型的項。例如&#xff0c;如果需要一個可調整大小的QString數組&#xff0c;可以使用QVector<QString>。 這些容器類被設計成比STL容器更輕、更安全、更易于使用。如果不熟悉STL&#xff0c;或者更喜…

低多邊形3D建模石頭材質紋理貼圖

在線工具推薦&#xff1a; 3D數字孿生場景編輯器 - GLTF/GLB材質紋理編輯器 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時&#xff0c;有幾種不同的風格&#xf…

云計算在計算機領域的應用與發展

云計算在計算機領域的應用與發展 一、引言 隨著科技的不斷發展&#xff0c;計算機領域已經成為當今社會最為活躍和創新的領域之一。云計算作為一種新興的計算模式&#xff0c;已經在計算機領域中得到了廣泛的應用&#xff0c;并且正在不斷地推動著計算機領域的發展。本文將探…

Ultimate VFX

Ultimate VFX 構建套件:

【利用二手車數據進行可視化分析】

利用二手車數據進行可視化分析 查看原始數據去除重復數據需求分析1.統計全國總共有多少量二手車&#xff0c;用KPI圖進行展示2.統計安徽總共有多少量二手車&#xff0c;用KPI圖進行展示3.統計合肥總共有多少量二手車&#xff0c;用KPI圖進行展示4.取最貴的10輛二手車信息&#…

web,Apache簡述

一.HTTP請求訪問的完整過程 1.建立連接 2.接收請求 3.處理請求 4.訪問資源 服務器獲取請求報文中請求的資源web服務器&#xff0c;即存放了web資源的服務器&#xff0c;負責向請求者提供對方請求的靜態資源&#xff0c;或動態運行后生成的資源 靜態資源&#xff1a;不需要…

C語言 內聯函數 + 遞歸函數

函數分類 內聯函數 1&#xff09;內聯函數在編譯時將函數的代碼直接插入到調用它的地方&#xff0c;而不是通過函數調用的方式執行&#xff0c;從而減少了函數調用的開銷&#xff0c;提高了代碼的執行速度 2&#xff09;使用 inline 關鍵字來聲明 3&#xff09;將函數聲明為內聯…

小目標檢測模型設計的一點思考

1. 小目標的特性 目標之間的交疊概率比較低&#xff0c;即使有交疊&#xff0c;其IoU多數情況下也是比較小的 AI-TOD Tiny Person Dateset 小目標自身的紋理顯著度有強弱區別&#xff0c;但是總體來說紋理特征都較弱&#xff0c;很多時候需要借助一定的圖像上下文來幫助確認 …

Java解決島嶼周長問題

Java解決島嶼周長問題 01 題目 給定一個 row x col 的二維網格地圖 grid &#xff0c;其中&#xff1a;grid[i][j] 1 表示陸地&#xff0c; grid[i][j] 0 表示水域。 網格中的格子 水平和垂直 方向相連&#xff08;對角線方向不相連&#xff09;。整個網格被水完全包圍&am…

ssm校園論壇管理系統項目分享

校園論壇管理系統是基于java編程語言&#xff0c;mysql數據庫&#xff0c;ssm框架和idea工具開發&#xff0c;本系統主要分為學生用戶&#xff0c;管理員兩個角色&#xff0c;其中用戶可以注冊登陸系統&#xff0c;在線發帖&#xff0c;查看欄目帖子&#xff0c;回復帖子&#…

某音上很火的圣誕樹分享

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。 效果截圖&#xff08;這里不給動態了&#xff0c;某音到處都是了&#xff09;&#xff1a; 源代碼&#xff1a; <script src"…

Spring Boot 3 集成 MyBatis詳解

MyBatis是一款開源的持久層框架&#xff0c;它極大地簡化了與數據庫的交互流程。與類似Hibernate的ORM框架不同&#xff0c;MyBatis更具靈活性&#xff0c;允許開發者直接使用SQL語句與數據庫進行交互。Spring Boot和MyBatis分別是兩個功能強大的框架&#xff0c;它們的協同使用…

Linux shell編程學習筆記34:eval 命令

0 前言 在JavaScript語言中&#xff0c;有一個很特別的函數eval&#xff0c;eval函數可以將字符串當做 JavaScript 代碼執行&#xff0c;返回表達式或值。 在Linux Shell 中也提供了內建命令eval&#xff0c;它是否具有JavaScript語言中eval函數的功能呢&#xff1f; 1 eval命…

GPIO的使用--USART串口通信--傳感器控制數據

目錄 一、串口通信 1、概念 2、原理圖 3、使用步驟 &#xff08;1&#xff09;尋找串口位置 &#xff08;2&#xff09;確定引腳編號 &#xff08;3&#xff09;編寫代碼 4、實驗結果 實驗代碼 main.c usart.c usart.h 一、串口通信 1、概念 串行接口是一種可以將…

DiffiT

本文首發于AIWalker&#xff0c;歡迎關注。 https://arxiv.org/abs/2312.02139 https://github.com/NVlabs/DiffiT 擴散模型以其強大的表達能力和高樣本質量在許多領域得到了新的應用。對于樣本生成&#xff0c;這些模型依賴于通過迭代去噪生成圖像的去噪神經網絡。然而&#x…

SAP UI5 walkthrough step8 Translatable Texts

在這個章節&#xff0c;我們會將一些文本常量獨立出一個資源文件 這樣的話&#xff0c;可以方便這些文本常量被翻譯成任意的語言 這種國際化的操作&#xff0c;我們一般命名為i18n 新建一個文件i18n.properties webapp/i18n/i18n.properties (New) showHelloButtonTextSay …

vue3項目實現文檔 JSON 格式和 Excel 表格的在線預覽,(智能搜索,未驗證)

若要實現文檔 JSON 格式和 Excel 表格的在線預覽&#xff0c;你可以使用第三方庫來實現。對于文檔 JSON 格式&#xff0c;你可以使用 vue-json-pretty 庫來展示美觀的 JSON 數據&#xff1b;對于 Excel 表格&#xff0c;你可以使用 vue-excel-viewer 庫來完成在線預覽。下面是一…

Java、Spring Boot和事務管理

引言 在現代應用程序開發中&#xff0c;確保數據的一致性和可靠性是至關重要的。Java作為一種強大的編程語言&#xff0c;通過其廣泛的生態系統和強大的庫支持&#xff0c;為開發人員提供了構建高性能應用程序的豐富工具。Spring Boot是一個基于Spring框架的項目&#xff0c;它…