成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

齊活了,Grafana 發布大規模持續性能分析開源數據庫 - Phlare

開源 數據庫
Grafana Phlare 具有基于微服務的架構,該系統具有多個可水平擴展的微服務,可以單獨和并行運行。Grafana Phlare 微服務稱為組件。

Grafana Phlare 是一個用于聚合 continuous profiling(持續分析)數據的開源軟件項目。Grafana Phlare 可以和 Grafana 完全集成,允許你與其他可觀察信號相關聯。

什么是 continuous profiling?

這個概念很有價值:Profiling 可以幫助你了解程序的資源使用情況,進而幫助你優化其性能和成本。然而,向分布式云原生架構的轉變使這變得更加復雜,從而產生了對持續分析的需求,其中有關資源使用情況的信息會在整個計算基礎設施中定期自動收集,然后壓縮并存儲為時間序列數據,這使你可以可視化隨時間的變化并放大與感興趣的時間段相匹配的 profile 文件 — 例如,CPU 時間在其最高利用率期間所花費的時間。

就其帶來的價值而言,持續分析被稱為可觀測的第四大支柱(在metrics、logging 和 tracing 之后)。

在 Grafana Labs,我們開始研究使用持續分析來了解我們用于支持 Grafana Cloud 的軟件的性能,包括 Grafana Loki、Grafana Mimir、Grafana Tempo 和 Grafana。例如,如果我們對 Mimir 中的慢查詢進行分頁,我們可能會使用分析來了解該查詢在 Mimir 代碼庫中的哪個位置花費的時間最多。如果我們看到 Grafana 由于內存不足錯誤而反復崩潰,我們將查看內存配置文件以查看崩潰前哪個對象消耗的內存最多。

圖片

雖然有用于存儲和查詢持續分析數據的開源項目,但經過一些調查,我們努力找到一個滿足支持 Grafana Labs 所需級別的持續分析所需的可擴展性、可靠性和性能要求的項目。在全公司范圍的黑客馬拉松期間,一組工程師領導了該項目,該項目展示了與指標、日志和追蹤連接時分析數據的價值,進一步增加了我們在所有環境中推出連續分析的渴望。

因此,我們決定著手創建一個用于持續分析遙測的數據庫,基于使我們的其他開源可觀察性后端 Loki、Tempo 和 Mimir 如此成功的設計原則:水平可擴展架構和對象存儲的使用。

核心功能

Grafana Phlare 提供水平可擴展、高可用性、長期存儲和分析數據查詢。就像 Prometheus 一樣,只需一個二進制文件即可輕松安裝,無需其他依賴項。因為 Phlare 使用對象存儲,你可以存儲你需要的所有歷史記錄,而不會花很多錢。其原生多租戶和隔離功能集可以為多個獨立團隊或業務部門運行一個數據庫。Grafana Phlare 的核心功能如下所示:

  • 易于安裝:使用其單體模式,只需一個二進制文件即可啟動并運行 Grafana Phlare,無需其他依賴項。在 Kubernetes 上,可以使用 Helm Chart 方式進行不同模式的部署。
  • 水平可擴展性:可以在多臺機器上運行 Grafana Phlare,可以輕松擴展數據庫以處理工作負載生成的分析量。
  • 高可用性:Grafana Phlare 復制傳入的 profiles 文件,確保在機器發生故障時不會丟失數據。這意味著你可以在不中斷 profiles 文件攝取和分析的情況下進行 rollout。
  • 廉價、耐用的 profile 文件存儲:Grafana Phlare 使用對象存儲進行長期數據存儲,使其能夠利用這種無處不在、經濟高效、高耐用性的技術。它兼容多種對象存儲實現,包括 AWS S3、谷歌云存儲、Azure Blob 存儲、OpenStack Swift,以及任何與 S3 兼容的對象存儲。
  • 原生多租戶:Grafana Phlare 的多租戶架構使你能夠將數據和查詢與獨立的團隊或業務部門隔離開來,從而使這些組可以共享同一個數據庫。

