自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我們一起聊聊自定義 OpenTelemetry Collector 容器鏡像

開(kāi)發(fā) 前端
不管 Core 還是 Contrib 都不應(yīng)該成為你生產(chǎn)工作負(fù)載的一部分。僅僅使用 Core 本身太過(guò)簡(jiǎn)單,無(wú)法滿足組織的需求(盡管它提供的組件都是必須的);雖然 Contrib 中提供的組件足夠全面,然而并不是說(shuō)每個(gè)組件都是你所需要的,太多冗余的組件顯得過(guò)于臃腫,還增大的攻擊面。

OpenTelemetry Collector 有兩個(gè)官方發(fā)行版:Core 和 Contrib。

  • Core 發(fā)行版是 Collector 的基礎(chǔ)發(fā)行版,供 OTel 開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)和測(cè)試。它包含一組基本的擴(kuò)展、連接器、接收器、處理器和導(dǎo)出器。
  • Contrib 發(fā)行版供非 OTel 開(kāi)發(fā)人員進(jìn)行實(shí)驗(yàn)和學(xué)習(xí)。它還擴(kuò)展了 Core 發(fā)行版,并包含由第三方(包括供應(yīng)商和個(gè)人社區(qū)成員)創(chuàng)建的組件,這些組件對(duì)整個(gè) OpenTelemetry 社區(qū)非常有用。

不管 Core 還是 Contrib 都不應(yīng)該成為你生產(chǎn)工作負(fù)載的一部分。僅僅使用 Core 本身太過(guò)簡(jiǎn)單,無(wú)法滿足組織的需求(盡管它提供的組件都是必須的);雖然 Contrib 中提供的組件足夠全面,然而并不是說(shuō)每個(gè)組件都是你所需要的,太多冗余的組件顯得過(guò)于臃腫,還增大的攻擊面。

那如何選擇你所需的發(fā)行版呢?答案就是構(gòu)建自己的發(fā)行版??梢允褂霉俜教峁┑拿麨?OpenTelemetry Collector Builder (OCB) 的工具來(lái)自定義附件。

安裝 OCB

ocb 是個(gè)簡(jiǎn)單的 CLI,支持 Window/Linux/macOS 以及 x86 和 arm64 平臺(tái)。我們可以從 release 頁(yè)面[1] 下載 ocb 的 binary。

curl -o ocb -sL https://github.com/open-telemetry/opentelemetry-collector/releases/download/cmd%2Fbuilder%2Fv0.95.0/ocb_0.95.0_linux_amd64

chmod +x ocb

可以通過(guò) ./ocb help 查看使用方法。

還可以通過(guò) go install 來(lái)安裝。

go install go.opentelemetry.io/collector/cmd/builder@latest

要構(gòu)建自己的發(fā)行版,需要使用下面的命令,通過(guò) --config 指定配置文件,也就是下面要介紹的構(gòu)建清單。

./ocb --config=builder-config.yaml

如果不提供,會(huì)使用 默認(rèn)的清單文件[2]。既然我們是要構(gòu)建自己的發(fā)行版,那接來(lái)看看如何配置構(gòu)建清單。

構(gòu)建清單

構(gòu)建清單是對(duì) OpenTelemetry Collector 的描述,通常包含如下幾個(gè)部分:

  • dist:發(fā)行版的基本信息
  • receivers:集成的 receiver[3] 列表
  • exporters:集成的 exporter[4] 列表
  • extensions:集成的 extension[5] 列表
  • processors:集成的 processor[6] 列表
  • connectors:集成的 receiver[7] 列表

從 GitHub 倉(cāng)庫(kù)中可以找到 core 發(fā)行版的構(gòu)建清單[8],我們可以基于該版本進(jìn)行裁剪(去掉 replace 的部分)。

dist:
  module: go.opentelemetry.io/collector/cmd/otelcorecol
  name: otelcorecol
  description: Local OpenTelemetry Collector binary, testing only.
  version: 0.95.0-dev
  otelcol_version: 0.95.0
  output_path: /tmp/dist

exporters:
  - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.95.0
  - gomod: go.opentelemetry.io/collector/exporter/loggingexporter v0.95.0
  - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.95.0
  - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.95.0

extensions:
  - gomod: go.opentelemetry.io/collector/extension/ballastextension v0.95.0
  - gomod: go.opentelemetry.io/collector/extension/memorylimiterextension v0.95.0
  - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.95.0
processors:
  - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.95.0
  - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.95.0
connectors:
  - gomod: go.opentelemetry.io/collector/connector/forwardconnector v0.95.0

