cloud-logging-finops
Audits Cloud Logging costs for a Google Cloud project: the charges for log entries written to log buckets, the services, log streams and severities that drive them, and the log sinks that route them.
Install / Use
npx skills add google/skills --skill cloud-logging-finopsInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
OperationsSupported Platforms
Tags
Our assessment of cloud-logging-finops
cloud-logging-finops scores 97/100 on our quality scale, 41st of 756 Operations skills we index (top 6%).
Its SKILL.md is 20 KB long, well organised into 15 sections with 3 code examples: a thorough specification that gives an agent plenty to work with.
With 20,340 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 39 days ago, so cloud-logging-finops is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
cloud-logging-finops compared with similar skills
All 4 of these similar skills score higher than cloud-logging-finops; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| cloud-logging-finops (this skill)by google | 97 | 20.3k | 39d ago | SKILL.md |
| algorithmic-artby anthropics | 100 | 177.9k | 40d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 40d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 143.4k | 1d ago | SKILL.md |
| ui-ux-pro-maxby nextlevelbuilder | 100 | 143.4k | 1d ago | SKILL.md |
Frequently asked questions
- How do I install cloud-logging-finops?
- Run
npx skills add google/skills --skill cloud-logging-finops. The install tabs above show the steps for each supported agent. - Which AI agents does cloud-logging-finops work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is cloud-logging-finops safe to use?
- It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is cloud-logging-finops still maintained?
- The repository was last updated 39 days ago, so cloud-logging-finops is actively maintained.
Skill content
View source on GitHubname: cloud-logging-finops metadata: version: "1.0.1" category: CloudObservabilityAndMonitoring description: >- Audits Cloud Logging costs for a Google Cloud project: the charges for log entries written to log buckets, the services, log streams and severities that drive them, and the log sinks that route them. Reconciles Cloud Billing export costs with Cloud Monitoring volume metrics, and generates a FinOps report with charts and copy-paste exclusion filters. Use when auditing Cloud Logging spend, finding logging waste, identifying top logging contributors, generating log cost reduction reports, or creating log sink exclusion filters. Don't use for querying log entries (use cloud-logging-query-generation), configuring Cloud Monitoring alerts, or querying metrics/traces.
Cloud Logging Finops
Non-interactive runs. When no user can answer (e.g. a scheduled or
automated run), ask nothing: audit the project named in the request, or the
active gcloud project; use --billing-mode=search; cover all five report topics
(Step 2.5); and never enable an API or upgrade a log bucket. Put anything that
needed a user (a disabled API, a missing role, the upgrade advisory) in the
report instead.
Usage Attribution
MUST READ: Before executing any gcloud, REST API, or MCP command, you
MUST read and follow the instructions in
Usage Attribution.
Step 0: Locate the Cloud Billing Export
The audit covers one Google Cloud project, {project_id}: the project the user
names or, if they don't name one, the active gcloud project (gcloud config get project), confirmed with the user.
Discover everything else (log buckets, Observability Analytics, sinks, exclusions, metrics) yourself; never ask the user about those. The billing export is the exception: finding it unaided can mean scanning every project on the billing account, so ask once, before running anything, and don't start a search until the user has chosen answer 3 (single-select, using the host's question tool if it has one):
Do you know where the Cloud Billing export for
{project_id}is?
- Yes — here it is (the BigQuery table ID
project.dataset.table, or just the project and dataset)- There's no billing export for this project
- No / not sure — search for it (seconds on a small project; on a large billing account it can take a long time)
Answer | Flags | Cost figures
------ | --------------------------------------------------------------------------------------------- | ------------
1 | --billing-mode=explicit plus --billing-table (or --billing-project/--billing-dataset) | invoiced
2 | --billing-mode=none | list-price estimates
3 | --billing-mode=search (default) | invoiced if found, else estimates
Answer 3's search has no time limit: it checks {project_id} first (usually
under 10 s, 1–2 min with many tables), then every project on its billing account
(can take many minutes; progress prints every 30 s). Tell the user this before
launching. If the wait is unacceptable, offer to switch to answer 1 (they look up
the table) or answer 2 (skip the export and use list-price estimates). Don't
suggest setting up an export to make the search faster.
If the search found an export, tell the user: "Next time, pass
--billing-table=<table> and discovery drops to about two seconds."
Step 1: Environment Setup
Check these prerequisites before Step 2; fix only what is missing:
- gcloud: if
gcloudis not installed, follow https://docs.cloud.google.com/sdk/docs/install-sdk.md.txt. - Project: run
gcloud config get project; if it isn't{project_id}(from Step 0), rungcloud config set project {project_id}. - Credentials: the scripts use Application Default Credentials. Run
gcloud auth application-default login, or setGOOGLE_APPLICATION_CREDENTIALSto a service account key. - Billing: the project must have an active billing account attached.
- APIs: don't enable APIs up front; the Logging, Monitoring, BigQuery and
Observability APIs are on by default in new projects. Only if the collector
reports an API as disabled (
SERVICE_DISABLED, "has not been used in project"), name it, ask the user, and on approval rungcloud services enable {api} --project={project_id}(tagged as described below):logging,monitoring: required; without them there is nothing to audit.bigquery: invoiced costs from the billing export.observability: resolves the project's default log scope, so log samples match what Logs Explorer shows.cloudasset,cloudbilling: only answer 3's search across the billing account.
IAM roles for the identity running the audit. The skill never grants roles: the scripts run with the user's own credentials and read only what those credentials can. When a step fails on permissions, its advisory names the step; tell the user which role below it needs:
Role | Needed for
-------------------------------------------------------------------- | ----------
roles/logging.viewer, roles/monitoring.viewer | Every audit: log buckets, sinks, log samples, volume metrics
roles/bigquery.jobUser, roles/bigquery.dataViewer (on the export dataset) | Invoiced costs from the billing export
roles/logging.viewAccessor on log views in other projects | Reading samples through a default log scope that includes them
roles/cloudasset.viewer, roles/billing.viewer (billing account) | --billing-mode=search across the billing account
roles/logging.configWriter | Only the optional Observability Analytics upgrade (Step 3B)
[ -f /tmp/finops_venv/bin/python ] || (uv venv /tmp/finops_venv && uv pip install -r scripts/requirements.txt --python /tmp/finops_venv/bin/python)
The bundled scripts tag their Google Cloud API requests. For commands you run yourself, follow Usage Attribution.
Step 2: Data Collection
Start the collector below as a background process (it takes from seconds to many minutes), then go to Step 2.5 while it runs:
/tmp/finops_venv/bin/python scripts/collect_logging_data.py \
--project-id {project_id} --billing-mode={none|explicit|search}
Optional: --billing-project, --billing-dataset, --billing-table (e.g.
billing-proj.ds.gcp_billing_export_v1_XXXX or a curated FinOps view).
Outputs: logging_usage_summary.json, monthly_details/, service_details/,
and [FINOPS ADVISORY] lines (see Step 3). The collector's output ends with a
[COLLECTION PROFILE] table of per-stage timings; if the run took longer than
the times in Step 0, or the user asks why the audit took so long, read that
table before guessing.
Step 2.5: Ask What the Report Is For
Always ask this while the collector runs (multi-select). If the user skips it, cover all five topics:
What should this report answer?
- Where is the money going — attribution by service and stream
- Is spend growing — trends and projection
- What can I safely turn off — concrete savings actions
- What are these logs actually saying — noisiest patterns and samples
- Severity and audit-log posture
The user's choices decide which outputs you read in depth and what your summary leads with; they never change what the collector gathers:
Interest | Read deeply
---------------- | -----------
Attribution | service_details/*.json, daily_services
Growth | monthly_details/*.json, mom_patterns, cost_projection
Savings actions | reduction_actions, extraneous_spend
What logs say | severity_summary.samples_by_service, granular_analytics.top_signatures (Observability Analytics only)
Severity / audit | severity_summary, withheld-rule reasons
Your narrative goes in insights/executive_summary.html (see
Executive Summary Authoring).
You don't write the savings actions: the generated report's Cost Optimizer tab
lists them from reduction_actions.
[!CAUTION] Never edit
assets/report_template.html.
Step 3: Follow the Advisories
A. Tell the User What the Cost Figures Are Based On
[!IMPORTANT] Unless figures are invoiced (
billing_metadata.invoiced), tell the user in plain language where you looked, what you found, and what the numbers are based on. Keep internals (stage numbers, mode names, HTTP codes, "quota project", "Cloud Asset Inventory") in the log andbilling_metadata.fallback_chain.
- Answer 1, the location gave no costs (
explicit_tableorexplicit_scopestep notfound): the collector never searches beyond what the user named. Tell them what was wrong, from the step'sdetail(no rows for this project, no export table there, or the query failed), that costs are list-price estimates, and offer to rerun with a corrected location or with answer 3. - Answer 2 (
user_declared_no_export): "I didn't search — you told me there's no billing export — so costs are list-price estimates, not invoiced amounts." Never call a skipped search exhausted. - Answer 3, found nothing (
billing_accountstatusnot_found): "I searched this project and your billing account and found no billing export. Costs are list-price estimates (quote each SKU's price and free tier frompricing.skus) over a trailing 30 days." Only this case supports recommending export setup. Cite the official pricing page (https://cloud.google.com/products/observability/pricing) as the source of list prices. - Answer 3, search failed on permissions (any step status
inconclusive): tell the user the lookup couldn't complete, so costs are estimates. Never tell them no billing export exists; the search didn't finish. - Answer 3, this project's table rejected (
local_projectstatusno_project_records): "This project has a billing export, but it holds no records for this project, so I searched the rest of the billing account." Then report the outcome of that wider search as above. - Partial history: months are labelled
actual_bq_billingorusage_estimated; state the exact date boundary in the executive summary.
When on list pricing, recommend export for accuracy: future audits would use the actual invoice, including discounts, over multiple months.
B. Observability Analytics
Observability Analytics was formerly called Log Analytics; the scripts' advisories and field names still use the old name.
- Disabled: present the advisory, including that upgrading the log bucket
is irreversible, then end your reply with a direct question, e.g. "Do you
want me to upgrade the
_Defaultlog bucket to Observability Analytics? This can't be undone." Telling the user how to run it themselves is not asking. Only after they approve upgrading that log bucket, run/tmp/finops_venv/bin/python scripts/enable_log_analytics.py --project-id {project_id}. The audit proceeds on Cloud Monitoring either way.
[!CAUTION] Never run
enable_log_analytics.pyorgcloud logging buckets update --enable-analyticsin the same turn you raise the advisory, or on general permission like "do whatever you need".
- < 24 hours old: the 14-day Cloud Monitoring baseline is used until samples accumulate (~1–2 hours).
- 1–13 days: cite the sample window in the report.
- ≥ 14 days: full SQL analytics.
Representative logs unavailableadvisory: samples are missing
Truncated for display — read the full file on GitHub.
Related Skills
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
143.4kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
ui-ux-pro-max
143.4kUI/UX design intelligence for web, mobile, and desktop. This skill should be used when designing, building, reviewing, or fixing interfaces, including pages, components, design systems, accessibility, interaction, responsive layout, typography, color, charts, and stack-specific UI implementation.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
