日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

實操 OpenTelemetry:通過 Demo 掌握微服務監控的藝術

來源: 責編: 時間:2024-05-27 17:21:33 208觀看
導讀項目介紹我們參考官方文檔構建幾個 spring boot 、Golang 項目再配合 Agent 其實也可以很方便的集成 OpenTelemetry。但是要完整的體驗 OpenTelemetry 的所有功能,包含 trace、logs、metrics,還有社區這么多語言的支持

項目介紹

我們參考官方文檔構建幾個 spring boot 、Golang 項目再配合 Agent 其實也可以很方便的集成 OpenTelemetry。1ai28資訊網——每日最新資訊28at.com

但是要完整的體驗 OpenTelemetry 的所有功能,包含 trace、logs、metrics,還有社區這么多語言的支持其實還是比較麻煩的。1ai28資訊網——每日最新資訊28at.com

我們還需要單獨部署 collector、存儲的 backend service 等組件、包括 trace UI 展示所需要的 Jaeger,metric 所需要的 grafana 等。1ai28資訊網——每日最新資訊28at.com

這些所有東西都自己從頭弄的話還是比較費時,不過好在社區已經將這些步驟都考慮到了。1ai28資訊網——每日最新資訊28at.com

特地為大家寫了一個 opentelemetry-demo。1ai28資訊網——每日最新資訊28at.com

這個項目模擬了一個微服務版本的電子商城,主要包含了以下一些項目:1ai28資訊網——每日最新資訊28at.com

Service
1ai28資訊網——每日最新資訊28at.com

Language
1ai28資訊網——每日最新資訊28at.com

Description
1ai28資訊網——每日最新資訊28at.com

accountingservice
1ai28資訊網——每日最新資訊28at.com

Go
1ai28資訊網——每日最新資訊28at.com

處理和計算訂單數據
1ai28資訊網——每日最新資訊28at.com

adservice
1ai28資訊網——每日最新資訊28at.com

Java
1ai28資訊網——每日最新資訊28at.com

廣告服務
1ai28資訊網——每日最新資訊28at.com

cartservice
1ai28資訊網——每日最新資訊28at.com

.NET
1ai28資訊網——每日最新資訊28at.com

購物車服務,主要會依賴 Redis
1ai28資訊網——每日最新資訊28at.com

checkoutservice
1ai28資訊網——每日最新資訊28at.com

Go
1ai28資訊網——每日最新資訊28at.com

checkout
1ai28資訊網——每日最新資訊28at.com

currencyservice
1ai28資訊網——每日最新資訊28at.com

C++
1ai28資訊網——每日最新資訊28at.com

貨幣轉換服務,提供了較高的 QPS 能力。
1ai28資訊網——每日最新資訊28at.com

emailservice
1ai28資訊網——每日最新資訊28at.com

Ruby
1ai28資訊網——每日最新資訊28at.com

郵件服務
1ai28資訊網——每日最新資訊28at.com

frauddetectionservice
1ai28資訊網——每日最新資訊28at.com

Kotlin
1ai28資訊網——每日最新資訊28at.com

風控服務
1ai28資訊網——每日最新資訊28at.com

frontend
1ai28資訊網——每日最新資訊28at.com

JavaScript
1ai28資訊網——每日最新資訊28at.com

前端應用
1ai28資訊網——每日最新資訊28at.com

loadgenerator
1ai28資訊網——每日最新資訊28at.com

Python/Locust
1ai28資訊網——每日最新資訊28at.com

模擬壓測服務
1ai28資訊網——每日最新資訊28at.com

paymentservice
1ai28資訊網——每日最新資訊28at.com

JavaScript
1ai28資訊網——每日最新資訊28at.com

支付服務
1ai28資訊網——每日最新資訊28at.com

productcatalogservice
1ai28資訊網——每日最新資訊28at.com

Go
1ai28資訊網——每日最新資訊28at.com

商品服務
1ai28資訊網——每日最新資訊28at.com

quoteservice
1ai28資訊網——每日最新資訊28at.com

PHP
1ai28資訊網——每日最新資訊28at.com

成本服務
1ai28資訊網——每日最新資訊28at.com

recommendationservice
1ai28資訊網——每日最新資訊28at.com

Python
1ai28資訊網——每日最新資訊28at.com

推薦服務
1ai28資訊網——每日最新資訊28at.com

shippingservice
1ai28資訊網——每日最新資訊28at.com

