Vous disposez d'options pour le type et la quantité de données que vous ingérez lorsque vous installez la télémétrie automatique avec Pixie. Lors de l'installation, utilisez Helm pour réduire, restreindre ou exclure des données, en excluant un espace de nommage ou un pod spécifique, en collectant des données uniquement pour les nœuds souhaités ou en supprimant les colonnes contenant des informations sensibles.
Important
Les sections suivantes montrent comment configurer l’ingestion lors de l’installation de Pixie. Vous pouvez également configurer l'ingestion après l'installation en activant, désactivant ou en ajoutant un script d'exportation Pixie personnalisé.
Exclure l'espace de nommage et le pod
Si vous souhaitez réduire la quantité de données Pixie que New Relic ingère, vous pouvez exclure l'espace de nommage ou le pod en ajoutant les paramètres suivants à votre graphique Helm lors de l'installation. Notez que les données existent toujours dans Pixie :
excludeNamespacesRegex
- utilisé pour identifier l'espace de nommage que vous souhaitez exclure de l'envoi de données d'observabilité à New Relic. Si vide, les données de tous les espaces de nommage sont envoyées à New Relic. Par exemple:bash$--set newrelic-pixie.excludeNamespacesRegex="examplenamespace-1|examplenamespace-2"excludePodsRegex
- utilisé pour identifier les pods dans tous les espaces de nommage que vous souhaitez exclure de l'envoi de données d'observabilité à New Relic. Si vide, les données de tous les pods (sauf ceux de l'espace de nommage exclu) sont envoyées à New Relic. Par exemple:bash$--set newrelic-pixie.excludePodsRegex="examplepod-1|examplepod-2"
Ces deux options de configuration offrent un contrôle supplémentaire sur les données Metric
et Span
envoyées à New Relic depuis Pixie.
Par exemple, si vous souhaitez configurer l'intégration newrelic-pixie
pour exclure tous les espaces de nommage à l'exception de px-sock-shop
et kafka-demo
, ajoutez le paramètre de configuration suivant à votre commande d'installation Helm ou de mise à niveau Helm .
$--set newrelic-pixie.excludeNamespacesRegex="default|kube-node-lease|kube-public|kube-system|newrelic|newrelic-custom-metrics|olm|px-operator"
Ou, si vous souhaitez exclure un pod exécuté dans un espace de nommage non exclu, vous pouvez ajouter un autre paramètre configuration à votre installation Helm ou à votre mise à niveau Helm . Au lieu de faire correspondre des noms exacts, vous pouvez utiliser une expression régulière simple pour faire correspondre les noms de pod liés aux tests de charge, à titre d'exemple.
$--set newrelic-pixie.excludePodsRegex="load-test.*|loadgen.*"
Si vous effectuez une toute nouvelle installation, vous devrez ajouter excludeNamespacesRegex
et excludePodsRegex
à la commande helm upgrade --install
fournie par l'installation guidée de New Relic :
$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.*"
Si vous effectuez simplement une mise à niveau d'une installation existante, il s'agit d'une approche beaucoup plus simple :
$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"
En savoir plus sur les paramètres disponibles pour le graphique Helm newrelic-pixie
ici.
Utilisez la fonctionnalité Kubernetes pour collecter les données sélectionnées
Lorsque vous déployez l'Auto-télémétrie avec Pixie, vous activez en réalité le graphique Auto-télémétrie avec Pixie Helm , ainsi que d'autres composants New Relic inclus dans le pack New Relic Infrastructure. Le pod Pixie Edge Module (PEM) est déployé sur le cluster en tant que DaemonSet Kubernetes . Cela signifie que par défaut, un pod est planifié sur chaque nœud cluster et est chargé de collecter toutes les métriques d'observabilité pour ce nœud.
Dans Kubernetes, vous pouvez affecter un pod à un sous-ensemble spécifique de nœuds cluster à l'aide de nodeSelectors, de teintes/tolérances et d'affinité/anti-affinité de nœud. De cette façon, vous collecterez uniquement des métriques pour les nœuds que vous choisissez, au lieu de chaque nœud. Cela est utile si vous souhaitez uniquement déployer la télémétrie automatique avec Pixie sur cinq de vos dix nœuds de cluster, par exemple. Peut-être que les cinq nœuds désignés sont responsables de la charge de travail à haute priorité, ou peut-être que vous exécutez à la fois des nœuds Linux et Windows dans votre cluster et que vous souhaitez uniquement déployer sur les nœuds Linux, car les nœuds Windows ne sont pas actuellement pris en charge.
Vous pouvez désormais affecter un pod à un sous-ensemble de nœuds en fournissant une option supplémentaire à la commande d'installation guidée. Cette option transmet une chaîne JSON échappée au graphique de télémétrie automatique avec Pixie, ce qui active un nodeSelector
qui planifie uniquement le DaemonSet PEM sur les nœuds avec l'étiquette pixie=allowed
.
$--set pixie-chart.patches.vizier-pem='\{\"spec\"\: \{\"template\"\: \{\"spec\"\: \{ \"nodeSelector\"\: \{\"pixie\"\: \"allowed\" \}\}\}\}\}'
Si vous utilisez un fichier de valeurs, commun avec Helm, voici à quoi cela ressemblerait dans le nri-bundle values.yaml
:
pixie-chart: enabled: true patches: vizier-pem: '{"spec": {"template": {"spec": { "nodeSelector": {"pixie": "allowed" }}}}}'
Cette approche vous offre une multitude d’options de configuration ; il vous suffit de vous en tenir à la spécification standard de Kubernetes.
Rédiger les colonnes contenant des informations sensibles
Vous pouvez rédiger des colonnes de données potentiellement sensibles, telles que les corps et les en-têtes de requêtes et de réponses. Pour ce faire, lorsque vous déployez l'Auto-télémétrie avec Pixie, utilisez la commande Helm suivante :
$--set pixie-chart.dataAccess=Restricted
Si vous ne définissez pas dataAccess
sur Restricted
, vous continuerez à bénéficier d'un accès complet aux données, ce qui est l'état par défaut.
Actuellement, Full
et Restricted
sont les deux seules options.
Full
: l'option par défaut. Ceci est implicite pour tous les clusters qui ont déjà été déployés. Dans cette méthode, vous pouvez interroger librement toutes les tables et colonnes et voir toutes les données.Restricted
:Lors de l'interrogation des données, les colonnes pouvant contenir des données sensibles, telles que les corps de réponse/requête et les en-têtes de requête, sont remplacées par la chaîneREDACTED
. D'autres colonnes non sensibles, telles queerror code
, sont toujours affichées normalement. Notez que le mode d’accès restreint aux données n’est pas intelligent. Il ne détecte pas si la ligne contient réellement des données sensibles. Au lieu de cela, il identifie un type de contenu comme potentiellement sensible et le masque.