架構

Grafana Phlare 具有基于微服務的架構,該系統具有多個可水平擴展的微服務,可以單獨和并行運行。Grafana Phlare 微服務稱為組件。Grafana Phlare 的設計將所有組件的代碼編譯為單個二進制文件。-target 參數控制單個二進制文件將作為哪些組件運行,這點和 Grafana Loki 的模式是一樣的。對于想快速體驗的用戶來說,Grafana Phlare 同樣也可以在單體模式下運行,所有組件在一個進程中同時運行。

Grafana Phlare 的大多數組件是無狀態的,不需要在進程重新啟動之間保留任何數據。一些組件是有狀態的,并依靠不容易丟失數據的存儲來防止進程重啟之間的數據丟失。Grafana Phlare 包括一組相互作用形成集群的組件:Distributor?、Ingester?、Querier。

單體模式

單體模式在單個進程中運行所有必需的組件,是默認的操作模式,你可以通過指定 -target=all? 參數來設置,單體模式是部署 Grafana Phlare 的最簡單方法,如果你想快速入門或想在開發環境中使用 Grafana Phlare,這將非常有用。要查看在 -target? 設置為 all 時運行的組件列表,請使用 -modules 標志運行 Grafana Phlare:

./phlare -modules

圖片

微服務模式

在微服務模式下,組件部署在不同的進程中。擴展是按組件進行的,這允許在擴展和更細化的故障域方面具有更大的靈活性。微服務模式是生產部署的首選方法,但也是最復雜的。

在微服務模式下,調用每個 Grafana Phlare 進程,并將其 -target 參數設置為特定的 Grafana Phlare 組件(例如,-target=ingester 或 -target=distributor)。要獲得一個正常工作的 Grafana Phlare 實例,必須部署每個必需的組件。如果你想使用微服務模式部署 Grafana Phlare,那么非常建議使用 Kubernetes。

圖片

部署

我們這里還是以 Helm Chart 的方式部署在 Kubernetes 集群中,當然前提是有一個可用的 Kubernetes 集群,并且配置好了 kubectl 和 helm。

首先我們創建一個名為 phlare-test 的命名空間,將整個應用都部署在該命名空間之內:

? ? kubectl create namespace phlare-test

然后添加 Phlare 的 Helm Chart 倉庫:

? ? helm repo add grafana https://grafana.github.io/helm-charts
? ? helm repo update

然后我們就可以使用 Helm 來進行安裝了。

如果你想以單體默認進行安裝,只需要執行下面的命令即可一鍵安裝:

? ? helm -n phlare-test install phlare grafana/phlare

如果想以微服務模式安裝 Grafana Phlare,可以首先獲取官方提供的默認 values 配置文件:

# 收集微服務的默認配置
? ? curl -LO values-micro-services.yaml https://raw.githubusercontent.com/grafana/phlare/main/operations/phlare/helm/phlare/values-micro-services.yaml
? ? cat values-micro-services.yaml
# Default values for phlare.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
phlare:
components:
querier:
kind: Deployment
replicaCount: 3
resources:
limits:
memory: 1Gi
requests:
memory: 256Mi
cpu: 100m
distributor:
kind: Deployment
replicaCount: 2
resources:
limits:
memory: 1Gi
requests:
memory: 256Mi
cpu: 500m
agent:
kind: Deployment
replicaCount: 1
resources:
limits:
memory: 512Mi
requests:
memory: 128Mi
cpu: 50m
ingester:
kind: StatefulSet
replicaCount: 3
resources:
limits:
memory: 12Gi
requests:
memory: 6Gi
cpu: 1

minio:
enabled: true

我們需要使用上面的 values 文件來安裝 Grafana Phlare,也可以根據自己的集群實際情況調整配置,比如 ingester 配置的資源請求的 memory: 6Gi,cpu: 1,我這里集群資源不足,可以將其降低一些,將副本數都暫時設置成1(僅供測試),不然沒辦法調度成功。

