|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
OpenTelemetry入門
これから作成する、監視が必要なアプリケーションのセットアップはこちらです。
-
Linuxホスト上で実行されている監視対象のアプリケーション/ワークロード
-
同じLinuxホスト上で実行されているOpen Telemetryコレクター
-
SUSE ObservabilityまたはSUSE Cloud Observability
Open Telemetryコレクターをインストールします。
|
本番環境のセットアップでは、コレクターをインストールすることを強く推奨します。これにより、サービスがデータを迅速にオフロードでき、コレクターが再試行、バッチ処理、暗号化、さらには機密データのフィルタリングなどの追加処理を行うことができます。 |
まず、コレクターをインストールします。次のように設定します:
-
計測されたアプリケーションから、潜在的に多くのデータを受信する
-
収集したデータにホスト属性を付加する
-
トレースのメトリクスを生成する
-
データをSUSE Observabilityに転送し、APIキーを使用して認証を行います。
さらに、接続に問題がある場合はデータの送信を再試行します。
サービストークンを作成します。
サービストークンを作成するには、2つの方法があります:
-
SUSE Observability UI - 画面の左上をクリックしてメインメニューを開き、
StackPacks> `Open Telemetry`に移動します。 まだ行っていない場合は、`INSTALL`ボタンをクリックします。 `CREATE NEW SERVICE TOKEN`ボタンをクリックして、その値をクリップボードにコピーします。 -
SUSE Observability CLI - サービストークンの管理を参照してください。
サービストークンの値は、以下の指示で`<SERVICE_TOKEN>`に言及されている場所で使用する必要があります。
コレクターをインストールして構成します。
コレクターは、ほとんどのLinuxバージョンとアーキテクチャ向けのパッケージ(apk、deb、rpm)を提供し、自動サービス構成には`systemd`を使用します。インストールするには、https://github.com/open-telemetry/opentelemetry-collector-releases/releases[Githubの最新リリース]を見つけ、例のURLを最新バージョンを使用するように更新します。
-
DEB AMD64
-
DEB ARM64
-
RPM AMD64
-
RPM ARM64
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_amd64.deb
sudo dpkg -i otelcol-contrib_0.123.1_linux_amd64.deb
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_arm64.deb
sudo dpkg -i otelcol-contrib_0.123.1_linux_arm64.deb
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_amd64.rpm
sudo rpm -iv1 otelcol-contrib_0.123.1_linux_amd64.rpm
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_arm64.rpm
sudo rpm -iv1 otelcol-contrib_0.123.1_linux_arm64.rpm
他のインストールオプションについては、https://opentelemetry.io/docs/collector/installation/#_linux[Open Telemetryの指示]を使用してください。
インストール後、/etc/otelcol-contrib/config.yaml を編集してコレクタの構成を変更します。ファイルを次の`config.yaml`の例のように変更し、<otlp-suse-observability-endpoint:port>`をあなたのOTLPエンドポイントに置き換え(エンドポイントについてはOTLP APIを参照)、<SERVICE_TOKEN>`のためにサービストークンを挿入します。
receivers:
otlp:
protocols:
# Only bind to localhost to keep the collector secure, see https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/security-best-practices.md#safeguards-against-denial-of-service-attacks
grpc:
endpoint: 127.0.0.1:4317
http:
endpoint: 127.0.0.1:4318
# Collect own metrics
prometheus:
config:
scrape_configs:
- job_name: 'otel-collector'
scrape_interval: 10s
static_configs:
- targets: ['0.0.0.0:8888']
extensions:
health_check: {}
pprof:
endpoint: 0.0.0.0:1777
zpages:
endpoint: 0.0.0.0:55679
# Use the API key from the env for authentication
bearertokenauth:
scheme: SUSEObservability
token: "<SERVICE_TOKEN>"
exporters:
nop: {}
debug: {}
otlp/suse-observability:
compression: snappy
auth:
authenticator: bearertokenauth
# Put in your own otlp endpoint, for example otlp-suse-observability.my.company.com:443
endpoint: <otlp-suse-observability-endpoint:port>
processors:
memory_limiter:
check_interval: 5s
limit_percentage: 80
spike_limit_percentage: 25
batch: {}
# Optionally include resource information from the system running the collector
resourcedetection/system:
detectors: [env, system] # Replace system with gcp, ec2, azure when running in cloud environments
system:
hostname_sources: ["os"]
connectors:
# Generate metrics for spans
spanmetrics:
metrics_expiration: 5m
namespace: otel_span
service:
extensions: [ bearertokenauth, health_check, pprof, zpages ]
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, resourcedetection/system, batch]
exporters: [debug, spanmetrics, otlp/suse-observability]
metrics:
receivers: [otlp, spanmetrics, prometheus]
processors: [memory_limiter, batch, resourcedetection/system]
exporters: [debug, otlp/suse-observability]
logs:
receivers: [otlp]
processors: []
exporters: [nop]
最後にコレクターを再起動します。
sudo systemctl restart otelcol-contrib
コレクタのログを見るには、次を使用します。
sudo journalctl -u otelcol-contrib
アプリケーションからテレメトリデータを収集します。
テレメトリデータを収集する一般的な方法は、Open Telemetry SDKを使用してアプリケーションを計測することです。いくつかの言語のためのクイックスタートガイドを文書化しましたが、他にも多くの言語があります。
SDKには追加の設定は必要ありません。デフォルトでは、OTLPまたはOTLP over HTTP(サポートされているプロトコルに応じて)を介してlocalhostにエクスポートします。
他の言語については、https://opentelemetry.io/docs/languages/[opentelemetry.io] のドキュメントに従ってください。
結果を表示します。
SUSE Observabilityに移動し、Open Telemetry Stackpackがインストールされていることを確認してください(メインメニュー -> Stackpacks)。
少し待つと、アプリケーションがトラフィックを処理する場合、Open Telemetryのサービスおよびサービスインスタンスの概要でサービス名の下に見つけることができるはずです。トレースは、トレースエクスプローラーおよびトレースの視点にサービスおよびサービスインスタンスのコンポーネントとして表示されます。スパンメトリクスおよび言語特有のメトリクス(利用可能な場合)は、コンポーネントのメトリクスの視点で利用可能になります。