Rust
1ai28資訊網——每日最新資訊28at.com

shipping service
1ai28資訊網——每日最新資訊28at.com

可以發現在這個 demo 中提供了許多的服務,而且包含了幾乎所有主流的語言,可以很好的模擬我們實際的使用場景了。
1ai28資訊網——每日最新資訊28at.com


1ai28資訊網——每日最新資訊28at.com


1ai28資訊網——每日最新資訊28at.com

圖片圖片1ai28資訊網——每日最新資訊28at.com

通過這張圖可以更直觀的查看各個服務之間的關系。1ai28資訊網——每日最新資訊28at.com

整體來說前端所有的請求都會通過 front-end-proxy 這個組件代理,最終再由 front 這個服務進行轉發到不同的后端服務中。1ai28資訊網——每日最新資訊28at.com

圖片圖片1ai28資訊網——每日最新資訊28at.com

除了一個項目的架構圖之外,還有一個關于 OpenTelemetry 的數據流轉圖。1ai28資訊網——每日最新資訊28at.com

在 OpenTelemetry 中數據流轉是它的特點也是非常重要的核心,這點在上一篇文章中講過,用戶可以自由定制數據的流轉以及任意的處理數據,在這個圖中就將數據流轉可視化了。1ai28資訊網——每日最新資訊28at.com

  • 客戶端可以通過 OTLP 協議或者是 HTTP 將數據上傳到 OTel Collector 中。
  • 在 collector 中會根據我們配置的 Process pipeline 處理數據。
  • Metric 數據通過  OTLP HTTP exporter 將數據導入到 Prometheus 中。

Prometheus 已經于 23 年七月份支持 OTLP 格式的 metric 數據導入了。1ai28資訊網——每日最新資訊28at.com

  • Trace 數據則是通過 OTLP Exporter 寫入到 Jaeger 中進行存儲,最后通過 Jaeger 的 UI 進行查詢展示。
  • 而存入 Prometheus 中的 metric 數據則是有 grafana 進行查詢。

關于 collector 的配置會在后文講解。1ai28資訊網——每日最新資訊28at.com

部署

接下來便是安裝 Demo 了,我更推薦使用 helm 安裝。1ai28資訊網——每日最新資訊28at.com

這里的版本要求是:1ai28資訊網——每日最新資訊28at.com

  • Kubernetes 1.24+
  • Helm 3.9+
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-chartshelm repo updatehelm install my-otel-demo open-telemetry/opentelemetry-demo

這樣就可以很簡單的將 demo 所涉及到的所有組件和服務都安裝到 default 命名空間中。1ai28資訊網——每日最新資訊28at.com

helm show values open-telemetry/opentelemetry-demo > demo.yaml

不過在安裝前還是建議先導出一份 value.yaml,之后可以使用這個 yaml 定制需要安裝的組件。1ai28資訊網——每日最新資訊28at.com

在這個 yaml 中我們可以看到有哪些組件和服務可以定制:1ai28資訊網——每日最新資訊28at.com

圖片圖片1ai28資訊網——每日最新資訊28at.com

可以看到這里包含了我們剛才提到的所有服務,以及這些服務所依賴的 Kafka、redis、Prometheus 等中間件,都可以自己進行定制修改。1ai28資訊網——每日最新資訊28at.com

圖片圖片1ai28資訊網——每日最新資訊28at.com

當所有的 Pod 都成功運行之后表示安裝成功。1ai28資訊網——每日最新資訊28at.com

正常情況下安裝不會有什么問題,最大可能的問題就是鏡像拉取失敗,此時我們可以先在本地手動 docker pull 下來鏡像后再上傳到私服,然后修改 deployment 中的鏡像地址即可。1ai28資訊網——每日最新資訊28at.com

暴露服務

為了方便使用我們可以用這個 demo 進行測試,還需要將 front-proxy 的服務暴露出來可以在本地訪問:1ai28資訊網——每日最新資訊28at.com

kubectl port-forward svc/my-otel-demo-frontendproxy 8080:8080

Component
1ai28資訊網——每日最新資訊28at.com

Path
1ai28資訊網——每日最新資訊28at.com

Shop 首頁
1ai28資訊網——每日最新資訊28at.com

http://localhost:80801ai28資訊網——每日最新資訊28at.com

Grafana
1ai28資訊網——每日最新資訊28at.com

http://localhost:8080/grafana1ai28資訊網——每日最新資訊28at.com

