OpenTelemetry Java Getting Started 3
實際將上一篇的Code抓下來研究
其中endpoint打到的Restful API部分的SpringBoot:
BootOtelTempoApiApplication:
RestTemplateConfig:
Flight:
先看看application.properties:
FlightClient:
FlightController:
FlightService:
對應到Grafana-Loki看到的:
對應Grafana-Tempo看到的部分就是以下紅框:
跟Jaeger長差不多:
並且其中有用到的pom.xml內容:
以上就是SpringBoot專案本身的內容,這包應該屬於Client端的部分
另外我嘗試在本機啟動,由於沒有另一包provider來提供被呼叫
所以log會看到:
接著再匯入被呼叫的provider專案:
結構大概是這樣:
這邊挑重點:
被呼叫的Restful
FlighController:
FlightService:
所以整段的Jaeger才會長成這樣:
最後兩包的log都會產生在:
然後透過虛擬的volume_exporter掛在三個PV:
特別注意到上述的exporter是Prometheus官網也沒有的
功能大概就是把一般程式專案沒有暴露URI位置/metrics給Prometheus
讓Prometheus抓資料來處理
則需要各種不同的exporter進行資料的轉換
再由exporter暴露/metrics給Prometheus提供資料
後面Prometheus才開始運行:
其中Prometheus使用的設定:
看到./etc/prometheus.yaml內容如下
這樣大略知道這之間log如何傳遞
主要是應用程式->透過volume_exporter轉換暴露/metrics->Prometheus
後續有將該專案目前內容進行fork到我個人Github Repo內備份參考!