OpenTelemetry Collector 基本設定
概要
在安裝好 collector 之後,需要進行設定才能開始運作。collector 由 receivers
, processors
, exporters
, extensions
, service
等五個元件組成,如下方提供之 yaml
範本,接下來會依序介紹各個元件。
參考:官方文件
設定檔範本
# 宣告為 receiver 區塊
receivers:
# 使用的 receiver,設定方式見各文章
otlp:
protocols:
grpc:
endpoint: <ip:port>
http:
endpoint: <ip:port>
# 宣告為 processor 區塊
processors:
# 使用的 processor,設定方式見各文章
memory_limiter:
limit_mib: 400
spike_limit_mib: 100
check_interval: 5s
# 宣告為 exporter 區塊
exporters:
# 使用的 exporter,設定方式見各文章
otlp:
endpoint: <ip:port>
# 宣告為 extension 區塊
extensions:
# 使用的 extension,設定方式見各文章
zpages: {}
memory_ballast:
size_mib: 165
# 宣告為 service 區塊
service:
# 要導入的擴充套件,若各個元件有使用的話需要於此設定
extensions: [zpages, memory_ballast]
# 要執行的 pipelines
pipelines:
# 轉發 traces
# 此處可自行命名,格式為 <type>/<name>
# /<name> 部分可忽略不設定
traces/1:
# 該項目使用的 receivers
receivers: [otlp]
# 該項目使用的 processors
# 未使用時可直接移除此標籤
processors: [memory_limiter, batch]
# 該項目使用的 exporters
exporters: [otlp]
# 轉發 metrics,設定方法與 traces 相同
metrics/1:
receivers: []
exporters: []
# 轉發 logs,設定方法與 traces 相同
logs/1:
receivers: []
exporters: []
# 該 collector 的遙測資料,一般不用設定
# 詳細參考官方文件
telemetry:
metrics/1:
logs/1:
receivers
receivers 用於接收資料,透過監聽特定位址來取得其他來源寄送的資料。
官方版本 collector 僅提供 otlp receiver
以接收 otlp
來源為主,若需要從 kafka
, jaeger
等其他來源接收資料,可以至社群版本 otelcol-contrib
的 github repo 下查看 (需要安裝社群版 otelcol-contrib
)。
注意:並非所有 receivers
都支援 traces
, metrics
, logs
。
processors
processors 用於處理資料。
詳細待補充。
exporters
exporters 用於寄送資料。
官方版本 collector 提供 otlp
(grpc), otlphttp
, logging
三種 exporter,若需要使用其他 exporter,可以至社群版本 otelcol-contrib
的 github repo 下查看 (需要安裝社群版 otelcol-contrib
)。
注意:並非所有 exporters
都支援 traces
, metrics
, logs
。
extensions
除了基本功能以外,可能需要透過額外的套件來滿足客製化需求,此時加入擴充套件來達成目標。除了官方與社群提供的套件以外,也可以自行以 golang
編寫。
service
service 用於定義寄送規則。
在定義好上述 4 種元件後,需要透過定義 service 來啟用功能,可以透過定義複數 service 來同時寄送遙測資料至不同目標。
service 有三個部分,分別為 extensions
, pipelines
, telemetry
,其中 pipelines
為主要設定接收與寄送遙測資料的區塊。
參考 官方文件 service 章節。
參考
Last updated