neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
Automate incident response, cloud provisioning, CI/CD, and developer requests with AI agents that build deterministic workflows across your entire stack.
Developer toolsGo · ShellGitHub @KestrelAIOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
An operator for streaming Kubernetes resource metadata, logs, events, and network traffic telemetry over mTLS to Kestrel Cloud.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
An operator for streaming Kubernetes resource metadata, events, logs, and network traffic telemetry over mTLS to Kestrel Cloud.
The Kestrel Operator connects to Kestrel Cloud using gRPC bidirectional streaming. It authenticates using OAuth2 credentials, establishes an mTLS HTTP/2 connection, and performs the following functions:Read the full README ↗An operator for streaming Kubernetes resource metadata, events, logs, and network traffic telemetry over mTLS to Kestrel Cloud.
The Kestrel Operator connects to Kestrel Cloud using gRPC bidirectional streaming. It authenticates using OAuth2 credentials, establishes an mTLS HTTP/2 connection, and performs the following functions:
The Kestrel Operator can optionally integrate with Cilium for L3/L4 network flow collection. This integration is not required for basic functionality.
The operator will continue to function normally without Cilium installed, providing:
When Cilium is available, the Kestrel Operator additionally provides:
To disable Cilium integration entirely:
Via Helm values:
operator:
cilium:
disableFlows: true
Via environment variable:
DISABLE_CILIUM_FLOWS=true
The Kestrel Operator integrates with Istio for L7 access log collection via Envoy's Access Log Service (ALS). This integration provides detailed L7 (HTTP/gRPC) traffic visibility.
The operator will continue to function normally without Istio installed, providing:
When Istio is available and properly configured, the Kestrel Operator additionally provides:
For Istio integration to work, the following must be configured:
istio-injection=enabled so workloads get Envoy sidecarsTo enable Istio integration (already done by selecting Istio as the traffic data source at cluster onboarding):
Via Helm values:
operator:
istio:
enabled: true
cilium:
disableFlows: true # Typically disable Cilium when using Istio for flow collection
The operator automatically creates the necessary Telemetry resources via its Helm chart, but you must configure Istio's mesh configuration to define the Kestrel Operator as an extension provider for access logging.
Required extension providers:
meshConfig:
extensionProviders:
- name: kestrel-operator-als
envoyHttpAls:
service: kestrel-operator-als.kestrel-ai.svc.cluster.local
port: 8080
- name: kestrel-operator-als-tcp
envoyTcpAls:
service: kestrel-operator-als.kestrel-ai.svc.cluster.local
port: 8080
There are several ways to apply this depending on your Istio setup:
--set flags (new Istio installations or Helm-managed Istio)helm repo add istio https://istio-release.storage.googleapis.com/charts
helm upgrade --install istiod istio/istiod -n istio-system \
--set 'meshConfig.extensionProviders[0].name=kestrel-operator-als' \
--set 'meshConfig.extensionProviders[0].envoyHttpAls.service=kestrel-operator-als.kestrel-ai.svc.cluster.local' \
--set 'meshConfig.extensionProviders[0].envoyHttpAls.port=8080' \
--set 'meshConfig.extensionProviders[1].name=kestrel-operator-als-tcp' \
--set 'meshConfig.extensionProviders[1].envoyTcpAls.service=kestrel-operator-als.kestrel-ai.svc.cluster.local' \
--set 'meshConfig.extensionProviders[1].envoyTcpAls.port=8080'
kubectl patch (existing installations without custom mesh config)If your Istio installation doesn't have custom mesh configuration, you can apply the extension providers with a single command:
kubectl patch configmap istio -n istio-system --type merge -p '{"data":{"mesh":"extensionProviders:\n- name: kestrel-operator-als\n envoyHttpAls:\n service: kestrel-operator-als.kestrel-ai.svc.cluster.local\n port: 8080\n- name: kestrel-operator-als-tcp\n envoyTcpAls:\n service: kestrel-operator-als.kestrel-ai.svc.cluster.local\n port: 8080"}}'
After patching, restart Istiod:
kubectl rollout restart deployment istiod -n istio-system
⚠️ Warning: This
--type mergepatch replaces the entiremeshkey. Only use this if you don't have existing custom mesh configuration. If you do, use Option 3 instead.
If you already have custom mesh configuration (e.g., custom discoveryAddress, trustDomain, defaultProviders), edit the ConfigMap directly to avoid overwriting your existing settings:
kubectl edit configmap istio -n istio-system
Find the mesh: key in the data section and add the extensionProviders block while keeping all existing settings:
data:
mesh: |-
# ... your existing mesh config (keep all existing settings) ...
extensionProviders:
- name: kestrel-operator-als
envoyHttpAls:
service: kestrel-operator-als.kestrel-ai.svc.cluster.local
port: 8080
- name: kestrel-operator-als-tcp
envoyTcpAls:
service: kestrel-operator-als.kestrel-ai.svc.cluster.local
port: 8080
After saving, restart Istiod to pick up the changes:
kubectl rollout restart deployment istiod -n istio-system
Application namespaces must have Istio sidecar injection enabled. Label each namespace before deploying workloads:
kubectl label namespace <your-namespace> istio-injection=enabled
If workloads are already running, label the namespace and restart the deployments to inject sidecars:
kubectl label namespace <your-namespace> istio-injection=enabled --overwrite
kubectl rollout restart deployment -n <your-namespace> <deployment-name>
Verify sidecars are injected by checking that pods have an istio-proxy container:
kubectl get pods -n <your-namespace> -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .spec.containers[*]}{.name}{" "}{end}{"\n"}{end}' | grep istio-proxy
If sidecars are injected, each pod will show istio-proxy in the container list.
The operator's Helm chart will automatically create the necessary Telemetry resources that reference these extension providers.
The Kestrel Operator can receive and store OTEL metrics locally for incident root cause analysis (RCA). When enabled, the operator exposes an OTLP gRPC receiver (default port 4317) that accepts metrics from your OpenTelemetry Collectors.
Via Helm values:
operator:
otel:
enabled: true
receiverPort: 4317
metricsStore:
retention: "30m" # Rolling retention window
maxSeries: 100000 # Max unique metric series
ringSize: 60 # Data points per series
IMPORTANT: For metrics to include Kubernetes context (namespace, workload, pod names), your OpenTelemetry Collector MUST have the k8sattributes processor configured.
Required k8sattributes processor configuration:
processors:
k8sattributes:
auth_type: "serviceAccount"
passthrough: false
extract:
metadata:
- k8s.namespace.name
- k8s.pod.name
- k8s.pod.uid
- k8s.deployment.name
- k8s.statefulset.name
- k8s.daemonset.name
- k8s.replicaset.name
- k8s.container.name
- k8s.node.name
pod_association:
- sources:
- from: resource_attribute
name: k8s.pod.ip
- from: resource_attribute
name: ip
- from: connection
Exporter configuration to send metrics to Kestrel Operator:
exporters:
otlp/kestrel:
endpoint: kestrel-operator.kestrel-ai.svc.cluster.local:4317
tls:
insecure: true # In-cluster communication
# compression: gzip # Optional, enable for reduced bandwidth
service:
pipelines:
metrics:
receivers: [otlp, prometheus]
processors: [k8sattributes, batch]
exporters: [otlp/kestrel]
Note: The operator supports gzip compression. The OpenTelemetry Collector enables gzip by default, but if using the Go SDK directly, enable it via OTEL_EXPORTER_OTLP_COMPRESSION=gzip or the compression: gzip exporter option.
Without the k8sattributes processor:
To install the Kestrel Operator on your cluster, simply copy the command from the Onboard Cluster page on the Kestrel Platform:
helm install kestrel-operator oci://ghcr.io/kestrelai/charts/kestrel-operator --version 0.1.0 --namespace kestrel-ai --create-namespace -f kestrel-ai-operator-values-<cluster-name>.yaml