壓測頁面
1ai28資訊網——每日最新資訊28at.com

http://localhost:8080/loadgen1ai28資訊網——每日最新資訊28at.com

Jaeger UI
1ai28資訊網——每日最新資訊28at.com

http://localhost:8080/jaeger/ui1ai28資訊網——每日最新資訊28at.com

正常情況下就可以打開這些頁面進行訪問了。
1ai28資訊網——每日最新資訊28at.com


1ai28資訊網——每日最新資訊28at.com

不過使用 port-forward 轉發的方式只是臨時方案,使用 ctrl+c 就會停止暴露服務,所以如果想要一個穩定的訪問鏈接時便可以配置一個 ingress。1ai28資訊網——每日最新資訊28at.com

components:  frontendProxy:    ingress:      enabled: true      annotations: {}      hosts:        - host: otel-demo.my-domain.com          paths:            - path: /              pathType: Prefix              port: 8080

在之前的 helm 的 value.yaml 中配置即可,本地測試的話需要將這個 host 和 ingress 暴露出來的 IP 進行綁定才可以使用這個域名機進行訪問。1ai28資訊網——每日最新資訊28at.com

更多關于 ingress 的使用可以參考我之前的文章:1ai28資訊網——每日最新資訊28at.com

  • k8s入門到實戰-使用Ingress

當然簡單起見也可以直接將 front-proxy 的 service 類型改為 LoadBalancer。(默認是 ClusterIP 只可以在集群內訪問)1ai28資訊網——每日最新資訊28at.com

這樣就可以直接通過這個 service 的 IP 進行訪問了。1ai28資訊網——每日最新資訊28at.com

components:  frontendProxy:    service:      type: LoadBalancer

不過需要注意的是如果 demo 安裝完成之后是不可以再次修改 service 的類型的,需要手動這個 service 刪掉之后再次新建才可以。1ai28資訊網——每日最新資訊28at.com

臨時測試使用的話還是推薦直接使用 port-forward 進行轉發。1ai28資訊網——每日最新資訊28at.com

查看 Trace

通過之前的項目架構圖可以得知,我們在項目首頁刷新會直接請求 AdService 來獲取廣告。1ai28資訊網——每日最新資訊28at.com

為了簡單起見我們只查詢這一鏈路的調用情況:1ai28資訊網——每日最新資訊28at.com

圖片圖片1ai28資訊網——每日最新資訊28at.com

打開 http://localhost:8080/jaeger/ui/search Jeager 的 UI 頁面便可以篩選服務,之后點擊查找 Traces 就可以列出一段時間內的訪問 trace。1ai28資訊網——每日最新資訊28at.com

圖片圖片1ai28資訊網——每日最新資訊28at.com

可以看到這個請求鏈路是從前端訪問到 adService 中的 getAds()接口,然后在這個接口中再訪問了 getAdsByCategory 函數。1ai28資訊網——每日最新資訊28at.com

圖片圖片1ai28資訊網——每日最新資訊28at.com

最終在源碼中也可以看到符合鏈路的調用代碼。1ai28資訊網——每日最新資訊28at.com

在剛才的鏈路圖的右下角有一個 spanID,整個 trace 是由這些小的 span 組成,每一個 span 也會有唯一 spanID;trace 也會有一個 traceID 將這些 span 串聯起來;更多關于 trace 的內容會在后面的文章進行分析。1ai28資訊網——每日最新資訊28at.com

查看 Metrics

我們再打開 grafana 便可以看到剛才訪問的 adService 的延遲和接口的 QPS 情況:1ai28資訊網——每日最新資訊28at.com

圖片圖片1ai28資訊網——每日最新資訊28at.com

在opentelemetry-collector-data-flow 面板中還可以看到 OpenTelemetry 的數據流轉。1ai28資訊網——每日最新資訊28at.com

圖片圖片1ai28資訊網——每日最新資訊28at.com

更多監控信息可以查看其它的面板。1ai28資訊網——每日最新資訊28at.com

而剛才面板中的數據流轉規則則是在我們的 collector 中進行配置的:1ai28資訊網——每日最新資訊28at.com

