Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when installing or configuring the WizTelemetry Platform Service extension for KubeSphere, which provides the common APIServer backend services for all WizTelemetry observability extensions
.claude/skills/kubesphere-whizard-telemetry/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 195% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 142% | 0% |
WizTelemetry Platform Service is a common service for all observability extensions of KubeSphere's WizTelemetry Observability Platform. It provides a common APIServer for all observability extensions, offering backend platform services for Logging, Auditing, Events, Notifications, Tracing, and more.
| Component | Description | Default | |-----------|-------------|---------| | whizard-telemetry-apiserver | Common APIServer for all observability extensions | 1 replica | | wiz-telemetry-console | Web console for WizTelemetry | 1 replica |
The WizTelemetry Platform Service does not have hard dependencies on other components. All APIs can be enabled/disabled based on the deployed extensions:
Configuration should be added incrementally as you deploy additional observability extensions (e.g., WhizardLogging, WhizardAuditing, WhizardEvents, WhizardNotification).
Step 1: Get latest version
bashkubectl get extensionversions -l kubesphere.io/extension-ref=whizard-telemetry -o jsonpath='{range .items[*]}{.spec.version}{"\n"}{end}' | sort -V | tail -1
Step 2: Generate config
Run the helper script in the skill's scripts directory:
bashcd whizard-telemetry && ./scripts/generate-config.sh
This script will:
Step 3: Create InstallPlan
Use the generated config to create the InstallPlan:
yamlapiVersion: kubesphere.io/v1alpha1 kind: InstallPlan metadata: name: whizard-telemetry spec: extension: name: whizard-telemetry version: <VERSION> # From Step 1 enabled: true upgradeStrategy: Manual config: | <CONFIG_FROM_STEP_2>
⚠️ CRITICAL: InstallPlan metadata.name MUST be whizard-telemetry. DO NOT use any other name.
The whizard-telemetry configuration is automatically generated based on which observability extensions are installed. You do NOT need to manually configure it - it will be generated when you install the corresponding extensions.
How it works:
The whizard-telemetry.config section is automatically generated by the helper script based on installed extensions. You do not need to manually configure it.
| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | whizard-telemetry.apiserver.image.repository | string | kubesphere/whizard-telemetry-apiserver | API server image | | whizard-telemetry.apiserver.image.tag | string | latest | API server image tag | | wiz-telemetry-console.image.repository | string | kubesphere/wiz-telemetry-console | Console image | | wiz-telemetry-console.image.tag | string | 2.1.0 | Console image tag |
| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | whizard-telemetry.apiserver.nodeSelector | object | {} | Node selector | | whizard-telemetry.apiserver.tolerations | list | ] | Tolerations | | whizard-telemetry.apiserver.affinity | object | {} | Affinity | | wiz-telemetry-console.nodeSelector | object | {} | Node selector | | wiz-telemetry-console.tolerations | list | ] | Tolerations | | wiz-telemetry-console.affinity | object | {} | Affinity |
bash# View extension installation status kubectl get installplan whizard-telemetry # View extension version kubectl get extensionversions -l kubesphere.io/extension-ref=whizard-telemetry
bash# View API server pods kubectl get pods -n extension-whizard-telemetry -l app=whizard-telemetry-apiserver # View console pods kubectl get pods -n extension-whizard-telemetry -l app=wiz-telemetry-console
bash# View API server logs kubectl logs -n extension-whizard-telemetry -l app=whizard-telemetry-apiserver --tail=100 # View console logs kubectl logs -n extension-whizard-telemetry -l app=wiz-telemetry-console --tail=100
bash# Delete the InstallPlan to uninstall kubectl delete installplan whizard-telemetry
When new observability extensions are installed or uninstalled (e.g., whizard-logging, whizard-events, whizard-auditing), you need to update the whizard-telemetry config.
Step 1: Generate new config
bashcd whizard-telemetry && ./scripts/generate-config.sh
This script will check installed extensions and generate the complete config.
Step 2: Update InstallPlan
bash# Get the generated config (between ---CONFIG_START--- and ---CONFIG_END---) # Then patch the InstallPlan: kubectl get installplan whizard-telemetry -n kubesphere-system -o yaml > /tmp/whizard-telemetry.yaml # Edit the file and update the config section, then apply: kubectl apply -f /tmp/whizard-telemetry.yaml
Note: The config is automatically generated based on installed extensions. After installing new extensions (logging, events, auditing, notification, etc.), always regenerate and apply the config.
bash# Check API server endpoints kubectl get endpoints -n extension-whizard-telemetry whizard-telemetry-apiserver # Check API server service kubectl get svc -n extension-whizard-telemetry whizard-telemetry-apiserver
bash# View current configuration kubectl get installplan whizard-telemetry -o yaml # View configmap kubectl get configmap -n extension-whizard-telemetry whizard-telemetry-config -o yaml
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 13,799 | 6,362 | -54% | 1 | 1 | 0% | 2,426 | 3,095 | +28% | 0 | 0 | — |
case-02 | fail→pass | 26,729 | 9,299 | -65% | 1 | 1 | 0% | 1,145 | 3,378 | +195% | 0 | 0 | — |
case-03 | fail→pass | 19,646 | 9,503 | -52% | 1 | 1 | 0% | 2,525 | 3,484 | +38% | 0 | 0 | — |
case-04 | fail→fail | 13,217 | 10,694 | -19% | 1 | 1 | 0% | 2,433 | 3,549 | +46% | 0 | 0 | — |
case-05 | pass→pass | 18,235 | 12,287 | -33% | 1 | 1 | 0% | 2,930 | 3,927 | +34% | 0 | 0 | — |
case-06 | pass→pass | 11,164 | 7,801 | -30% | 1 | 1 | 0% | 1,848 | 2,997 | +62% | 0 | 0 | — |
case-07 | fail→pass | 9,523 | 2,707 | -72% | 1 | 1 | 0% | 1,563 | 2,088 | +34% | 0 | 0 | — |
case-08 | fail→pass | 6,374 | 2,796 | -56% | 1 | 1 | 0% | 887 | 2,144 | +142% | 0 | 0 | — |
case-09 | fail→pass | 10,072 | 2,412 | -76% | 1 | 1 | 0% | 1,636 | 2,028 | +24% | 0 | 0 | — |
case-10 | fail→pass | 7,259 | 2,218 | -69% | 1 | 1 | 0% | 1,303 | 2,041 | +57% | 0 | 0 | — |
case-11 | fail→pass | 7,158 | 2,106 | -71% | 1 | 1 | 0% | 1,272 | 1,989 | +56% | 0 | 0 | — |
case-12 | fail→pass | 24,199 | 9,163 | -62% | 1 | 1 | 0% | 1,270 | 2,163 | +70% | 0 | 0 | — |
case-13 | pass→pass | 10,599 | 3,448 | -67% | 1 | 1 | 0% | 1,517 | 2,227 | +47% | 0 | 0 | — |
case-14 | pass→pass | 9,340 | 5,361 | -43% | 1 | 1 | 0% | 1,330 | 2,021 | +52% | 0 | 0 | — |
case-15 | fail→pass | 13,547 | 5,425 | -60% | 1 | 1 | 0% | 1,959 | 1,897 | -3% | 0 | 0 | — |
case-16 | fail→pass | 9,648 | 4,212 | -56% | 1 | 1 | 0% | 1,641 | 2,326 | +42% | 0 | 0 | — |
case-17 | fail→fail | 7,802 | 2,614 | -66% | 1 | 1 | 0% | 1,223 | 2,130 | +74% | 0 | 0 | — |
case-18 | fail→fail | 31,704 | 3,906 | -88% | 1 | 1 | 0% | 1,392 | 2,228 | +60% | 0 | 0 | — |
case-19 | fail→pass | 5,707 | 2,209 | -61% | 1 | 1 | 0% | 978 | 2,039 | +108% | 0 | 0 | — |
case-20 | fail→pass | 7,411 | 2,753 | -63% | 1 | 1 | 0% | 1,280 | 2,140 | +67% | 0 | 0 | — |
case-21 | pass→pass | 11,018 | 2,699 | -76% | 1 | 1 | 0% | 1,802 | 2,127 | +18% | 0 | 0 | — |
case-22 | fail→pass | 7,731 | 2,254 | -71% | 1 | 1 | 0% | 1,434 | 2,019 | +41% | 0 | 0 | — |
case-23 | fail→pass | 9,400 | 2,328 | -75% | 1 | 1 | 0% | 1,416 | 1,980 | +40% | 0 | 0 | — |
case-24 | fail→pass | 7,794 | 1,877 | -76% | 1 | 1 | 0% | 1,219 | 1,923 | +58% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 21 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +67 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.