Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when installing or configuring the WizTelemetry Data Pipeline (vector) extension for KubeSphere, which provides data collection, transformation, and routing for observability data including logs, auditing, events, and notifications
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 77% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 145% | 0% |
WizTelemetry Data Pipeline is an extension based on vector (https://vector.dev/) that provides the ability to collect, transform, and route observability data. It is a core dependency for other WizTelemetry extensions like Logging, Auditing, Events, and Notification.
REQUIRED: Complete all steps in order before generating InstallPlan.
⚠️ CRITICAL: DO NOT proceed until target clusters are determined.
Step 1.1: Get available clusters
bashkubectl get clusters -o jsonpath='{.items[*].metadata.name}'
Step 1.2: Determine target clusters
Ask user (if not specified):
Available clusters: host, dev
Which clusters do you want to deploy Vector to?Ask user for (if not provided):
http://<node-ip>:30920 or https://opensearch.example.com:9200admin)DO NOT proceed to Step 3 until user provides both endpoint and credentials.
MUST do this to get the latest version:
bashkubectl get extensionversions -l kubesphere.io/extension-ref=vector -o jsonpath='{range .items[*]}{.spec.version}{"\n"}{end}' | sort -V | tail -1
This outputs the latest version (e.g., 1.1.4). Note this down - you'll use it in the InstallPlan.
⚠️ IMPORTANT: Complete prerequisite steps (1-3) BEFORE this step.
⚠️ CRITICAL: InstallPlan metadata.name MUST be vector. DO NOT use any other name.
Based on your selections:
⚠️ CRITICAL: config field is YAML format. You MUST:
⚠️ CRITICAL: All placeholders MUST be replaced with actual values. DO NOT leave them as placeholders.
yamlapiVersion: kubesphere.io/v1alpha1 kind: InstallPlan metadata: name: vector spec: extension: name: vector version: <VECTOR_VERSION> # From Step 3 enabled: true upgradeStrategy: Manual config: | agent: sinks: opensearch: auth: strategy: basic user: <OPENSEARCH_USER> password: <OPENSEARCH_PASSWORD> endpoints: - <OPENSEARCH_ENDPOINT> clusterScheduling: placement: clusters: - <TARGET_CLUSTERS>
Replace placeholders:
<VECTOR_VERSION>: From Step 2 (e.g., 1.1.4)<OPENSEARCH_ENDPOINT>: User-provided endpoint (e.g., http://<node-ip>:30920)<OPENSEARCH_USER>: User-provided username (default: admin)<OPENSEARCH_PASSWORD>: User-provided password<TARGET_CLUSTERS>: User-confirmed cluster names⚠️ DO NOT generate InstallPlan until all placeholders have real values.
After applying InstallPlan, you MUST wait for deployment to complete:
bash# Wait for Vector pods to be ready (on each cluster) kubectl wait --for=condition=Ready pods -n kubesphere-logging-system -l app.kubernetes.io/instance=vector --timeout=300s # Verify deployment status kubectl get pods -n kubesphere-logging-system -l app.kubernetes.io/instance=vector
Show deployment summary to user:
yamlapiVersion: kubesphere.io/v1alpha1 kind: InstallPlan metadata: name: vector spec: extension: name: vector version: <VECTOR_VERSION> # From Step 2 enabled: true upgradeStrategy: Manual config: | agent: sinks: opensearch: auth: strategy: basic user: <OPENSEARCH_USER> password: <OPENSEARCH_PASSWORD> endpoints: - <OPENSEARCH_ENDPOINT> exportMetrics: enabled: true clusterScheduling: placement: clusters: - <TARGET_CLUSTERS>
| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | agent.role | string | "Agent" | Role identifier | | agent.image.tag | string | "0.53.0-debian" | Vector image tag | | agent.resources.requests.cpu | string | "100m" | CPU request | | agent.resources.requests.memory | string | "100Mi" | Memory request | | agent.resources.limits.cpu | string | "2000m" | CPU limit | | agent.resources.limits.memory | string | "2000Mi" | Memory limit | | agent.service.ports | list | see values.yaml | Service ports | | agent.exportMetrics.enabled | bool | false | Enable metrics export |
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | agent.sinks.opensearch.endpoints | list | Yes | OpenSearch endpoint URLs | | agent.sinks.opensearch.auth.strategy | string | Yes | Authentication strategy (set to basic) | | agent.sinks.opensearch.auth.user | string | Yes | Username for authentication | | agent.sinks.opensearch.auth.password | string | Yes | Password for authentication | | agent.sinks.opensearch.tls.verify | bool | No | Enable TLS verification (default: false) |
Example:
yamlagent: sinks: opensearch: endpoints: - http://<node-ip>:30920 auth: strategy: basic user: admin password: admin tls: verify: false
If Docker root directory is not /var/lib:
yamlagent: extraVolumes: - name: docker-root hostPath: path: /path/to/docker type: '' extraVolumeMounts: - name: docker-root mountPath: /path/to/docker
bash# View extension installation status kubectl get installplan vector # View extension version kubectl get extensionversions -l kubesphere.io/extension-ref=vector
bash# View all Vector pods kubectl get pods -n kubesphere-logging-system -l app.kubernetes.io/name=vector # View agent pods kubectl get pods -n kubesphere-logging-system -l app.kubernetes.io/name=vector,app.kubernetes.io/component=agent
bash# View agent logs kubectl logs -n kubesphere-logging-system -l app.kubernetes.io/name=vector,app.kubernetes.io/component=agent --tail=100
yamlapiVersion: kubesphere.io/v1alpha1 kind: InstallPlan metadata: name: vector spec: extension: name: vector version: <VECTOR_VERSION> enabled: true upgradeStrategy: Manual config: | agent: sinks: opensearch: auth: strategy: basic user: <OPENSEARCH_USER> password: <OPENSEARCH_PASSWORD> endpoints: - <OPENSEARCH_ENDPOINT> clusterScheduling: placement: clusters: - <TARGET_CLUSTERS>
Uninstall from all clusters:
bashkubectl delete installplan vector
Uninstall from specific cluster:
To remove Vector from a specific cluster, update the InstallPlan by removing that cluster from clusterScheduling.placement.clusters:
yamlapiVersion: kubesphere.io/v1alpha1 kind: InstallPlan metadata: name: vector spec: extension: name: vector version: <VECTOR_VERSION> enabled: true upgradeStrategy: Manual config: | agent: sinks: opensearch: auth: strategy: basic user: <OPENSEARCH_USER> password: <OPENSEARCH_PASSWORD> endpoints: - <OPENSEARCH_ENDPOINT> clusterScheduling: placement: clusters: - <REMAINING_CLUSTERS> # Remove the cluster you want to uninstall from
installationMode: Multicluster:agent (tag: agent) is deployed to all selected member clustersbash# View Vector configmap kubectl get configmap -n kubesphere-logging-system -l app.kubernetes.io/name=vector # View specific config kubectl get configmap -n kubesphere-logging-system vector-config -o yaml
bash# Check if sinks are configured correctly kubectl get secret -n kubesphere-logging-system vector-sinks -o yaml
| Issue | Solution | |-------|----------| | Pods not starting | Check if OpenSearch is accessible | | Data not flowing | Verify sink configuration and network connectivity | | Agent not on member cluster | Check multicluster installation settings | | Out of memory | Increase resource limits in configuration |
Other measured skills in the registry, with their headline benchmark lift.