現(xiàn)在為 開(kāi)頭提到的文章[9] 中可以找到更多的組件。

dist:
  module: go.opentelemetry.io/collector/cmd/otelcorecol
  name: otelcorecol
  description: Local OpenTelemetry Collector binary, testing only.
  version: 0.95.0-dev
  otelcol_version: 0.95.0
  output_path: /tmp/dist

receivers:
  - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.95.0
exporters:
  - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.95.0
  - gomod: go.opentelemetry.io/collector/exporter/loggingexporter v0.95.0
  - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.95.0
  - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.95.0
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/lokiexporter v0.95.0
extensions:
  - gomod: go.opentelemetry.io/collector/extension/ballastextension v0.95.0
  - gomod: go.opentelemetry.io/collector/extension/memorylimiterextension v0.95.0
  - gomod: go.opentelemetry.io/collector/extension/zpagesextension v0.95.0
processors:
  - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.95.0
  - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.95.0
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.95.0
connectors:
  - gomod: go.opentelemetry.io/collector/connector/forwardconnector v0.95.0

這樣就準(zhǔn)備好了構(gòu)建清單,執(zhí)行下面的命令,然后在 dist.output_path 指定的目錄中可以到找構(gòu)建好的二進(jìn)制文件。

./ocb --config=builder-config.yaml

構(gòu)建鏡像

通過(guò)上面的方法來(lái)構(gòu)建 collector 的二進(jìn)制文件,進(jìn)一步再構(gòu)建容器鏡像。

FROM golang:1.21 as build
ARG  OTEL_VERSION=0.95.0
WORKDIR /app
COPY . .
RUN go install go.opentelemetry.io/collector/cmd/builder@v${OTEL_VERSION}
RUN CGO_ENABLED=0 builder --config=builder-config.yaml

FROM gcr.io/distroless/base-debian11
COPY --from=build /tmp/dist/otelcorecol /
# 4317 - default OTLP receiver
# 55678 - opencensus (tracing) receiver
# 55679 - zpages
EXPOSE 4317/tcp 55678/tcp 55679/tcp

CMD ["--config", "/etc/otelcol-contrib/config.yaml"]
ENTRYPOINT ["/otelcorecol"]

我已經(jīng)構(gòu)建好了鏡像 addozhang/opentelemetry-collector:0.95.0 ,在創(chuàng)建 CR OpenTelemetryCollector 的時(shí)候,可以將鏡像修改為我們定制的鏡像。

參考資料

[1] release 頁(yè)面: https://github.com/open-telemetry/opentelemetry-collector/releases?q=builder

[2] 默認(rèn)的清單文件: https://github.com/open-telemetry/opentelemetry-collector/blob/main/cmd/builder/internal/config/default.yaml

[3] receiver: https://opentelemetry.io/docs/collector/configuration/#receivers

[4] exporter: https://opentelemetry.io/docs/collector/configuration/#exporters

[5] extension: https://opentelemetry.io/docs/collector/configuration/#extensions

[6] processor: https://opentelemetry.io/docs/collector/configuration/#processors

[7] receiver: https://opentelemetry.io/docs/collector/configuration/#connectors

[8] core 發(fā)行版的構(gòu)建清單: https://raw.githubusercontent.com/open-telemetry/opentelemetry-collector/main/cmd/otelcorecol/builder-config.yaml

[9] 開(kāi)頭提到的文章: https://mp.weixin.qq.com/s/DUUDYggjaVtFRbDF3rslhw/

責(zé)任編輯:武曉燕 來(lái)源: 云原生指北
相關(guān)推薦

2024-07-26 09:47:28

2024-01-30 09:14:35

容器資源管理

2021-09-01 14:41:43

域名自定義IP

2024-06-12 07:54:05

2023-07-04 08:06:40

數(shù)據(jù)庫(kù)容器公有云

2021-08-27 07:06:10

IOJava抽象

2024-02-20 21:34:16

循環(huán)GolangGo

2023-08-04 08:20:56

DockerfileDocker工具

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2023-09-10 21:42:31

2023-06-30 08:18:51

敏捷開(kāi)發(fā)模式

2022-02-14 07:03:31

網(wǎng)站安全MFA

2022-06-26 09:40:55

Django框架服務(wù)

2022-10-28 07:27:17

Netty異步Future

2023-04-26 07:30:00

promptUI非結(jié)構(gòu)化

2022-04-06 08:23:57

指針函數(shù)代碼

2023-12-28 09:55:08

隊(duì)列數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)

2022-11-12 12:33:38

CSS預(yù)處理器Sass

2024-02-26 00:00:00

Go性能工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)