

# 构建您自己的自定义 OpenTelemetry Collector
<a name="CloudWatch-OTLPAdvancedsetup"></a>

您可以构建自己的自定义 OpenTelemetry Collector，进而通过 OpenTelemetry 在 CloudWatch 中获得极佳的应用程序可观测性体验。在此设置中，您需要使用开源 CloudWatch 组件构建自己的 OpenTelemetry Collector。

## 先决条件
<a name="CloudWatch-OTLPAdvancedsetupPrequisite"></a>

确保在 CloudWatch 中启用了 *Transaction Search*。有关更多信息，请参阅 [Transaction Search](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search.html)。

## 构建您自己的收集器
<a name="CloudWatch-OTLPAdvancedsetupBuildCollector"></a>

您可以使用以下配置构建自己的收集器，进而使用 OpenTelemetry 在 CloudWatch 中监控您的应用程序。有关更多信息，请参阅 [Building a custom collector](https://opentelemetry.io/docs/collector/custom-collector/)。

CloudWatch 的常用配置。

```
dist:
  name: otelcol-dev
  description: OTel Collector for sending telemetry to CloudWatch.
  output_path: ./otelcol-dev
extensions:
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.111.0
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/awsproxy v0.113.0
exporters:
  - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.111.0
  - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.111.0
receivers:
  - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.111.0
```

跟踪的额外配置。

```
# Enable Tracing 
dist:
  name: otelcol-dev
  description: OTel Collector for sending telemetry to CloudWatch.
  output_path: ./otelcol-dev
extensions:
    #Include common configurations and your custom extensions

exporters:
    #Include common configurations and your custom extensions
 
receivers:
  - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.111.0
processors:
  - gomod: github.com/amazon-contributing/opentelemetry-collector-contrib/processor/awsapplicationsignalsprocessor v0.113.0
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.113.0
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.113.0
replaces:
  - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.113.0 => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/awsutil v0.113.0
  - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs v0.113.0 => github.com/amazon-contributing/opentelemetry-collector-contrib/internal/aws/cwlogs v0.113.0
  - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.113.0 => github.com/amazon-contributing/opentelemetry-collector-contrib/exporter/awsemfexporter v0.113.0
  - github.com/openshift/api v3.9.0+incompatible => github.com/openshift/api v0.0.0-20180801171038-322a19404e37
```

**注意**  
请注意以下几点：  
构建收集器后，按照 [OpenTelemetry 收集器](CloudWatch-OTLPSimplesetup.md) 中的步骤在主机或 Kubernetes 环境中部署和配置自定义收集器。
有关 Application Signals Processor 设置自定义 OpenTelemetry 收集器的信息，请参阅 [Application Signals 自定义配置](https://github.com/aws-observability/application-signals-demo/blob/main/scripts/opentelemetry/appsignals_custom_otel_setup/custom-opentelemetry.yaml)示例。Application Signals Processor 仅支持用于自定义版本的最新版本的 OpenTelemetry 收集器。有关支持版本的信息，请参阅 [opentelemetry-collector-contrib 存储库](https://github.com/amazon-contributing/opentelemetry-collector-contrib/tags)。