SigNoz 可観測性バックエンドを使用したサンプルシナリオを以下に示します。
この場合、
OpenTelemetry (OTel) を使って .NET アプリケーションを簡単にテストするために
コンテナを使用します。
これは、.NET で
可観測性をテストするために設定できるシナリオの 1 つに過ぎません。
ドキュメンテーションによると、SigNoz Cloud にデータを送信する方法は 2 つあります:
- 直接 SigNoz Cloud にトレースを送る
- OTel Collector 経由でトレースを送る (推奨)
このドキュメントでは、2 つ目のオプションを使用します。
概要
ローカルマシンに必要なのは以下の要件のみです:
GeneXus 18 Upgrade 9 を使用して GeneXus Web アプリケーションを生成します。
まず、
[ Observability Provider ] プロパティに値 "OpenTelemetry" を設定し、任意のオブジェクトに対して [ これだけをビルド ] を実行します。
GeneXus 側で必要な作業はこれだけです。
ローカル環境をセットアップするためのステップ バイ ステップのガイドを以下に示します:
1.
Docker にアプリケーションをデプロイします。
これによりアプリケーションをパッケージ化し、Docker イメージをビルドし、必要なときに実行できる状態にします。
デプロイフォルダの context フォルダは以下のような構造になります。Dockerfile と、バイナリとアプリケーションの実行に必要なすべてのリソースが入った temp フォルダがあります。
2. 以下のファイルを context フォルダ (Dockerfile がある場所) にコピーします。
version: "3"
services:
# アプリケーションからログ、メトリックスおよびトレースを受け取る OTEL Collector
otel-collector:
image: otel/opentelemetry-collector:latest
command: [ "--config=/etc/otel-collector.yaml" ]
volumes:
- ./otel-collector.yaml:/etc/otel-collector.yaml
ports:
- "4317:4317"
- "4318:4318"
- "9201:9201"
# Sample application
otelsampleapp:
build:
context: .
environment:
- OTEL_EXPORTER_OTLP_PROTOCOL=grpc
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
- OTEL_RESOURCE_ATTRIBUTES=service.namespace=GeneXus,service.name=sample-app,service.version=1.0.1
- OTEL_METRICS_EXPORTER=otlp
- OTEL_TRACES_EXPORTER=otlp
- OTEL_LOGS_EXPORTER=otlp,logging
- GX_LOG_LEVEL=debug
- ASPNETCORE_URLS=http://*:8080
ports:
- "9999:8080"
このファイルには「otelsampleapp」という項目があることに注意してください。
これは Web アプリケーションの定義であり、その Dockerfile は context ディレクトリーにあります。
そこで必要な環境変数を定義します。
ファイルには次の内容が含まれます:
receivers:
otlp:
protocols:
grpc:
http:
processors:
batch:
exporters:
debug:
verbosity: detailed
otlp:
endpoint: "ingest.{your_region}.signoz.cloud:443"
tls:
insecure: false
headers:
"signoz-access-token": <your_access_token>
service:
pipelines:
traces:
receivers: [ otlp ]
processors: [ batch ]
exporters: [ otlp ]
metrics:
receivers: [ otlp ]
processors: [ batch ]
exporters: [ otlp ]
logs:
receivers: [ otlp ]
processors: [ batch ]
exporters: [ otlp ] :
アクセストークンは、SigNoz UI の [ Settings ] パネルにあります。
OTel Collector の設定について詳しくは、
こちらを参照してください。
まず、
docker-compose コマンドを実行して、コンテナを作成し起動します。
context フォルダでターミナルを開き、以下のコマンドを実行します:
- docker-compose up -d
Docker デスクトップを使用して作成したコンテナを確認できます。
アプリケーションを実行して、トラフィックを生成します。
SigNoz アカウントで、 [ Services ] タブを開きます。右上にある [ Refresh ] ボタンをクリックすると、アプリケーションがアプリケーションのリストに表示されます。
SigNoz UI にデータが表示されるまで数秒かかる場合があります。
アプリケーションの
トレースは [ Traces ] パネルで確認できます:

以下に選択されたトレースの詳細を示します:

トレースなど他のテレメトリ信号とのログ相関は、OpenTelemetry の重要な機能です。
[ Related Logs ] をクリックして、Trace_Id でフィルタリングされるアプリケーションのログ (.NET 標準クラスのログと
Log 外部オブジェクトを使用したログ) を表示できます。
以下のような
デバッグエクスポーターを設定できます:
debug:
verbosity: detailed
実行用および設定ミスやエラーを検出するためのデバッグ情報があります。

さらに、ログ用のログエクスポーターを設定すると、std 出力でログ テレメトリ データを取得できます。
OTEL_LOGS_EXPORTER=otlp,logging
GeneXus 18 Upgrade 8 以降