ClickHouse
接続
ターミナルからClickHouseを接続します。ClickHouseが受け付けるフラグは--helpで確認でき、ヘッドレス環境では--no-browserを追加します。
polylane cloud connect --provider clickhouseClickHouse Cloudの組織設定から取得するAPIキーIDとシークレットです。
ClickHouse Cloudは、組織設定で作成したAPIキーで接続します。APIキーはちょうど1つの組織に属するため、1つのキーが1つの組織を接続し、各組織はワークスペースに一度だけ接続します。キーは保存前に暗号化され、エージェントが目にすることはありません。
- ClickHouse Cloudを開き、組織のAPI Keysに移動します。
- New API keyをクリックし、Developer(読み取り専用)ロールを選びます。Polylaneは同期中に読み取るだけです。
- キーIDとキーシークレットの両方をコピーします。シークレットは一度しか表示されません。
- 両方の値をPolylaneに貼り付けます。
- Polylaneがキーを検証し、同期を開始します。
Polylaneはサービスを、状態、ティア、リージョン、クラウドプロバイダー、ClickHouseのバージョン、レプリカのサイズ、接続エンドポイントを含めて検出します。接続ホスト名はクラウドをまたぐリンクに使われるため、環境変数を通じてサービスに到達するアプリケーションはマップ上でそのサービスにリンクされます。
監視は、サービスがdegraded、failed、stopped、またはpartially runningの状態にあるときにイシューを起票します。idleとwakingは、アイドルスケーリングされたサービスの通常のライフサイクルであり、正常なままです。ClickHouse Cloudのコントロールプレーンはメトリクスを履歴のないライブスナップショットとして報告するため、エージェントはオンデマンドで現在の値を読み、サービスにはメトリクスのチャートがありません。
トラブルシューティング
「Invalid API key」エラー
- キーIDとキーシークレットの両方が必要です。どちらか一方だけでは認証できません。
- ClickHouse CloudのAPIキー設定でキーが削除または無効化されていないことを確認してください。
- 有効期限のあるキーは期限が切れると動作しなくなります。新しいキーを作成し、Polylaneでローテーションしてください。
リソースが見つからない
- ClickHouse Cloudがすべてを同期するには数分かかることがあります。
- アカウントヘッダーから手動のSyncを実行して更新してください。
レート制限
- ClickHouse Cloudはキーあたり10秒に10回のAPIリクエストを許可します。Polylane専用のキーを用意すると、その予算を他のツールと共有せずに済みます。
接続解除
Polylaneでアカウントを接続解除し、次にClickHouse Cloudの組織設定からAPIキーを削除します。
CIジョブや、ブラウザーのないその他の環境からClickHouseを接続します。
ClickHouse Cloudの接続にブラウザーは必要ありません。コンソールが呼び出すのと同じエンドポイントがCIジョブに収まります。認証済みのPOSTを1回行うと、接続が作成され、最初の同期が始まります。
前提条件
cloud_accounts:writeとcloud_accounts:readスコープを持つPolylane APIキー。APIキーとOAuthを参照してください。ws_で始まるワークスペースID。同じキーでGET /v1/workspacesから読み取ります。- 組織のAPI KeysでDeveloper(読み取り専用)ロールで作成した、ClickHouse CloudのAPIキーIDとシークレット。
接続を作成する
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "clickhouse",
"workspaceId": "ws_0abc123",
"keyId": "<key-id>",
"keySecret": "<key-secret>"
}'
APIキーはちょうど1つの組織に属するため、1回の呼び出しが1つの組織を接続します。
応答は接続されたものを一覧し、最初の同期はすでに実行中です。フローの残りが読む2つのフィールドに絞ると次のとおりです。
{
"success": true,
"result": {
"provider": "clickhouse",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
すでに接続されているアカウントはaccountsではなくfailuresに入るため、呼び出しを繰り返しても接続が重複することはありません。
最初の同期を待つ
返された各アカウントをidでポーリングし、statusがreadyになるまで待ちます(登録時はnew、リソースが流れ込んでいる間はsyncingです)。
until [ "$(curl -s "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status')" = "ready" ]; do
sleep 15
done
失敗した接続がジョブを止めたままにするのではなく失敗させるように、ループに期限を設けてください。アカウントがreadyになると、そのリソースはトポロジーにあり、Polylaneは最初のチェックを開始しています。
APIから接続解除する
接続を削除すると、すべての同期とチェックが停止し、Polylaneが保持していた認証情報が削除されます。この呼び出しにはcloud_accounts:deleteスコープが必要です。
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
次に、下のDisconnectで説明されているとおり、プロバイダー側でClickHouse Cloudの認証情報を取り消します。
接続解除
接続解除すると、すべての同期とチェックが停止し、Polylaneが保持していた認証情報が削除されます。 PolylaneがClickHouseにセットアップしたものもすべて取り除かれ、何も残りません。
polylane cloud disconnect <id>ツール
3エージェントがスレッドで実行できる操作です。
対応リソース
1インフラグラフに表示されるリソースの種類です。