- ログ
- メトリクス
- トレース
- 例外
はじめに
HyperDX OpenTelemetry インストルメンテーション パッケージをインストールする
- NPM
- Yarn
SDK の初期化
init 関数を呼び出します。
- require
- import
ログ収集の設定
console.* のログが収集されます。winston や pino などのロガーを使用している場合は、ClickStack にログを送信するためのトランスポートをロガーに追加する必要があります。別の種類のロガーを使用している場合は、お問い合わせいただくか、該当する場合はプラットフォームのインテグレーション (たとえば Kubernetes) を確認してください。
- Winston
- Pino
- console.log
winston をロガーとして使用している場合は、以下のトランスポートをロガーに追加する必要があります。エラー収集の設定
recordException 関数を使って例外を手動で記録します。
- Express
- Koa
- 手動
トラブルシューティング
OTEL_LOG_LEVEL 環境変数を debug に
設定すると、詳細なログ出力を有効にできます。
高度なインストルメンテーションの設定
コンソールログの取得
HDX_NODE_CONSOLE_CAPTURE を 0 に設定します。
copy
ユーザー情報またはメタデータを付加する
setTraceAttributes 関数を呼び出します。これにより、呼び出し以降、現在の trace に関連付けられたすべての
ログ/スパンに、指定した
属性が付与されます。この関数は、対象の
request/trace 内のできるだけ早い段階 (例: Express のミドルウェアスタックのできるだけ早い段階) で呼び出すことを推奨します。
これは、後で検索できるように、すべての ログ/スパンに
適切な識別子を自動的にタグ付けするための便利な方法です。識別子を自分で手動で
タグ付けして伝播させる必要はありません。
userId、userEmail、userName、および teamName を指定すると、対応する値が
セッション UI に表示されますが、これらは省略可能です。そのほかの追加の値も
指定して、イベントの検索に使用できます。
HDX_NODE_BETA_MODE 環境
変数を 1 に設定するか、init 関数に betaMode: true を渡してベータモードを有効にし、
トレース属性を有効にしてください。
Google Cloud Run
@hyperdx/node-opentelemetry パッケージは、デフォルトで
サンプルレートを 1.0 に上書きします。
この動作を変更したい場合や、他の OpenTelemetry インストールで同様に設定したい場合は、
環境変数
OTEL_TRACES_SAMPLER=parentbased_always_on と OTEL_TRACES_SAMPLER_ARG=1 を
手動で設定することで、同じ結果を得られます。
詳細、および特定のリクエストでトレースを強制的に有効にする方法については、
Google Cloud Run documentation を参照してください。
自動インストルメントされるライブラリ
dnsexpressgraphqlhapihttpioredisknexkoamongodbmongoosemysqlmysql2netpgpinorediswinston
代替のインストール方法
ClickStack OpenTelemetry CLI でアプリケーションを実行する
opentelemetry-instrument CLI や Node.js の --require フラグを使えば、コードを変更することなくアプリケーションを自動インストルメントできます。CLI をインストールすると、自動インストルメンテーションに対応するライブラリやフレームワークの対象がより広がります。
- NPX を使用
- カスタムエントリポイント(例: Nodemon、ts-node など)
- コードのインポート
Managed ClickStackManaged ClickStack では
HYPERDX_API_KEY は省略できます。OTEL_SERVICE_NAME 環境変数は、HyperDX アプリでサービスを識別するために使用されます。値には任意の名前を指定できます。
例外のキャプチャを有効にする
HDX_NODE_EXPERIMENTAL_EXCEPTION_CAPTURE 環境変数を 1 に設定する必要があります。