57dc91585d
Internal SmartGift build of a Claude Code monitoring dashboard. Lanes: a durable unit of parallel agent work, one per working directory, tracked across session restarts. Managed lanes are git worktrees the dashboard provisions and can reset or remove behind a three-check destroy guard and a counted preflight; adopted lanes are directories you already own and are never destroyable. Pipelines: a lane moves through pipeline stages. A stage the agent declares with evidence renders green; a stage inferred from the tool-event stream renders dashed amber and never counts as done. Detection is forward-only within a 30-minute window, and never writes the declared stage. Workspace: one page at /run with a lane grid, the selected lane's pipeline, and a full Claude console behind a disclosure.
181 lines
5.8 KiB
YAML
181 lines
5.8 KiB
YAML
# ─────────────────────────────────────────────────────────────────────────────
|
||
# Coralogix OpenTelemetry Collector – Helm Values
|
||
#
|
||
# Deploys the Coralogix OTel collector as a DaemonSet + Gateway for shipping
|
||
# logs, metrics, and traces from the Agent Monitor cluster.
|
||
#
|
||
# Prerequisites:
|
||
# 1. Add Coralogix Helm repo:
|
||
# helm repo add coralogix https://cgx.jfrog.io/artifactory/coralogix-charts-virtual
|
||
# helm repo update
|
||
# 2. Create the API key secret:
|
||
# kubectl create secret generic coralogix-keys \
|
||
# --namespace agent-monitor \
|
||
# --from-literal=PRIVATE_KEY=<YOUR_CORALOGIX_PRIVATE_KEY>
|
||
#
|
||
# Install:
|
||
# helm install coralogix-otel coralogix/opentelemetry \
|
||
# --namespace agent-monitor \
|
||
# -f deployments/monitoring/coralogix/values.yaml
|
||
# ─────────────────────────────────────────────────────────────────────────────
|
||
|
||
global:
|
||
# Coralogix domain – set to your region's endpoint
|
||
# Options: coralogix.com | eu2.coralogix.com | coralogix.in | coralogix.us |
|
||
# cx498.coralogix.com | coralogix.eu | coralogix.sg
|
||
domain: "coralogix.com"
|
||
|
||
# Reference the API key from the pre-created K8s secret
|
||
clusterName: "agent-monitor"
|
||
|
||
# ── Secret reference ─────────────────────────────────────────────────────────
|
||
secret:
|
||
enabled: true
|
||
name: "coralogix-keys"
|
||
# Key in the secret containing the Coralogix Send-Your-Data API key
|
||
privateKeySecretRef:
|
||
key: "PRIVATE_KEY"
|
||
|
||
# ── Collector – DaemonSet mode (node-level collection) ───────────────────────
|
||
opentelemetry-collector:
|
||
mode: daemonset
|
||
|
||
presets:
|
||
# Collect Kubernetes pod/container logs
|
||
logsCollection:
|
||
enabled: true
|
||
includeCollectorLogs: false
|
||
|
||
# Enrich telemetry with Kubernetes metadata
|
||
kubernetesAttributes:
|
||
enabled: true
|
||
extractAllPodLabels: true
|
||
extractAllPodAnnotations: false
|
||
|
||
# Collect host-level metrics (CPU, memory, disk, network)
|
||
hostMetrics:
|
||
enabled: true
|
||
|
||
# Collect kubelet/cAdvisor metrics
|
||
kubeletMetrics:
|
||
enabled: true
|
||
|
||
config:
|
||
receivers:
|
||
# Scrape Prometheus metrics from agent-monitor pods
|
||
prometheus:
|
||
config:
|
||
scrape_configs:
|
||
- job_name: "agent-monitor"
|
||
scrape_interval: 15s
|
||
kubernetes_sd_configs:
|
||
- role: pod
|
||
namespaces:
|
||
names:
|
||
- agent-monitor
|
||
- agent-monitor-staging
|
||
- agent-monitor-production
|
||
relabel_configs:
|
||
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
|
||
action: keep
|
||
regex: "true"
|
||
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
|
||
action: replace
|
||
target_label: __metrics_path__
|
||
regex: (.+)
|
||
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
|
||
action: replace
|
||
regex: ([^:]+)(?::\d+)?;(\d+)
|
||
replacement: $$1:$$2
|
||
target_label: __address__
|
||
|
||
# Receive OTLP from in-cluster services (gRPC + HTTP)
|
||
otlp:
|
||
protocols:
|
||
grpc:
|
||
endpoint: "0.0.0.0:4317"
|
||
http:
|
||
endpoint: "0.0.0.0:4318"
|
||
|
||
processors:
|
||
# Batch telemetry for efficient export
|
||
batch:
|
||
send_batch_size: 1024
|
||
send_batch_max_size: 2048
|
||
timeout: 5s
|
||
|
||
# Enrich with resource attributes
|
||
resource:
|
||
attributes:
|
||
- key: cx.application.name
|
||
value: "agent-monitor"
|
||
action: upsert
|
||
- key: cx.subsystem.name
|
||
from_attribute: k8s.container.name
|
||
action: upsert
|
||
- key: k8s.cluster.name
|
||
value: "agent-monitor"
|
||
action: upsert
|
||
|
||
# Memory limiter to prevent OOM
|
||
memory_limiter:
|
||
check_interval: 5s
|
||
limit_percentage: 80
|
||
spike_limit_percentage: 25
|
||
|
||
# Filter out noisy internal logs
|
||
filter/drop-internal:
|
||
logs:
|
||
exclude:
|
||
match_type: regexp
|
||
bodies:
|
||
- ".*kube-probe.*"
|
||
- ".*healthz.*"
|
||
|
||
exporters:
|
||
coralogix:
|
||
domain: "${CORALOGIX_DOMAIN}"
|
||
private_key: "${PRIVATE_KEY}"
|
||
application_name: "agent-monitor"
|
||
subsystem_name: "kubernetes"
|
||
timeout: 30s
|
||
|
||
service:
|
||
pipelines:
|
||
logs:
|
||
receivers: [otlp]
|
||
processors: [memory_limiter, resource, filter/drop-internal, batch]
|
||
exporters: [coralogix]
|
||
metrics:
|
||
receivers: [otlp, prometheus]
|
||
processors: [memory_limiter, resource, batch]
|
||
exporters: [coralogix]
|
||
traces:
|
||
receivers: [otlp]
|
||
processors: [memory_limiter, resource, batch]
|
||
exporters: [coralogix]
|
||
|
||
resources:
|
||
requests:
|
||
cpu: 100m
|
||
memory: 256Mi
|
||
limits:
|
||
cpu: 500m
|
||
memory: 512Mi
|
||
|
||
tolerations:
|
||
- operator: Exists
|
||
effect: NoSchedule
|
||
|
||
# ── Gateway mode (optional – for centralized export) ─────────────────────────
|
||
opentelemetry-gateway:
|
||
enabled: false
|
||
replicaCount: 2
|
||
resources:
|
||
requests:
|
||
cpu: 250m
|
||
memory: 512Mi
|
||
limits:
|
||
cpu: "1"
|
||
memory: "1Gi"
|