ふくふくHukuhuku Inc.
EP.08Eng Dash 10分公開: 2026-05-10

配賦:開発者別・プロジェクト別・チーム別の費用を 1 表に統合

LLM、CI/CD、クラウド、DWH のコストを個人やチームに割り振る配賦ロジック。タグ・API キー・user_email を共通の identity に紐付ける名寄せ実装と、月次レポートの自動生成。

#FinOps#配賦#コスト管理
CO📔 Google Colab で開く(上から順にセルを実行)
シェア

EP.03〜07 で集めた / CI/CD / クラウド / のコストを、個人・チーム・プロジェクト に配賦して 1 表に統合します。これで「Aさん今月 $1,200、ほぼ 」「B チーム今月 $5,800、半分が BigQuery」が見える。

識別子の名寄せ

プロバイダ識別子person への紐付け
Anthropicapi_key_idkey 名規約 (`tanaka-cli`) → 個人
OpenAIapi_key_id同上
Actionsactor (PR 作者)GitHub login → 個人
/ tag (Owner) / labelsメールアドレス → 個人
user_emailそのまま
user_nameID → 個人
identity マッピングの中央管理
YAML
# people.ymlpeople:  tanaka:    name: 田中    team: platform    emails: [tanaka@hukuhuku.co.jp]    github_login: tanaka-jp    api_keys:      anthropic: [tanaka-cli, tanaka-cursor]      openai: [tanaka-py]    snowflake_users: [TANAKA]

BigQuery 統合テーブルの設計

engineering_costs 統合テーブル
SQL
CREATE TABLE engineering_costs (  date DATE NOT NULL,  source STRING,         -- 'anthropic' | 'openai' | 'github_actions' | 'aws' | 'gcp' | 'bigquery' | 'snowflake'  category STRING,       -- 'llm' | 'cicd' | 'cloud' | 'dwh'  person_id STRING,      -- 個人ID (people.yml の key)  team STRING,  project STRING,  cost_usd FLOAT64,  detail STRUCT<    request_count INT64,    tokens INT64,    seconds FLOAT64  >)PARTITION BY dateCLUSTER BY person_id, team;

月次レポートの自動生成

Slack に月初送信
Python
import pandas as pdfrom google.cloud import bigquery
bq = bigquery.Client()df = bq.query("""SELECT person_id, team, category, SUM(cost_usd) AS costFROM engineering_costsWHERE date >= DATE_TRUNC(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH)  AND date < DATE_TRUNC(CURRENT_DATE(), MONTH)GROUP BY 1, 2, 3""").to_dataframe()
# 個人別 TOP 10top = df.groupby("person_id")["cost"].sum().sort_values(ascending=False).head(10)
message = "📊 先月の Engineering コスト TOP 10:\n"for person, cost in top.items():    message += f"  {person}: ${cost:,.0f}\n"
post_to_slack(message)

ダッシュ設計

  • 個人別月次コスト: 累計、月次、カテゴリ内訳
  • チーム別月次コスト: 予算 vs 実績
  • プロジェクト別: 受託案件のチャージバック計算
  • 急増アラート: 個人レベルで前月比 +200% などをトリガー
  • 未配賦コスト: タグ無し・key 未マッピングを毎週 0 化目標

次の話

EP.09 では DORA 4 metrics + 活用度メトリクスを扱います。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp