Pixie で自動テレメトリをインストールする際に、取り込むデータの種類と量のオプションがあります。インストール時に Helm を使用して、特定のネームスペースやポッドを除外したり、必要なノードのみのデータを収集したり、機密情報を含む列を再編集したりして、データを削減、制限、または除外します。
重要
次のセクションでは、Pixie のインストール中に取り込みを構成する方法を示します。カスタム Pixie エクスポート スクリプトを有効化、無効化、または追加することで、インストール後に取り込みを構成することもできます。
名前空間とポッドの除外
New Relic が取り込む Pixie データの量を減らしたい場合は、インストール時に Helm チャートに以下のパラメーターを追加することで、名前空間やポッドを除外することができます。なお、データは依然として Pixie に存在します。
excludeNamespacesRegex
-可観測性データをNewRelicに送信する際に除外する名前空間を識別するために使用します。空の場合、すべての名前空間のデータがNewRelicに送信されます。例えば:bash$--set newrelic-pixie.excludeNamespacesRegex="examplenamespace-1|examplenamespace-2"excludePodsRegex
-可観測性データをNewRelicに送信する際に除外する、すべての名前空間のポッドを識別するために使用します。空の場合、すべてのポッド(除外された名前空間のポッドを除く)のデータがNewRelicに送信されます。例えば:bash$--set newrelic-pixie.excludePodsRegex="examplepod-1|examplepod-2"
これらの2つの構成オプションは、PixieからNewRelicに送信されるMetric
およびSpan
データに対する追加の制御を提供します。
たとえば、 px-sock-shop
とkafka-demo
を除くすべての名前空間を除外するようにnewrelic-pixie
統合を構成する場合は、次の構成パラメーターをHelmインストールまたはHelmアップグレードコマンドに追加します。
$--set newrelic-pixie.excludeNamespacesRegex="default|kube-node-lease|kube-public|kube-system|newrelic|newrelic-custom-metrics|olm|px-operator"
あるいは、除外されていない名前空間で実行されているポッドを除外したい場合は、HelmのインストールまたはHelmのアップグレードに別の設定パラメータを追加することができます。正確な名前をマッチさせる代わりに、例としてロードテストに関連するポッド名をマッチさせるためにシンプルな正規表現を使用することができます。
$--set newrelic-pixie.excludePodsRegex="load-test.*|loadgen.*"
まったく新しいインストールを実行している場合は、NewRelicのガイド付きインストールで提供されるhelm upgrade --install
コマンドにexcludeNamespacesRegex
とexcludePodsRegex
を追加する必要があります。
$kubectl apply -f https://raw.githubusercontent.com/pixie-labs/pixie/main/k8s/operator/crd/base/px.dev_viziers.yaml && \> kubectl apply -f https://raw.githubusercontent.com/pixie-labs/pixie/main/k8s/operator/helm/crds/olm_crd.yaml && \> helm repo add newrelic https://helm-charts.newrelic.com && helm repo update && \> kubectl create namespace newrelic ; helm upgrade --install newrelic-bundle newrelic/nri-bundle \> --set global.licenseKey=NR_LICENSE_KEY \> --set global.cluster=pixie-auto-telemetry \> --namespace=newrelic \> --set newrelic-infrastructure.privileged=true \> --set ksm.enabled=true \> --set prometheus.enabled=true \> --set kubeEvents.enabled=true \> --set logging.enabled=true \> --set newrelic-pixie.enabled=true \> --set newrelic-pixie.apiKey=PIXIE_API_KEY \> --set pixie-chart.enabled=true \> --set pixie-chart.deployKey=PIXIE_DEPLOY_KEY \> --set pixie-chart.clusterName=pixie-auto-telemetry \> --set newrelic-pixie.excludeNamespacesRegex="default|kube-node-lease|kube-public|kube-system|newrelic|newrelic-custom-metrics|olm|px-operator" \> --set newrelic-pixie.excludePodsRegex="load-test.*|loadgen.*"
既存のインストールをアップグレードするだけなら、この方法の方がはるかにシンプルです。
$helm upgrade newrelic-bundle newrelic/nri-bundle --reuse-values -n newrelic --set newrelic-pixie.excludeNamespacesRegex="default|kube-node-lease|kube-public|kube-system|newrelic|newrelic-custom-metrics|olm|px-operator"
newrelic-pixie
ヘルムチャートで使用可能なパラメータについて詳しくは、 こちらをご覧ください。
Kubernetesの機能を使って選択したデータを収集する
Auto-telemetry with Pixie をデプロイすると、実際に Auto-telemetry with Pixie Helm チャートが有効になり、New Relic インフラストラクチャ バンドルに含まれる他の New Relic コンポーネントも有効になります。 Pixie Edge Module (PEM) ポッドは、Kubernetes DaemonSet としてクラスターにデプロイされます。つまり、デフォルトでは、ポッドがすべてのクラスターノードにスケジュールされ、そのノードのすべてのオブザーバビリティメトリクスの収集を担当します。
Kubernetes では、nodeSelector、taints/tolerations、ノードのアフィニティ/アンチアフィニティを使用して、クラスタ ノードの特定のサブセットにポッドを割り当てることができます。そうすれば、すべてのノードではなく、選択したノードのメトリックのみを収集できます。これは、たとえば、Pixie を使用した自動テレメトリーを 10 個のクラスター ノードのうち 5 個にのみデプロイする場合に役立ちます。指定された 5 つのノードが優先度の高いワークロードを担当している場合や、クラスター内で Linux ノードと Windows ノードの両方を実行していて、Windows ノードは現在サポートされていないため、Linux ノードにのみデプロイしたい場合があります。
ガイド付きインストール コマンドに追加のオプションを指定することで、ポッドをノードのサブセットに割り当てることができるようになりました。このオプションは、エスケープされた JSON 文字列を Auto-telemetry with Pixie チャートに渡します。これにより、ラベルpixie=allowed
を持つノードで PEM DaemonSet のみをスケジュールするnodeSelector
が有効になります。
$--set pixie-chart.patches.vizier-pem='\{\"spec\"\: \{\"template\"\: \{\"spec\"\: \{ \"nodeSelector\"\: \{\"pixie\"\: \"allowed\" \}\}\}\}\}'
Helmで一般的な値ファイルを使用している場合、これはnri-bundle values.yaml
でのようになります。
pixie-chart: enabled: true patches: vizier-pem: '{"spec": {"template": {"spec": { "nodeSelector": {"pixie": "allowed" }}}}}'
この方法では、Kubernetesの標準的な仕様に従うだけで、多数の設定オプションが得られます。
機密情報を含むカラムを再編集
リクエストやレスポンスのボディやヘッダーなど、機密性の高いデータの列を再編集することができます。これを行うには、Pixie で Auto-telemetry を展開するときに、次の Helm コマンドを使用します。
$--set pixie-chart.dataAccess=Restricted
dataAccess
をRestricted
に設定しない場合、デフォルトの状態である完全なデータアクセスを引き続き取得します。
現在、 Full
とRestricted
だけが2つのオプションです。
Full
:デフォルトのオプション。これは、すでにデプロイされているすべてのクラスターに適用されます。このメソッドでは、すべてのテーブルと列を自由にクエリして、すべてのデータを表示できます。Restricted
:データをクエリする場合、応答/リクエスト本文やリクエストヘッダーなどの機密データを含む可能性のある列は、REDACTED
文字列に置き換えられます。error code
などの他の機密性の低い列は、引き続き通常どおり表示されます。制限付きデータアクセスモードはスマートではないことに注意してください。行に機密データが実際に含まれているかどうかは検出されません。代わりに、コンテンツのタイプを潜在的に機密性の高いものとして識別し、非表示にします。