{"id":"fe03c7e9-4f55-4fc5-8ba8-2139dbc4c4af","shortId":"a9LTmt","kind":"skill","title":"dt-obs-gcp","tagline":"GCP cloud resources including Compute Engine, GKE, Cloud Run, Pub/Sub, VPC networking, DNS, IAM, Secret Manager, and monitoring. Monitor GCP infrastructure, analyze resource usage, audit security posture, and manage organizational hierarchy across projects and folders.","description":"# GCP Cloud Infrastructure\n\nMonitor and analyze GCP resources using Dynatrace Smartscape and DQL. Query GCP services, manage organizational hierarchy, audit security posture, and track resource ownership across your GCP infrastructure.\n\n## When to Use This Skill\n\nUse this skill when the user needs to work with GCP resources in Dynatrace. Load the reference file for the task type:\n\n| Task | File to load |\n|---|---|\n| Inventory and topology queries | (no additional file — use core patterns above) |\n| Compute Engine instances, machine types, IP addresses | Load `references/compute-instances.md` |\n| GKE clusters, node pools, pods, deployments, services, RBAC | Load `references/kubernetes-gke.md` |\n| Cloud Run services, revisions, executions | Load `references/serverless-containers.md` |\n| VPC networks, subnets, routes, DNS records | Load `references/networking-dns.md` |\n| Pub/Sub topics | Load `references/messaging-pubsub.md` |\n| IAM service accounts, roles, Secret Manager | Load `references/iam-security.md` |\n| Monitoring dashboards, logging, saved queries | Load `references/monitoring-logging.md` |\n| GCP projects, regions, organizational hierarchy | Load `references/resource-management.md` |\n| Resource ownership, GCP labels, organizational structure | Load `references/resource-ownership.md` |\n\n---\n\n## Core Concepts\n\n### Entity Types\n\nGCP resources use the `GCP_*` prefix and can be queried using the `smartscapeNodes` function. All GCP entities are automatically discovered and modeled in Dynatrace Smartscape.\n\n**Compute:** `GCP_COMPUTE_GOOGLEAPIS_COM_INSTANCE`, `GCP_COMPUTE_GOOGLEAPIS_COM_ADDRESS`\n**Networking:** `GCP_COMPUTE_GOOGLEAPIS_COM_NETWORK`, `GCP_COMPUTE_GOOGLEAPIS_COM_SUBNETWORK`, `GCP_COMPUTE_GOOGLEAPIS_COM_ROUTE`, `GCP_DNS_GOOGLEAPIS_COM_RESOURCERECORDSET`\n**Kubernetes (GKE):** `GCP_K8S_IO_POD`, `GCP_K8S_IO_NODE`, `GCP_K8S_IO_SERVICE`, `GCP_K8S_IO_SERVICEACCOUNT`, `GCP_K8S_IO_PERSISTENTVOLUMECLAIM`, `GCP_APPS_K8S_IO_DEPLOYMENT`, `GCP_APPS_K8S_IO_STATEFULSET`, `GCP_CONTAINER_GOOGLEAPIS_COM_NODEPOOL`, `GCP_RBAC_AUTHORIZATION_K8S_IO_CLUSTERROLEBINDING`, `GCP_RBAC_AUTHORIZATION_K8S_IO_ROLEBINDING`\n**Serverless:** `GCP_RUN_GOOGLEAPIS_COM_SERVICE`, `GCP_RUN_GOOGLEAPIS_COM_REVISION`, `GCP_RUN_GOOGLEAPIS_COM_EXECUTION`\n**IAM & Security:** `GCP_IAM_GOOGLEAPIS_COM_SERVICEACCOUNT`, `GCP_IAM_GOOGLEAPIS_COM_ROLE`, `GCP_SECRETMANAGER_GOOGLEAPIS_COM_SECRETVERSION`\n**Messaging:** `GCP_PUBSUB_GOOGLEAPIS_COM_TOPIC`\n**Monitoring:** `GCP_MONITORING_GOOGLEAPIS_COM_DASHBOARD`, `GCP_LOGGING_GOOGLEAPIS_COM_SAVEDQUERY`\n**Infrastructure:** `GCP_REGION`\n\n### Common GCP Fields\n\nAll GCP entities include:\n- `gcp.project.id` — GCP project identifier\n- `gcp.region` — GCP region (e.g., us-central1)\n- `gcp.zone` — GCP zone (e.g., us-central1-a)\n- `gcp.organization.id` — GCP organization identifier\n- `gcp.resource.name` — Resource name\n- `gcp.resource.type` — Resource type identifier\n- `gcp.asset.type` — GCP asset type\n- `gcp.object` — JSON blob containing full resource configuration\n\n### GCP Organizational Hierarchy\n\nGCP resources are organized in a hierarchy:\n- **Organization** — Top-level container (`gcp.organization.id`)\n- **Folder** — Logical grouping within an organization\n- **Project** — Resource container (`gcp.project.id`)\n- **Region/Zone** — Physical location (`gcp.region`, `gcp.zone`)\n\n### Entity Naming Convention\n\nGCP entity types follow the pattern `GCP_<SERVICE_API>_<RESOURCE>`:\n- Service API maps to the Google API domain (e.g., `compute.googleapis.com` → `COMPUTE_GOOGLEAPIS_COM`)\n- Resource is the specific resource type (e.g., `INSTANCE`, `NETWORK`)\n\nExamples:\n- `GCP_COMPUTE_GOOGLEAPIS_COM_INSTANCE` — Compute Engine VM\n- `GCP_K8S_IO_POD` — GKE pod\n- `GCP_RUN_GOOGLEAPIS_COM_SERVICE` — Cloud Run service\n\n---\n\n## Query Patterns\n\nAll GCP queries build on four core patterns. Master these and adapt them to any entity type.\n\n### Pattern 1: Resource Discovery\n\nList resources by type, filter by project/region/zone, summarize counts:\n\n```dql\nsmartscapeNodes \"GCP_COMPUTE_GOOGLEAPIS_COM_INSTANCE\"\n| fields name, gcp.project.id, gcp.region, gcp.zone, gcp.resource.name\n```\n\nTo list all GCP resource types, replace with `\"GCP_*\"` and add `| summarize count = count(), by: {type} | sort count desc`. Add filters like `| filter gcp.project.id == \"<PROJECT_ID>\"` or `| filter gcp.region == \"<REGION>\"` to scope results.\n\n### Pattern 2: Configuration Parsing\n\nParse `gcp.object` JSON for detailed configuration fields:\n\n```dql\nsmartscapeNodes \"GCP_COMPUTE_GOOGLEAPIS_COM_INSTANCE\"\n| parse gcp.object, \"JSON:gcpjson\"\n| fieldsAdd machineType = gcpjson[configuration][resource][machineType],\n            status = gcpjson[configuration][resource][status]\n| fields name, gcp.project.id, machineType, status\n```\n\nGCP configuration fields are nested under `gcpjson[configuration][resource][...]` for primary resource attributes and `gcpjson[configuration][additionalAttributes][...]` for extended properties.\n\n### Pattern 3: Relationship Traversal\n\nFollow relationships between resources:\n\n```dql\nsmartscapeNodes \"GCP_COMPUTE_GOOGLEAPIS_COM_INSTANCE\"\n| traverse \"*\", \"GCP_COMPUTE_GOOGLEAPIS_COM_SUBNETWORK\"\n| fields name, gcp.project.id\n```\n\nGCP entities use `\"*\"` as the relationship name in traversals because GCP entities do not have named relationship types. Use `fieldsKeep` to carry fields through traversals and `dt.traverse.history[-N]` to access ancestor fields.\n\n### Pattern 4: Label-Based Ownership\n\nGroup resources by GCP labels for ownership and organizational tracking:\n\n```dql\nsmartscapeNodes \"GCP_*\"\n| filter isNotNull(`tags:gcp_labels`)\n| fields name, gcp.project.id, `tags:gcp_labels`\n```\n\nGCP labels are exposed via the `tags:gcp_labels` field and must be accessed using backtick syntax. Replace `\"GCP_*\"` with a specific type to scope to one service.\n\n---\n\n## Reference Guide\n\nLoad reference files for detailed queries when the core patterns above need service-specific adaptation.\n\n| Reference | When to load | Key content |\n|---|---|---|\n| [compute-instances.md](references/compute-instances.md) | Compute Engine VMs, machine types, IP addresses, disks | Instance inventory, machine type distribution, status checks |\n| [kubernetes-gke.md](references/kubernetes-gke.md) | GKE clusters, node pools, pods, deployments, services, RBAC | Cluster topology, workload distribution, RBAC bindings |\n| [serverless-containers.md](references/serverless-containers.md) | Cloud Run services, revisions, executions | Service inventory, revision tracking, execution analysis |\n| [networking-dns.md](references/networking-dns.md) | VPC networks, subnets, routes, DNS records | Network topology, subnet analysis, route tables, DNS record sets |\n| [messaging-pubsub.md](references/messaging-pubsub.md) | Pub/Sub topics | Topic inventory, messaging topology |\n| [iam-security.md](references/iam-security.md) | IAM service accounts, roles, Secret Manager | Service account audit, role analysis, secret version tracking |\n| [monitoring-logging.md](references/monitoring-logging.md) | Monitoring dashboards, logging, saved queries | Dashboard inventory, saved query analysis |\n| [resource-management.md](references/resource-management.md) | GCP projects, regions, organizational hierarchy | Project inventory, region distribution, hierarchy mapping |\n| [resource-ownership.md](references/resource-ownership.md) | Resource ownership, GCP labels, organizational structure | Label-based grouping, project-level summaries, chargeback |\n\n---\n\n## Best Practices\n\n### Configuration Parsing\n1. Always parse `gcp.object` with JSON parser: `parse gcp.object, \"JSON:gcpjson\"`\n2. Access primary resource attributes via `gcpjson[configuration][resource][...]`\n3. Access extended properties via `gcpjson[configuration][additionalAttributes][...]`\n4. Check for null values after parsing with `isNotNull()`\n\n### GCP Hierarchy\n1. Organization → Folder → Project → Region/Zone\n2. Use `gcp.project.id` as the primary scoping filter\n3. Use `gcp.organization.id` for cross-project queries\n4. Use `gcp.region` and `gcp.zone` for location-based analysis\n\n### Entity Naming\n1. Entity types follow the `GCP_<SERVICE_API>_<RESOURCE>` format\n2. Service API maps to the Google API domain with underscores replacing dots and hyphens\n3. Use specific entity types (avoid `\"GCP_*\"` wildcards when possible)\n\n### Labels\n1. GCP labels must be accessed via backtick syntax: `` `tags:gcp_labels` ``\n2. Use `isNotNull(`tags:gcp_labels`)` for label-based filtering\n3. Track label coverage with summarize operations\n\n### Relationship Traversal\n1. Use `\"*\"` as the relationship name — GCP entities do not have named relationship types\n2. Use `fieldsKeep` to maintain important fields through traversal\n3. Access traversal history with `dt.traverse.history[-N]`\n4. Complex topologies may require multiple traverse operations\n\n---\n\n## Limitations and Notes\n\n### Smartscape Limitations\n- Smartscape data reflects the most recent scan; there may be a delay between GCP changes and Dynatrace visibility\n- Not all GCP services are represented as entity types\n- Some configuration fields may be null depending on resource setup\n- Resource discovery depends on GCP integration configuration\n\n### GCP-Specific Notes\n- GCP labels must be accessed via backtick syntax: `` `tags:gcp_labels` ``\n- GCP entities use `\"*\"` for relationship traversal (no named relationship types)\n- GCP object configuration requires parsing with `parse gcp.object, \"JSON:gcpjson\"`\n- Configuration fields nest under `gcpjson[configuration][resource][...]` (differs from AWS pattern)\n\n### General Tips\n- Filter early by project and region for better performance\n- Use `isNotNull()` and `isNull()` for graceful null handling\n- Combine project and region filters for large environments\n- Use `countDistinct()` for unique resource counts\n- Limit results with `| limit N` during exploration","tags":["obs","gcp","dynatrace","for","agent-skills","ai-agents","claude-code","devops","dql","mcp","observability"],"capabilities":["skill","source-dynatrace","skill-dt-obs-gcp","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-devops","topic-dql","topic-dynatrace","topic-mcp","topic-observability"],"categories":["dynatrace-for-ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Dynatrace/dynatrace-for-ai/dt-obs-gcp","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Dynatrace/dynatrace-for-ai","source_repo":"https://github.com/Dynatrace/dynatrace-for-ai","install_from":"skills.sh"}},"qualityScore":"0.489","qualityRationale":"deterministic score 0.49 from registry signals: · indexed on github topic:agent-skills · 78 github stars · SKILL.md body (9,849 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:56:48.018Z","embedding":null,"createdAt":"2026-05-11T18:57:14.110Z","updatedAt":"2026-05-18T18:56:48.018Z","lastSeenAt":"2026-05-18T18:56:48.018Z","tsv":"'1':497,881,920,953,986,1018 '2':553,892,925,960,998,1032 '3':611,901,933,975,1009,1041 '4':667,909,941,1048 'access':663,709,893,902,991,1042,1113 'account':152,823,828 'across':36,66 'adapt':490,741 'add':532,541 'addit':106 'additionalattribut':606,908 'address':118,219,756 'alway':882 'analysi':793,805,831,846,950 'analyz':26,45 'ancestor':664 'api':433,438,962,967 'app':264,269 'asset':382 'attribut':602,896 'audit':29,59,829 'author':280,286 'automat':202 'avoid':980 'aw':1149 'backtick':711,993,1115 'base':670,870,949,1007 'best':877 'better':1160 'bind':780 'blob':386 'build':482 'carri':655 'central1':360,367 'chang':1075 'chargeback':876 'check':764,910 'cloud':6,12,41,131,474,783 'cluster':122,768,775 'clusterrolebind':283 'com':213,218,224,229,234,239,276,294,299,304,311,316,321,327,333,338,444,458,472,514,568,623,629 'combin':1170 'common':343 'complex':1049 'comput':9,112,209,211,216,222,227,232,442,456,460,512,566,621,627,750 'compute-instances.md':748 'compute.googleapis.com':441 'concept':181 'configur':390,554,561,577,582,591,597,605,879,899,907,1089,1104,1132,1140,1145 'contain':274,387,405,415 'content':747 'convent':424 'core':109,180,485,734 'count':508,534,535,539,1183 'countdistinct':1179 'coverag':1012 'cross':938 'cross-project':937 'dashboard':159,334,838,842 'data':1062 'delay':1072 'depend':1094,1100 'deploy':126,267,772 'desc':540 'detail':560,730 'differ':1147 'discov':203 'discoveri':499,1099 'disk':757 'distribut':762,778,857 'dns':17,142,237,800,808 'domain':439,968 'dot':972 'dql':52,509,563,618,682 'dt':2 'dt-obs-gcp':1 'dt.traverse.history':660,1046 'dynatrac':49,88,207,1077 'e.g':357,364,440,451 'earli':1154 'engin':10,113,461,751 'entiti':182,200,348,422,426,494,635,645,951,954,978,1025,1086,1121 'environ':1177 'exampl':454 'execut':135,305,787,792 'explor':1190 'expos':699 'extend':608,903 'field':345,516,562,585,592,631,656,665,690,705,1038,1090,1141 'fieldsadd':574 'fieldskeep':653,1034 'file':92,98,107,728 'filter':504,542,544,547,685,932,1008,1153,1174 'folder':39,407,922 'follow':428,614,956 'format':959 'four':484 'full':388 'function':197 'gcp':4,5,24,40,46,54,68,85,165,174,184,188,199,210,215,221,226,231,236,243,247,251,255,259,263,268,273,278,284,291,296,301,308,313,318,324,330,335,341,344,347,351,355,362,370,381,391,394,425,431,455,463,469,480,511,525,530,565,590,620,626,634,644,675,684,688,694,696,703,714,849,864,918,958,981,987,996,1002,1024,1074,1081,1102,1106,1109,1118,1120,1130 'gcp-specif':1105 'gcp.asset.type':380 'gcp.object':384,557,571,884,889,1137 'gcp.organization.id':369,406,935 'gcp.project.id':350,416,518,545,587,633,692,927 'gcp.region':354,420,519,548,943 'gcp.resource.name':373,521 'gcp.resource.type':376 'gcp.zone':361,421,520,945 'gcpjson':573,576,581,596,604,891,898,906,1139,1144 'general':1151 'gke':11,121,242,467,767 'googl':437,966 'googleapi':212,217,223,228,233,238,275,293,298,303,310,315,320,326,332,337,443,457,471,513,567,622,628 'grace':1167 'group':409,672,871 'guid':725 'handl':1169 'hierarchi':35,58,169,393,400,853,858,919 'histori':1044 'hyphen':974 'iam':18,150,306,309,314,821 'iam-security.md':819 'identifi':353,372,379 'import':1037 'includ':8,349 'infrastructur':25,42,69,340 'instanc':114,214,452,459,515,569,624,758 'integr':1103 'inventori':101,759,789,816,843,855 'io':245,249,253,257,261,266,271,282,288,465 'ip':117,755 'isnotnul':686,917,1000,1163 'isnul':1165 'json':385,558,572,886,890,1138 'k8s':244,248,252,256,260,265,270,281,287,464 'key':746 'kubernet':241 'kubernetes-gke.md':765 'label':175,669,676,689,695,697,704,865,869,985,988,997,1003,1006,1011,1110,1119 'label-bas':668,868,1005 'larg':1176 'level':404,874 'like':543 'limit':1056,1060,1184,1187 'list':500,523 'load':89,100,119,129,136,144,148,156,163,170,178,726,745 'locat':419,948 'location-bas':947 'log':160,336,839 'logic':408 'machin':115,753,760 'machinetyp':575,579,588 'maintain':1036 'manag':20,33,56,155,826 'map':434,859,963 'master':487 'may':1051,1069,1091 'messag':323,817 'messaging-pubsub.md':811 'model':205 'monitor':22,23,43,158,329,331,837 'monitoring-logging.md':835 'multipl':1053 'must':707,989,1111 'n':661,1047,1188 'name':375,423,517,586,632,640,649,691,952,1023,1029,1127 'need':81,737 'nest':594,1142 'network':16,139,220,225,453,797,802 'networking-dns.md':794 'node':123,250,769 'nodepool':277 'note':1058,1108 'null':912,1093,1168 'ob':3 'object':1131 'one':722 'oper':1015,1055 'organ':371,397,401,412,921 'organiz':34,57,168,176,392,680,852,866 'ownership':65,173,671,678,863 'pars':555,556,570,880,883,888,915,1134,1136 'parser':887 'pattern':110,430,478,486,496,552,610,666,735,1150 'perform':1161 'persistentvolumeclaim':262 'physic':418 'pod':125,246,466,468,771 'pool':124,770 'possibl':984 'postur':31,61 'practic':878 'prefix':189 'primari':600,894,930 'project':37,166,352,413,850,854,873,923,939,1156,1171 'project-level':872 'project/region/zone':506 'properti':609,904 'pub/sub':14,146,813 'pubsub':325 'queri':53,104,162,193,477,481,731,841,845,940 'rbac':128,279,285,774,779 'recent':1066 'record':143,801,809 'refer':91,724,727,742 'references/compute-instances.md':120,749 'references/iam-security.md':157,820 'references/kubernetes-gke.md':130,766 'references/messaging-pubsub.md':149,812 'references/monitoring-logging.md':164,836 'references/networking-dns.md':145,795 'references/resource-management.md':171,848 'references/resource-ownership.md':179,861 'references/serverless-containers.md':137,782 'reflect':1063 'region':167,342,356,851,856,1158,1173 'region/zone':417,924 'relationship':612,615,639,650,1016,1022,1030,1124,1128 'replac':528,713,971 'repres':1084 'requir':1052,1133 'resourc':7,27,47,64,86,172,185,374,377,389,395,414,445,449,498,501,526,578,583,598,601,617,673,862,895,900,1096,1098,1146,1182 'resource-management.md':847 'resource-ownership.md':860 'resourcerecordset':240 'result':551,1185 'revis':134,300,786,790 'role':153,317,824,830 'rolebind':289 'rout':141,235,799,806 'run':13,132,292,297,302,470,475,784 'save':161,840,844 'savedqueri':339 'scan':1067 'scope':550,720,931 'secret':19,154,825,832 'secretmanag':319 'secretvers':322 'secur':30,60,307 'serverless':290 'serverless-containers.md':781 'servic':55,127,133,151,254,295,432,473,476,723,739,773,785,788,822,827,961,1082 'service-specif':738 'serviceaccount':258,312 'set':810 'setup':1097 'skill':74,77 'skill-dt-obs-gcp' 'smartscap':50,208,1059,1061 'smartscapenod':196,510,564,619,683 'sort':538 'source-dynatrace' 'specif':448,717,740,977,1107 'statefulset':272 'status':580,584,589,763 'structur':177,867 'subnet':140,798,804 'subnetwork':230,630 'summar':507,533,1014 'summari':875 'syntax':712,994,1116 'tabl':807 'tag':687,693,702,995,1001,1117 'task':95,97 'tip':1152 'top':403 'top-level':402 'topic':147,328,814,815 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-devops' 'topic-dql' 'topic-dynatrace' 'topic-mcp' 'topic-observability' 'topolog':103,776,803,818,1050 'track':63,681,791,834,1010 'travers':613,625,642,658,1017,1040,1043,1054,1125 'type':96,116,183,378,383,427,450,495,503,527,537,651,718,754,761,955,979,1031,1087,1129 'underscor':970 'uniqu':1181 'us':359,366 'us-central1':358 'us-central1-a':365 'usag':28 'use':48,72,75,108,186,194,636,652,710,926,934,942,976,999,1019,1033,1122,1162,1178 'user':80 'valu':913 'version':833 'via':700,897,905,992,1114 'visibl':1078 'vm':462 'vms':752 'vpc':15,138,796 'wildcard':982 'within':410 'work':83 'workload':777 'zone':363","prices":[{"id":"b48d8610-008d-4b23-a292-62397f7a3ded","listingId":"fe03c7e9-4f55-4fc5-8ba8-2139dbc4c4af","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Dynatrace","category":"dynatrace-for-ai","install_from":"skills.sh"},"createdAt":"2026-05-11T18:57:14.110Z"}],"sources":[{"listingId":"fe03c7e9-4f55-4fc5-8ba8-2139dbc4c4af","source":"github","sourceId":"Dynatrace/dynatrace-for-ai/dt-obs-gcp","sourceUrl":"https://github.com/Dynatrace/dynatrace-for-ai/tree/main/skills/dt-obs-gcp","isPrimary":false,"firstSeenAt":"2026-05-11T18:57:14.110Z","lastSeenAt":"2026-05-18T18:56:48.018Z"}],"details":{"listingId":"fe03c7e9-4f55-4fc5-8ba8-2139dbc4c4af","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Dynatrace","slug":"dt-obs-gcp","github":{"repo":"Dynatrace/dynatrace-for-ai","stars":78,"topics":["agent-skills","ai-agents","claude-code","devops","dql","dynatrace","mcp","observability"],"license":"apache-2.0","html_url":"https://github.com/Dynatrace/dynatrace-for-ai","pushed_at":"2026-05-15T16:06:09Z","description":"Skills, prompts, and instructions for building AI agents on top of Dynatrace production context","skill_md_sha":"fcbe792d450faa2f32ac32eef5965c34f8d771b2","skill_md_path":"skills/dt-obs-gcp/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Dynatrace/dynatrace-for-ai/tree/main/skills/dt-obs-gcp"},"layout":"multi","source":"github","category":"dynatrace-for-ai","frontmatter":{"name":"dt-obs-gcp","license":"Apache-2.0","description":"GCP cloud resources including Compute Engine, GKE, Cloud Run, Pub/Sub, VPC networking, DNS, IAM, Secret Manager, and monitoring. Monitor GCP infrastructure, analyze resource usage, audit security posture, and manage organizational hierarchy across projects and folders."},"skills_sh_url":"https://skills.sh/Dynatrace/dynatrace-for-ai/dt-obs-gcp"},"updatedAt":"2026-05-18T18:56:48.018Z"}}