receivers:  otlp:    protocols:      grpc:      http:        cors:          allowed_origins:            - "http://*"            - "https://*"  httpcheck/frontendproxy:    targets:      - endpoint: http://frontendproxy:${env:ENVOY_PORT}exporters:  debug:  otlp:    endpoint: "jaeger:4317"    tls:      insecure: true  otlphttp/prometheus:    endpoint: "http://prometheus:9090/api/v1/otlp"    tls:      insecure: true  opensearch:    logs_index: otel    http:      endpoint: "http://opensearch:9200"      tls:        insecure: trueprocessors:  batch:connectors:  spanmetrics:service:  pipelines:    traces:      receivers: [otlp]      processors: [batch]      exporters: [otlp, debug, spanmetrics]    metrics:      receivers: [httpcheck/frontendproxy, otlp, spanmetrics]      processors: [batch]      exporters: [otlphttp/prometheus, debug]    logs:      receivers: [otlp]      processors: [batch]      exporters: [opensearch, debug]

重點的就是這里的 service.piplines,可以進行任意的組裝。1ai28資訊網——每日最新資訊28at.com

更多關于 collector 的配置也會在后續文章中繼續講解。1ai28資訊網——每日最新資訊28at.com

我們也可以繼續訪問這個 demo 網站,模擬加入購物車、下單等行為,再結合 trace 和 metric 觀察系統的變化。1ai28資訊網——每日最新資訊28at.com

這樣一個完整的 OpenTelemetry-Demo 就搭建完畢了,我們實際在生產環境使時完全可以參考這個 demo 進行配置,可以少踩很多坑。1ai28資訊網——每日最新資訊28at.com

參考鏈接:1ai28資訊網——每日最新資訊28at.com

  • https://github.com/open-telemetry/opentelemetry-demo/blob/main/src/adservice/Dockerfile
  • https://github.com/open-telemetry/opentelemetry-demo
  • https://github.com/prometheus/prometheus/pull/12571
  • https://github.com/open-telemetry/opentelemetry-demo/blob/main/src/otelcollector/otelcol-config.yml

本文鏈接:http://m.www897cc.com/showinfo-26-91019-0.html實操 OpenTelemetry:通過 Demo 掌握微服務監控的藝術

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 億級流量下通用的高并發架構設計

下一篇: 阿里面試:NIO為什么會導致CPU 100% ?

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
韩国av一区二区三区| 欧美先锋影音| 午夜精品国产精品大乳美女| 亚洲欧美日韩区| 久久精选视频| 欧美极品aⅴ影院| 国产精品久久久久久久久| 国产日韩精品在线观看| 亚洲国产精品va| 中国女人久久久| 欧美在线视频一区| 欧美国产精品va在线观看| 欧美午夜一区二区福利视频| 国产一区二三区| 亚洲免费观看高清在线观看| 欧美一区二区视频免费观看| 欧美成人福利视频| 国产精品午夜国产小视频| 狠狠综合久久av一区二区老牛| 亚洲激情在线观看| 亚洲欧美综合一区| 蜜臀久久久99精品久久久久久| 欧美四级电影网站| …久久精品99久久香蕉国产 | 亚洲国产日韩欧美一区二区三区| 一区二区三区久久精品| 久久久久免费| 国产精品成人免费| 亚洲国产高清一区| 午夜亚洲影视| 欧美精品啪啪| 黄色成人在线观看| 亚洲主播在线| 欧美激情精品久久久久久黑人 | 日韩视频―中文字幕| 欧美在线观看网址综合| 欧美久久一级| 伊人狠狠色j香婷婷综合| 亚洲综合好骚| 欧美精品三级日韩久久| 国产中文一区| 亚洲欧美日韩在线| 欧美日韩亚洲激情| 亚洲国产日韩欧美在线动漫| 欧美一区深夜视频| 欧美日韩免费高清| 91久久精品一区二区别| 久久激情久久| 国产精自产拍久久久久久蜜| 日韩网站在线| 欧美粗暴jizz性欧美20| 狠狠色狠狠色综合系列| 午夜精品一区二区在线观看| 欧美日韩亚洲网| 91久久精品国产91久久性色| 久久久久综合网| 国产一区二区激情| 欧美一区二区精品| 国产精品国产自产拍高清av王其 | 久久九九99| 国产午夜精品久久久久久久| 亚洲一区二区三区涩| 欧美日韩午夜在线视频| 亚洲精品免费在线| 毛片一区二区| **欧美日韩vr在线| 玖玖玖国产精品| 一区在线电影| 久久精品三级| 国内外成人免费激情在线视频网站 | 日韩小视频在线观看专区| 欧美成人免费全部| 亚洲国产天堂网精品网站| 久久夜色精品国产亚洲aⅴ | 一区二区毛片| 欧美日本精品| 夜久久久久久| 欧美视频网址| 亚洲小说欧美另类婷婷| 国产精品国产三级国产专播精品人| 亚洲网站视频| 国产精品女人毛片| 午夜影院日韩| 国产精品视频精品| 性欧美videos另类喷潮| 国产欧美一区二区三区视频| 欧美一级欧美一级在线播放| 国产视频自拍一区| 久久精品国产清自在天天线| 国内精品国产成人| 久久综合九色综合欧美狠狠| 在线视频成人| 欧美女同视频| 亚洲一级二级| 国产欧美精品一区二区色综合| 性欧美videos另类喷潮| 狠狠色香婷婷久久亚洲精品| 另类av一区二区| 亚洲精品裸体| 欧美午夜激情视频| 午夜欧美电影在线观看| 国产亚洲亚洲| 你懂的视频一区二区| 日韩视频在线免费观看| 国产精品二区二区三区| 性做久久久久久久免费看| 狠狠色狠狠色综合日日tαg| 欧美国产乱视频| 亚洲尤物在线| 好吊一区二区三区| 欧美成人伊人久久综合网| 一区电影在线观看| 国产日韩欧美91| 美女网站久久| 中日韩美女免费视频网站在线观看| 国产精品一区二区三区四区五区| 久久久91精品国产一区二区三区 | 99视频超级精品| 国产乱码精品1区2区3区| 久久久欧美精品| 亚洲精选在线| 国产九区一区在线| 免费国产一区二区| 中文精品视频| 国产自产2019最新不卡| 欧美激情一区二区三区蜜桃视频| 亚洲性xxxx| 在线观看福利一区| 欧美特黄视频| 久久久久在线| 一本色道久久综合亚洲精品高清 | 亚洲性夜色噜噜噜7777| 黑人巨大精品欧美一区二区| 欧美激情视频在线播放| 午夜久久久久久| 亚洲人成人99网站| 国产伦精品一区| 欧美黑人多人双交| 欧美在线|欧美| 91久久国产自产拍夜夜嗨| 国产模特精品视频久久久久| 欧美成人tv| 欧美一区二区视频免费观看| 亚洲精品久久久久中文字幕欢迎你| 国产精品一香蕉国产线看观看| 嫩草成人www欧美| 性色av香蕉一区二区| 亚洲日本中文字幕免费在线不卡| 国产伦精品一区二区三区免费迷| 欧美国产日韩一区二区三区| 欧美一区网站| 亚洲一本视频| 亚洲精品乱码久久久久久蜜桃91| 国产午夜精品视频免费不卡69堂| 欧美日韩三级视频| 久久躁日日躁aaaaxxxx| 亚洲欧美日韩国产综合| 亚洲精品黄色| 一区二区视频免费完整版观看| 国产精品久久久久久久久| 欧美成人亚洲成人日韩成人| 久久精品人人爽| 亚洲专区一区二区三区| 亚洲精品综合久久中文字幕| 在线日韩中文| 黄色工厂这里只有精品| 国产美女一区| 欧美午夜美女看片| 欧美精品不卡| 免费在线欧美黄色| 久久久久一区二区三区| 欧美在线1区| 香蕉成人啪国产精品视频综合网| 一区二区三区 在线观看视| 亚洲国产三级| 在线看片成人| 狠狠噜噜久久| 国产一区三区三区| 国产日韩欧美在线看| 国产精品久久久久久久久免费桃花 | 欧美日韩一区二区三区视频 | 欧美成人中文字幕在线| 久久免费高清视频| 久久国产乱子精品免费女| 亚洲欧美日韩视频一区| 中文av字幕一区| av成人手机在线| 日韩午夜剧场| 亚洲精品一区中文| 亚洲欧洲日韩在线| 亚洲国产另类 国产精品国产免费| 狠狠爱www人成狠狠爱综合网| 国产欧美一区二区视频| 国产精品三上| 国产伦精品一区二区三区| 国产精品女人久久久久久| 国产精品大片wwwwww| 欧美性猛交xxxx乱大交退制版| 欧美日韩国产黄| 欧美日韩精品二区| 欧美色视频日本高清在线观看| 欧美日韩亚洲一区二区三区四区| 欧美日韩大陆在线| 欧美日韩一区二区三区在线看|