[otelcol] 寄送至 Grafana Enterprise Traces

概要

此篇文章介紹如何使用 OpenTelemetry Collector 寄送 traces 至 Grafana Enterprise Traces (GET)。

注意:此篇文章假設你已經了解 otelcol 基本設定方法。

環境準備

進行這篇文章的動作,會需要有已經準備好的:

  • OpenTelemetry Collector

  • 完成設定的 GET server

  • GET server 提供的 Basic Auth 帳密

說明

GET 部分

  • 開啟 GET 設定檔

# 路徑視安裝環境可能不同
>>> vim /etc/enterprise-traces/enterprise-traces.yaml
  • 於 receiver 區塊新增 otlp receiver

    • 建議使用 otlp/grpc

    • otlp/http 測試時有設定問題,尚未成功

# 詳細參考 otelcol 設定文章
distributor:
  receivers:
    otlp:
      protocols:
        grpc:
          # 監聽所有來源之 4318 port
          endpoint: 0.0.0.0:4318
  • 開通防火牆

>>> firewall-cmd --permanent --add-port 4318/tcp
>>> firewall-cmd --reload
  • 重啟 GET

>>> systemctl restart enterprise-traces

Collector 部分

  • 使用 base64 編碼 Basic Auth 帳密

    • 注意:是使用 tenant 名稱與 token,並非 api key

>>> echo -n <user name>:<tenant token> | base64 -w 0
ZGV2LXRlbmFudDpaR1YyTFhKbFlXUXR0000000000GNHOXNhV041TFhSbGMzUXRkRzl0000000000TZmRE5jUlMxNU16RmZOM0ZjTUNFNWV6UTROU3RzSlRjdA==
  • 建立 otelcol exporter

    exporters:
      # 注意是使用 otlp,非 otlphttp
      otlp/GET:
        # GET 設定的 receiver
        # 假設上方 GET 位址為 10.10.1.100
        # 此處設定為 "10.10.1.100:4318"
        endpoint: "<ip>:<port>"
        # 內部網路未加密,因此需要關閉 tls
        tls:
          insecure: true
        headers:
          # 剛剛編碼好的帳密
          # 使用 Basic 認證
          Authorization: "Basic ZGV2LXRlbmFudDpaR1YyTFhKbFlXUXR0000000000GNHOXNhV041TFhSbGMzUXRkRzl0000000000TZmRE5jUlMxNU16RmZOM0ZjTUNFNWV6UTROU3RzSlRjdA=="
    service:
      pipelines:
        traces/1:
          receivers: [...]
          # 加上剛剛建立的 exporter
          exporters: [..., otlp/GET]
  • 重啟/重建 otelcol 已套用設定

    • 方法視部署環境而定

完成

完成後可至 grafana 頁面 explore 下查看。

補充

關於 Grafana agent

官方文件提供的方法大多是使用 grafana agent 進行,grafana agent 本身是由 otelcol 為基底擴增 grafana 體系的功能,在收發遙測資料的部分與 otelcol 大致相同。

若已經在使用 otelcol 的話,可以直接由 otelcol 發送資料,沒必要寄送至 grafana agent。

參考

  • https://grafana.com/blog/2022/04/26/set-up-and-observe-a-spring-boot-application-with-grafana-cloud-prometheus-and-opentelemetry/

Last updated