私は昨年から複数の LLM API を本番環境で運用してきましたが、月々のコスト管理に頭を悩ませていました。特に GPT-4.1、Claude Sonnet 4.5、Gemini 2.5 Flash、DeepSeek V3.2 を併用していると、月末の請求書を見て「どのモデルにいくら払ったのか」がブラックボックス化してしまうのです。本記事では、今すぐ登録 して利用できる HolySheep 公式の hermes-agentELK スタック を組み合わせて、API コール単位でモデル/プロバイダー別のコストを可視化し、異常値を自動アラートする仕組みを、API 初心者の方でも迷わないようゼロから解説します。専門用語はできるかぎり噛み砕き、画面で見るべきポイントもテキストで補足します。

ELK スタックとは?

ELK は世界中で利用されているログ分析のデファクトスタンダードで、以下の 3 つのオープンソースソフトウェアを組み合わせたものです。

これらを組み合わせると、API コール履歴を「検索できる」「集計できる」「グラフ化できる」状態に変えられます。HolySheep の hermes-agent は、この ELK スタックに最適化されたログ形式を直接出力できる公式ツールで、JSON 形式で構造化ログを吐くため、Logstash の設定が驚くほどシンプルになります。

事前準備:必要なものリスト

本記事では、以下の環境があることを前提とします。未インストールでも手順を追えば 30 分程度で揃います。

ステップ 1:HolySheep アカウントの作成

まず HolySheep の登録ページ にアクセスします。画面の「Sign Up」ボタン(赤いボタンが目印)をクリックすると、登録フォームが表示されます。

ステップ 2:API キーの取得

ログイン後、画面左のサイドバーから「API Keys」を開きます。「+ Create New Key」ボタンを押すと、ダイアログが表示されます。名前は hermes-agent-local など自分でわかる名前を付け、Permissions は chatlogs:write にチェックを入れます。「Generate」ボタンを押すと、hs-xxxxxxxxxxxxxxxx 形式のキーが 1 回だけ表示されます。必ず安全な場所にコピーしてください(再表示はできません)。

環境変数として保存します。

ステップ 3:ELK スタックをローカルで起動する

任意の作業ディレクトリに docker-compose.yml という名前で以下のファイルを作成します。

version: "3.8"
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.13.4
    container_name: holysheep-es
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
      - ES_JAVA_OPTS=-Xms1g -Xmx1g
      - cluster.routing.allocation.disk.threshold_enabled=false
    ports:
      - "9200:9200"
    healthcheck:
      test: ["CMD-SHELL", "curl -s http://localhost:9200/_cluster/health | grep -q 'green\\|yellow'"]
      interval: 10s
      timeout: 5s
      retries: 12

  logstash:
    image: docker.elastic.co/logstash/logstash:8.13.4
    container_name: holysheep-ls
    volumes:
      - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro
    ports:
      - "5044:5044"
    depends_on:
      elasticsearch:
        condition: service_healthy

  kibana:
    image: docker.elastic.co/kibana/kibana:8.13.4
    container_name: holysheep-kb
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
    ports:
      - "5601:5601"
    depends_on:
      elasticsearch:
        condition: service_healthy

  # hermes-agent 用のメトリクス集計エンドポイント(後述)
  watcher:
    image: python:3.11-slim
    container_name: holysheep-watcher
    working_dir: /app
    volumes:
      - ./watcher.py:/app/watcher.py:ro
    command: ["python", "watcher.py"]
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
      - HOLYSHEEP_API_BASE=https://api.holysheep.ai/v1
      - HOLYSHEEP_API_KEY=${HOLYSHEEP_API_KEY}
    depends_on:
      elasticsearch:
        condition: service_healthy
    restart: unless-stopped

同じディレクトリに