> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.jp/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# テレメトリーを追加する（ベータ版）

> テレメトリーの設定方法をご確認ください。

<style>
  {`
    .table-key, .table-key div, .table-key p {
      margin: 0;
      font-size: 14px;
    }
    code {
      text-wrap:nowrap!important;
    }
    `}
</style>

アプリにテレメトリーを設定してログシンクとして機能させ、このアプリ経由でログデータを外部の可観測性プロバイダーに送信することができます。サードパーティープロバイダーとしてサポートされているのは、現在のところ、[Honeycomb](https://www.honeycomb.io/)と[Sentry](https://sentry.io/)のみです。

## テレメトリー コンポーネント ファイルを作成して設定する

プロジェクトの`app/`ディレクトリー内に`telemetry/`ディレクトリーを作成し、その中に`telemetry-hsmeta.json`設定ファイルを追加します。

```shell theme={null}
└── src/
    └── app/
        └── telemetry/
            └── telemetry-hsmeta.json
```

`telemetry-hsmeta.json`ファイルを編集して、プロバイダー、ログレベルなどを設定します。以下に、ファイルの例と併せて、利用可能な各フィールドについて説明する表を記載します。

<Warning>
  **注**: 既定では、`logTypes`フィールドと`logLevels`フィールドを介して全てのタイプとレベルのログがプロバイダーと同期されるため、大量のデータが送信されることになる場合があります。始めは関心のあるログタイプのみを設定し、エラーだけに絞り込まれるようにログレベルを設定することを強くお勧めします。
</Warning>

### telemetry-hsmeta.json

```json theme={null}
{
  "uid": "telemetry",
  "type": "telemetry",
  "config": {
    "providerType": "SENTRY",
    "datasetName": "my-app-telemetry",
    "logTypes": ["API_CALL", "EXTENSION_LOG", "EXTENSION_RENDER", "DATA_FETCH"],
    "logLevels": ["ERROR", "WARN", "INFO"]
  }
}
```

| フィールド          | 型      | 説明                                                                                                                                                                                                                                                                  |
| -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `uid`          | 文字列    | テレメトリー設定の一意の識別子。任意の値を設定できますが、このフィールドはアカウントのプロジェクト設定に表示されるため、他のアプリコンポーネントの`uid`値とは異なる値にする必要があります。                                                                                                                                                                    |
| `type`         | 文字列    | コンポーネントのタイプ。この場合は`telemetry`にする必要があります。                                                                                                                                                                                                                             |
| `config`       | オブジェクト | 設定の詳細を格納するオブジェクト。以下の行にリストされているサブプロパティーを参照してください。                                                                                                                                                                                                                    |
| `providerType` | 文字列    | サードパーティー テレメトリー プロバイダーの名前。現在のところ、サポートされているのは`SENTRY`と`HONEYCOMB`のみです。                                                                                                                                                                                               |
| `datasetName`  | 文字列    | ログデータに関連付けられるラベル（プロバイダーがこのオプションをサポートしている場合）。                                                                                                                                                                                                                        |
| `logTypes`     | 配列     | 外部プロバイダーに送信されるログタイプのリスト。既定では、全てのログがプロバイダーに伝播されます。利用可能なログタイプ：`["CRM_LEGACY_CARD", "CRM_EXTENSIBILITY_CARD", "WEBHOOKS", "API_CALL", "APP_SETTINGS", "SERVERLESS_EXECUTION", "PROXY_EXECUTION", "EXTENSION_RENDER", "EXTENSION_LOG", "SERVERLESS_GATEWAY_EXECUTION"]` |
| `logLevels`    | 配列     | ログのフィルター条件となる重大度レベルのリスト。サポートされているログレベル：`["ERROR", "WARNING", "INFO"]`                                                                                                                                                                                               |

## CLIを使用して外部認証をシークレットとして追加する

上記の`telemetry-hsmeta.json`設定ファイルを作成するだけでなく、プロバイダーの認証キーに相当するシークレットを追加する必要もあります。

* Sentryを使用している場合は、シークレットとしてDSN（データソース名）を追加します。
* Honeycombを使用している場合は、シークレットとしてAPIキーを追加します。

### Sentry DSNを特定する

Sentryを使用している場合は、以下の手順に従ってDSNを取得します。

* [Sentryアカウント](https://sentry.io/auth/login/)にログインします。
* プロジェクトの設定に移動します。
* ［クライアントキー\_\_］または［DSN\_\_］セクションで、プロジェクトでの一意のDSNを確認できます。以下に例を示します。

```
https://sentry-key@sentry-identifier.ingest.us.sentry.io/project-id
```

### Honeycomb APIキーを特定する

外部の可観測性プロバイダーとしてHoneycombを使用している場合は、データの認証と転送にAPIキーが使用されます。このAPIキーは特定のHoneycombアカウントとプロジェクトに関連付けられたものです。

Honeycomb APIキーを生成するには、次のようにします。

* [Honeycombアカウント](https://ui.honeycomb.io/login)ににログインします。
* プロジェクトの設定に移動します。
* ［APIキー\_\_］セクションを見つけて、新しいキーを生成します。
* 生成されたAPIキーをコピーします。

### HubSpot CLIを使用してシークレットを追加する

Sentry DSNまたはHoneycomb APIキーを取得した後は、その値をシークレットとして追加するために次のコマンドを実行します。シークレットの名前を求められたら、ログデータを正しく同期するために、<u>必ず</u>`TELEMETRY_SECRET`を使用してください。

```shell theme={null}
hs app secrets add
```
