observability-translation
Skill139 starsChanged 6 months agoApache-2.0View on GitHub
Translates EKS observability stacks (CloudWatch, Amazon Managed Service for Prometheus, X-Ray) to GKE equivalents and produces a telemetry design diff. Use when the user asks to "translate observability", "convert CloudWatch alarms", or "set up GKE monitoring". Don't use for general GKE cluster provisioning or deploying application workloads.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- geoffsdesk/portagetheir own version, first seen May 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- geoffsdesk/portage★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository45 other files it gives its agents.
- spanner-provisioningSkill
- ad-copywritingSkill
- brand-strategySkill
- platform-specsSkill
- trend-analysisSkill
- video-storytellingSkill
- visual-directionSkill
- ad-copywritingSkill
- brand-strategySkill
- platform-specsSkill
- trend-analysisSkill
- video-storytellingSkill
- visual-directionSkill
- code-reviewSkill
- documentationSkill
- idea-to-appSkill
- open-prSkill
- pre-commitSkill
- security-scanSkill
- unit-testsSkill
- modernize-dotnet-cloudrunSkill
- legacy-app-generatorSkill
- app-migration-executionSkill
- app-migration-orchestratorSkill
- identity-translationSkill
- network-translationSkill
- observability-translationSkill
- storage-translationSkill
- workload-translationSkill
- ingress2gatewaySkill
- eks-discoverySkill
- gke-landing-zoneSkill
- identity-translationSkill
- migration-assessmentSkill
- network-translationSkill
- platform-orchestratorSkill
- registry-migrationSkill
- storage-translationSkill
- validationSkill
- bigframes-bqmlSkill
- model-evaluationSkill
- pipeline-generatorSkill
- spark-lightning-optimizationSkill
- unified-model-registrySkill
- zero-copy-ingestionSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 29
Ensure operational parity on GKE before traffic shifts.
- Distinctive: line 71
Telemetry Aggregation: Verify all GKE clusters are monitored.
- Very specific: line 75
Ensure target GKE clusters have Logging (SYSTEM_COMPONENTS, WORKLOADS) and Monitoring (SYSTEM_COMPONENTS, managedPrometheusConfig.enabled = …
- Very specific: line 99
Follow mappings in references/observability-mappings.md and build metric-map.md.
- Very specific: line 169
Every CloudWatch alarm has a target policy in alarm-translation.md.
- Distinctive: line 185
Lost runbooks: Ensure alert documentation includes runbook links.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Observability translation
<!--
Disabling markdownlint MD029 to provide explicit ordering to avoid
confusing the LLM.
--><!-- markdownlint-disable MD029 --><!--
Disabling markdownlint MD030 to allow the list overflowing to numbers
>=10.
--><!-- markdownlint-disable MD030 -->You translate the observability surface — logs, metrics, traces, dashboards, alerts, SLOs — from EKS/CloudWatch/Amazon Managed Service for Prometheus (AMP) into GKE/Cloud Operations/Google Cloud Managed Service for Prometheus (GMP). You produce translated configurations and a parity report.
Purpose
Ensure operational parity on GKE before traffic shifts.
When to use this skill
- Translate observability stacks, dashboards, or alarms from EKS to GKE.
- Set up monitoring or SLOs on GKE.
Don't use for
- Provisioning GKE clusters or non-observability infrastructure.
- Deploying application workloads.
Prerequisites
- Source Telemetry Inventory:
<output_dir>/01-discovery/inventory.json(CloudWatch alarms, dashboards, Log Groups, AMP/X-Ray configs) and workload scrape endpoints. - Target Architecture:
<output_dir>/03-landing-zone/landing-zone-plan.mddefiningobs-<env>project and GKE cluster monitoring status. - Route Targets:
<output_dir>/04-network-translation/manifests/httproutes/for LB alerting targets. - Risk Classifications:
<output_dir>/02-assessment/scorecard.jsonfor identifying critical workloads. - Identity Mappings:
<output_dir>/05-identity-translation/identity-map.jsonfor Workload Identity IAM validation. - Access:
gcloud,kubectl,terraformauthenticated to target environments.
[!IMPORTANT]
If prerequisites are missing, stop and alert the user.
Procedure
Step 1 — Declare Telemetry Infrastructure (Terraform)
Generate declarative Terraform (e.g., terraform/metrics-scope.tf) following
assets/telemetry-infra.tf. Do not use gcloud.
- Metrics Scope: Link central
obs-<env>project to all workload cluster projects viagoogle_monitoring_monitored_project. - Telemetry Aggregation: Verify all GKE clusters are monitored.
Step 2 — Verify Built-in Ingest
Ensure target GKE clusters have Logging (SYSTEM_COMPONENTS, WORKLOADS) and
Monitoring (SYSTEM_COMPONENTS, managedPrometheusConfig.enabled = true)
active in their specifications.
Step 3 — Translate Prometheus to GMP CRDs
Translate configurations into monitoring.googleapis.com/v1 Custom Resources:
- Scrapes: Inspect pod template scrape annotations directly so that they
properly link each scraped workload name to its corresponding GMP target in
observability-map.json(rather than incorrectly associating it withcloudwatch-agent). Rewrite targets asPodMonitoring(namespace) orClusterPodMonitoring(cluster). UsemetricRelabelingto optimize costs (seeassets/pod-monitoring.yaml). - Rules/Alerts: Convert AMP rules to GMP
RulesorClusterRules(seeassets/prometheus-rules.yaml). - Federation: Repoint external federation to GMP query endpoint.
Step 4 — Translate Dashboards
- Self-hosted Grafana: Deploy on GKE, link to GMP/Cloud Monitoring, import JSON, and update metric names.
- Cloud Monitoring: Convert Grafana panels to native widgets.
Follow mappings in references/observability-mappings.md and build
metric-map.md.
Step 5 — Declare Log Routing (Terraform)
Generate Terraform (terraform/log-buckets.tf, terraform/log-sinks.tf)
following assets/telemetry-infra.tf.
- Log Buckets & Analytics: Declare buckets via
google_logging_project_bucket_configwithenable_analytics = true. - Log Scopes: Configure virtual multi-project views.
- Log Sinks: Route logs via
google_logging_project_sinkto external platforms or custom buckets.
Step 6 — Establish Dual Alerting Fabric
- App Alerts (GMP): PromQL alerts via
Rules/ClusterRulesCRDs. - Infra Alerts (Cloud Monitoring): Terraform
(
google_monitoring_alert_policy) or YAML (assets/alerting-policy.yaml) for:- SLO burn rates, node saturation (>85%), API server errors, and LB 5xx rates.
Define channels in terraform/notification-channels.tf.
Step 7 — Translate Traces (OTel)
Recommend switching AWS X-Ray SDK to OpenTelemetry (OTel) SDK. Configure OTel
Collector (trace.gke.io) for Cloud Trace export. Produce per-app migration
notes.
Step 8 — Declare SLOs
Translate existing SLOs or declare basic ones (Availability, Latency) for
critical services via Cloud Monitoring CRDs or Terraform (see
assets/slo.yaml). Document in obs-design.md.
Step 9 — Generate Deliverables
Render output artifacts and observability-map.json (per
assets/observability-map.schema.json).
Decision points
See Architectural decision points in references/observability-mappings.md.
Outputs / deliverables
08-observability-translation/
├── obs-design.md
├── observability-map.json
├── manifests/
│ ├── podmonitorings/
│ ├── clusterpodmonitorings/
│ └── rules/
├── terraform/
│ ├── log-buckets.tf
│ ├── log-sinks.tf
│ └── notification-channels.tf
├── dashboards/
│ ├── grafana/
│ └── cloud-monitoring/
├── metric-map.md
├── alarm-translation.md
└── escalations.mdValidation
- Every CloudWatch alarm has a target policy in
alarm-translation.md. - Dashboards ported with confirmed metrics.
- Control plane/container logs visible in Cloud Logging.
- GMP scrapes return data.
- Alerting policies fire in test.
Escalation triggers
- Custom CloudWatch metrics from EC2 SDK (requires code change).
- Grafana dashboards using AWS-only data sources (Athena, etc.).
- AMG-specific features without Google analogue.
Common pitfalls
- Double counting: Tag with cluster labels during co-existence.
- Log cost: Watch ingestion; use
metricRelabelingto drop metrics. - Lost runbooks: Ensure alert documentation includes runbook links.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

