OpenTelemetry Erlang 项目教程
1. 项目的目录结构及介绍
OpenTelemetry Erlang 项目的目录结构如下:
opentelemetry-erlang/
├── apps/
│ ├── opentelemetry/
│ ├── opentelemetry_api/
│ └── opentelemetry_exporter/
├── config/
├── doc/
├── examples/
├── test/
├── .gitignore
├── .github/
├── LICENSE
├── README.md
├── rebar.config
└── mix.exs
目录结构介绍:
- apps/: 包含项目的核心应用程序,包括
opentelemetry
(SDK 实现)、opentelemetry_api
(API 接口)和opentelemetry_exporter
(导出器)。 - config/: 包含项目的配置文件。
- doc/: 包含项目的文档文件。
- examples/: 包含项目的示例代码。
- test/: 包含项目的测试代码。
- .gitignore: Git 忽略文件。
- .github/: 包含 GitHub 相关的配置文件。
- LICENSE: 项目的开源许可证文件。
- README.md: 项目的介绍和使用说明。
- rebar.config: Rebar3 的配置文件。
- mix.exs: Elixir 项目的配置文件。
2. 项目的启动文件介绍
OpenTelemetry Erlang 项目的启动文件主要涉及 rebar.config
和 mix.exs
文件。
rebar.config
rebar.config
是 Rebar3 的配置文件,用于配置项目的依赖、编译选项等。以下是一个示例配置:
{deps, [
{opentelemetry, "0.1.0"},
{opentelemetry_api, "0.1.0"},
{opentelemetry_exporter, "0.1.0"}
]}.
{relx, [
{release, {my_instrumented_release, "0.1.0"}, [
opentelemetry_exporter,
opentelemetry,
my_instrumented_app
]}
]}.
mix.exs
mix.exs
是 Elixir 项目的配置文件,用于配置项目的依赖、编译选项等。以下是一个示例配置:
def project do
[
releases: [
my_instrumented_release: [
applications: [
opentelemetry_exporter: :permanent,
opentelemetry: :temporary
]
]
]
]
end
3. 项目的配置文件介绍
OpenTelemetry Erlang 项目的配置文件主要位于 config/
目录下。以下是一个示例配置文件的内容:
config/config.exs
import Config
config :opentelemetry,
sampler: {:always_on, []},
span_processor: :batch,
exporter: {:otlp, endpoint: "http://localhost:4317"}
配置文件介绍:
- sampler: 配置采样器,例如
:always_on
表示总是采样。 - span_processor: 配置 Span 处理器,例如
:batch
表示批处理。 - exporter: 配置导出器,例如
{:otlp, endpoint: "http://localhost:4317"}
表示使用 OTLP 协议导出到本地端口 4317。
通过以上配置,可以自定义 OpenTelemetry Erlang 项目的采样策略、Span 处理方式以及数据导出目标。