然后使用下面的命令即可開始安裝:

? ? helm -n phlare-test upgrade --install phlare grafana/phlare -f values-micro-services.yaml
Release "phlare" does not exist. Installing it now.
NAME: phlare
LAST DEPLOYED: Thu Nov 3 14:37:38 2022
NAMESPACE: phlare-test
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thanks for deploying Grafana Phlare.
In order to configure Grafana to use the Phlare datasource, you need to add the Phlare datasource to your Grafana instance.
The in-cluster query URL is:
http://phlare-querier.phlare-test.svc.cluster.local.:4100
To forward the query API to your localhost you can use:
kubectl --namespace phlare-test port-forward svc/phlare-querier 4100:4100

部署完成后查看 Pod 狀態是否正常:

? ? kubectl get pods -n phlare-test
NAME READY STATUS RESTARTS AGE
phlare-agent-56986dd4b9-4s6z6 1/1 Running 0 3m23s
phlare-distributor-7447b4c6c5-f4rjw 1/1 Running 0 3m23s
phlare-ingester-0 1/1 Running 0 3m23s
phlare-minio-0 1/1 Running 0 3m23s
phlare-querier-8cdf986c-hhn29 1/1 Running 0 3m23s

等到所有 Pod 的狀態變為 Running 或 Completed 表示部署完成了。

使用

然后接下來我們可以配置 Grafana 來查詢 profiles 數據,這里我們在安裝 Phlare 的同一個 Kubernetes 集群中安裝 Grafana,同樣使用下面的命令一鍵安裝即可:

? ? helm template -n phlare-test grafana grafana/grafana \
--set image.repository=aocenas/grafana \
--set image.tag=profiling-ds-2 \
--set env.GF_FEATURE_TOGGLES_ENABLE=flameGraph \
--set env.GF_AUTH_ANONYMOUS_ENABLED=true \
--set env.GF_AUTH_ANONYMOUS_ORG_ROLE=Admin \
--set env.GF_DIAGNOSTICS_PROFILING_ENABLED=true \
--set env.GF_DIAGNOSTICS_PROFILING_ADDR=0.0.0.0 \
--set env.GF_DIAGNOSTICS_PROFILING_PORT=6060 \
--set-string 'podAnnotations.phlare\.grafana\.com/scrape=true' \
--set-string 'podAnnotations.phlare\.grafana\.com/port=6060' > grafana.yaml
? ? kubectl apply -f grafana.yaml

部署完成后整個 phlare-test 命名空間的 Pod 列表如下所示:

? ? kubectl get pods -n phlare-test                            
NAME READY STATUS RESTARTS AGE
grafana-5ff87bdfd-whmkm 1/1 Running 0 85s
phlare-agent-56986dd4b9-4s6z6 1/1 Running 0 9m17s
phlare-distributor-7447b4c6c5-f4rjw 1/1 Running 0 9m17s
phlare-ingester-0 1/1 Running 0 9m17s
phlare-minio-0 1/1 Running 0 9m17s
phlare-querier-8cdf986c-hhn29 1/1 Running 0 9m17s

我們可以使用下面的命令在本地轉發 Grafana 服務:

? ? kubectl port-forward -n phlare-test service/grafana 3000:80

然后在瀏覽器中打開 http://localhost:3000 即可訪問 Grafana 服務了。

在頁面左側點擊配置 -> 數據源來添加 profiles 的數據源,選擇 phlare 類型的數據源。

圖片

設置數據源的 URL 為 http://phlare-querier.phlare-test.svc.cluster.local.:4100/。

圖片

點擊 Save & Test 即可保存。數據源添加完成后應該能夠在 Grafana Explore 中查詢到 profiles 文件,使用方法和 Loki 以及 Prometheus 幾乎一樣,如下所示我們可以查詢 Grafana 應用的 CPU 的情況。

圖片

Phlare 與 Grafana 原生集成,使你可以將 profiles 數據與 metrics、logging 和 tracing 一起可視化,并全面了解整個堆棧。我們還在 Grafana 中添加了一個火焰圖面板,它允許你構建儀表板,在 Grafana 中可視化的數百個不同數據源的數據旁邊顯示分析數據。

圖片

Phare 的 Helm Chart 使用默認配置,只要它們有正確的注解,它的代理就會抓取 Pod,該功能使用可能與 Prometheus 或 Grafna Agent 配置相似的 relabel_config 和 kubernetes_sd_config。

為了讓 Phlare 抓取 pod,你必須在 pod 中添加以下注解:

metadata:
annotations:
phlare.grafana.com/scrape: "true"
phlare.grafana.com/port: "8080"

其中 phlare.grafana.com/port 應該設置為你的 pod 為 /debug/pprof/ 端點提供服務的端口。請注意,phlare.grafana.io/scrape 和 phlare.grafana.io/port 的值必須用雙引號括起來,以確保它表示為字符串。

上面我們在安裝 Grafana 的時候就配置了這兩個注解,所以我們就可以使用 Phlare 來不斷的抓取 Grafana 應用的 profiles 數據了,這也是為什么上面我們可以去過濾 Grafana 的 profiles 數據的原因。

參考鏈接

  • https://github.com/grafana/phlare。
  • https://grafana.com/blog/2022/11/02/announcing-grafana-phlare-oss-continuous-profiling-database/。
責任編輯:姜華 來源: k8s技術圈
相關推薦

2021-05-11 10:03:04

數據泄露漏洞信息安全

2023-08-29 15:10:04

持續性能優化開發

2023-11-26 16:49:36

AI數據庫

2017-09-07 16:50:47

MySQL性能優化

2020-07-16 10:03:30

DDoS攻擊漏洞網絡攻擊

2018-09-05 08:00:00

數據庫關系數據庫物聯網

2023-09-11 11:22:22

分布式數據庫數據庫

2024-06-19 09:34:38

系統數據庫內存

2021-01-21 11:30:59

數據泄露漏洞信息安全

2015-06-17 11:10:30

2023-10-26 00:16:08

2016-11-22 23:02:49

2016-01-15 09:59:12

機器學習數據集

2021-08-25 08:23:51

AI數據機器學習

2022-12-02 07:19:46

分布式數據庫數據分片

2024-03-13 10:40:00

性能探測工具SQL語句數據庫

2023-09-14 17:39:19

向量數據庫火山引擎AI

2024-04-02 14:29:12

網絡安全數據泄露

2022-03-31 14:17:53

數據中心可持續性IT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.青青草| 亚洲成人一区二区 | 一区二区影院 | 亚洲视频在线免费观看 | 久久91精品国产一区二区三区 | 农村真人裸体丰满少妇毛片 | 日韩精品一区二区三区在线观看 | 草草影院ccyy | 超碰精品在线观看 | 天天躁日日躁狠狠躁2018小说 | 久久99国产精品久久99果冻传媒 | 亚洲国产自产 | 欧美一级淫片免费视频黄 | 人人干在线视频 | 精品在线一区二区 | 日韩一区二区在线播放 | 日本在线免费视频 | 国产一区在线免费 | 日韩在线播放中文字幕 | 国产精品久久久久久婷婷天堂 | 91九色视频| 黄色小视频入口 | 国产婷婷在线视频 | 国产精品久久久久久久久久久久午夜片 | 久精品久久 | 成人午夜在线 | www.中文字幕.com | 中文在线日韩 | 中文字幕 国产 | 亚洲精品中文字幕 | 韩日有码 | 精品久久久网站 | 九九热最新视频 | 国产精品久久久久久久久免费相片 | 九久久 | 91免费在线播放 | 日韩欧美第一页 | 一区二区手机在线 | 亚洲成人精选 | 国产女人与拘做视频免费 | 免费v片在线观看 |