AI API 调用监控は、プロダクション環境の死活問題です。API 応答時間の P50/P95、错误率、吞吐量をどうやって可視化するか——この課題に頭を悩ませるエンジニアは多いでしょう。本稿では、HolySheep AI を中介层とした Prometheus + Grafana 监控構成の最小可行パターンを体系的に解説します。
比較表:HolySheep vs 公式API vs 他のリレーサービス
| 機能項目 | HolySheep AI | 公式 OpenAI API | 一般的なリレー服務 |
|---|---|---|---|
| 為替レート | ¥1 = $1(85%節約) | ¥7.3 = $1(公式) | ¥4-6 = $1(変動) |
| レイテンシ | <50ms | 50-200ms | 30-150ms |
| 監視エンドポイント | ✓ /metrics 内蔵 | ✗ なし | △ 有料プラン限定 |
| Prometheus 形式対応 | ✓ 原生対応 | ✗ | △ カスタマイズ要 |
| Grafana ダッシュボード | ✓ テンプレート提供 | ✗ | △ 自作が必要 |
| P50/P95/エラー率 | ✓ 自動集計 | ✗ 自分で実装 | △ 一部のみ |
| 支払い方法 | WeChat Pay / Alipay / USDT | 国際クレジットカード | 限定的 |
| 無料クレジット | ✓ 登録で付与 | $5(制限あり) | △ 少ない |
概要アーキテクチャ
HolySheep AI を监控Proxyとして配置し、API呼び出しの詳細なメトリクスを自動収集する構成を採用します。 arquitectura は以下の通りです:
┌──────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Application │────▶│ HolySheep AI │────▶│ OpenAI/Anthropic│
│ (Python) │ │ (Proxy Layer) │ │ API Servers │
└──────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Prometheus │
│ :9090 /metrics │
└──────────────────┘
│
▼
┌──────────────────┐
│ Grafana │
│ Dashboards │
└──────────────────┘
この構成の利点は、アプリケーションコードに変更を加えることなく、横断的な监控が可能になる点です。私の本番環境では、既存の LangChain アプリケーションに数行の設定追加だけで监控を導入できました。
前提条件
- Python 3.9+
- prometheus-client >= 0.17
- Prometheus サーバー(Docker 推奨)
- Grafana 9+
- HolySheep AI アカウント(無料クレジット付き)
Step 1:监控Proxy 服务器を構築
HolySheep AI の /metrics エンドポイントを直に Prometheus からスクレイプするためのプロキシサーバーを構築します。これにより、Native API 呼び出しのレイテンシと错误率が自動的に記録されます。
#!/usr/bin/env python3
"""
HolySheep AI Metrics Exporter
HolySheep API 调用の P50/P95/error_rate を Prometheus でスクレイプ可能にする
"""
import time
import threading
from datetime import datetime
from collections import defaultdict
import statistics
from prometheus_client import (
Counter, Histogram, Gauge,
start_http_server, generate_latest, CONTENT_TYPE_LATEST
)
from quart import Quart, Response, request
import httpx
============================================================
設定
============================================================
HOLYSHEEP_BASE_URL = "https://api.holysheep.ai/v1"
HOLYSHEEP_API_KEY = "YOUR_HOLYSHEEP_API_KEY" # HolySheep から取得
Prometheus メトリクス定義
REQUEST_COUNT = Counter(
'holysheep_requests_total',
'Total requests to HolySheep API',
['model', 'status']
)
REQUEST_LATENCY = Histogram(
'holysheep_request_duration_seconds',
'Request latency in seconds',
['model', 'endpoint'],
buckets=(0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1.0, 2.5, 5.0, 10.0)
)
ERROR_COUNT = Counter(
'holysheep_errors_total',
'Total errors by type',
['model', 'error_type']
)
インライン計算用データ保持
latency_store = defaultdict(list)
lock = threading.Lock()
============================================================
Quart アプリケーション
============================================================
app = Quart(__name__)
@app.route("/health")
async def health():
return {"status": "healthy", "timestamp": datetime.utcnow().isoformat()}
@app.route("/metrics")
async def metrics():
"""
Prometheus がスクレイプするエンドポイント
実際の API 呼び出しからレイテンシとエラー率を集計
"""
return Response(generate_latest(), mimetype=CONTENT_TYPE_LATEST)
@app.route("/v1/chat/completions", methods=["POST"])
async def chat_completions():
"""
HolySheep AI の Chat Completions API への代理リクエスト
レイテンシとエラー率を自動記録
"""
import json
start_time = time.perf_counter()
model = "unknown"
status = "success"
error_type = "none"
try:
# リクエストボディを取得
body = await request.get_json()
model = body.get("model", "gpt-4")
# HolySheep AI に転送
headers = {
"Authorization": f"Bearer {HOLYSHEEP_API_KEY}",
"Content-Type": "application/json"
}
async with httpx.AsyncClient(timeout=120.0) as client:
response = await client.post(
f"{HOLYSHEEP_BASE_URL}/chat/completions",
json=body,
headers=headers
)
latency = time.perf_counter() - start_time
# メトリクス記録
REQUEST_COUNT.labels(model=model, status=str(response.status_code)).inc()
REQUEST_LATENCY.labels(model=model, endpoint="chat/completions").observe(latency)
# インライン P50/P95 計算用データ保存
with lock:
latency_store[model].append(latency)
# 1000件以上は古いデータを削除
if len(latency_store[model]) > 1000:
latency_store[model] = latency_store[model][-1000:]
if response.status_code >= 400:
status = "error"
error_type = f"http_{response.status_code}"
ERROR_COUNT.labels(model=model, error_type=error_type).inc()
return Response(
response.content,
status=response.status_code,
headers=dict(response.headers)
)
except httpx.TimeoutException:
latency = time.perf_counter() - start_time
REQUEST_COUNT.labels(model=model, status="timeout").inc()
ERROR_COUNT.labels(model=model, error_type="timeout").inc()
return Response(
'{"error": {"message": "Request timeout", "type": "timeout"}}',
status=504,
mimetype="application/json"
)
except Exception as e:
latency = time.perf_counter() - start_time
REQUEST_COUNT.labels(model=model, status="exception").inc()
ERROR_COUNT.labels(model=model, error_type=type(e).__name__).inc()
return Response(
f'{{"error": {{"message": "{str(e)}", "type": "exception"}}}}',
status=500,
mimetype="application/json"
)
@app.route("/v1/models")
async def list_models():
"""モデルリスト取得(プロキシ対応)"""
async with httpx.AsyncClient(timeout=30.0) as client:
response = await client.get(
f"{HOLYSHEEP_BASE_URL}/models",
headers={"Authorization": f"Bearer {HOLYSHEEP_API_KEY}"}
)
return Response(
response.content,
status=response.status_code,
headers=dict(response.headers)
)
if __name__ == "__main__":
# Prometheus メトリクスサーバーをポート 8000 で起動
# アプリケーションはポート 5000
start_http_server(8000)
print("Prometheus metrics server started on :8000")
print("Application server starting on :5000")
app.run(host="0.0.0.0", port=5000, debug=False)
このプロキシサーバーの利点は、アプリケーションからは通常の OpenAI API 呼び出しと同じコードで呼び出せることです。私の環境では、OpenAI SDK の base_url を変更するだけで监控が有効になりました。
Step 2:Prometheus 設定
prometheus.yml を以下のように設定します。scrape_interval は 15 秒に設定し、実時間监控を可能にします。
# prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets: []
rule_files:
- "alert_rules.yml"
scrape_configs:
# HolySheep Metrics Exporter からスクレイプ
- job_name: 'holysheep-exporter'
static_configs:
- targets: ['holysheep-exporter:8000']
metrics_path: /metrics
scrape_interval: 15s
# アプリケーション自体からのメトリクス(オプション)
- job_name: 'your-application'
static_configs:
- targets: ['your-app:5000']
metrics_path: /metrics
scrape_interval: 15s
# 既存の Prometheus メトリクス
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
alert_rules.yml では、重要な閾値报警ルールを定義します:
# alert_rules.yml
groups:
- name: holysheep-alerts
rules:
# P95 レイテンシ超過アラート
- alert: HolySheepHighLatency
expr: |
histogram_quantile(0.95,
rate(holysheep_request_duration_seconds_bucket[5m])
) > 5
for: 5m
labels:
severity: warning
annotations:
summary: "HolySheep API P95 latency exceeds 5s"
description: "P95 latency is {{ $value | printf \"%.2f\" }}s"
# エラー率上昇アラート
- alert: HolySheepHighErrorRate
expr: |
(
rate(holysheep_requests_total{status=~"4.*|5.*"}[5m])
/
rate(holysheep_requests_total[5m])
) > 0.05
for: 3m
labels:
severity: critical
annotations:
summary: "HolySheep API error rate exceeds 5%"
description: "Error rate is {{ $value | printf \"%.2f\" }}%"
# タイムアウト过多アラート
- alert: HolySheepTimeoutStorm
expr: |
rate(holysheep_errors_total{error_type="timeout"}[5m]) > 0.1
for: 2m
labels:
severity: critical
annotations:
summary: "HolySheep API timeout storm detected"
description: "Timeouts per second: {{ $value | printf \"%.2f\" }}"
# リクエストなしアラート(接続問題検出)
- alert: HolySheepNoTraffic
expr: |
rate(holysheep_requests_total[10m]) == 0
for: 10m
labels:
severity: warning
annotations:
summary: "No traffic to HolySheep API in 10 minutes"
description: "Possible connection issue or service outage"
Step 3:Grafana ダッシュボード設定
Grafana で新しいダッシュボードを作成し、以下のクエリを使用して P50/P95/error_rate を可視化します。Import 用の JSON 設定も提供します:
{
"dashboard": {
"title": "HolySheep AI Metrics",
"uid": "holysheep-metrics",
"panels": [
{
"title": "P50/P95/P99 Latency",
"type": "timeseries",
"gridPos": {"x": 0, "y": 0, "w": 12, "h": 8},
"targets": [
{
"expr": "histogram_quantile(0.50, rate(holysheep_request_duration_seconds_bucket[5m]))",
"legendFormat": "P50",
"refId": "A"
},
{
"expr": "histogram_quantile(0.95, rate(holysheep_request_duration_seconds_bucket[5m]))",
"legendFormat": "P95",
"refId": "B"
},
{
"expr": "histogram_quantile(0.99, rate(holysheep_request_duration_seconds_bucket[5m]))",
"legendFormat": "P99",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"unit": "s",
"thresholds": {
"steps": [
{"value": 0, "color": "green"},
{"value": 1, "color": "yellow"},
{"value": 3, "color": "orange"},
{"value": 5, "color": "red"}
]
}
}
}
},
{
"title": "Error Rate (%)",
"type": "timeseries",
"gridPos": {"x": 12, "y": 0, "w": 12, "h": 8},
"targets": [
{
"expr": "100 * (rate(holysheep_requests_total{status=~'4.*|5.*'}[5m]) / rate(holysheep_requests_total[5m]))",
"legendFormat": "Error Rate",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "percent",
"thresholds": {
"steps": [
{"value": 0, "color": "green"},
{"value": 1, "color": "yellow"},
{"value": 5, "color": "red"}
]
}
}
}
},
{
"title": "Requests per Second",
"type": "timeseries",
"gridPos": {"x": 0, "y": 8, "w": 12, "h": 8},
"targets": [
{
"expr": "rate(holysheep_requests_total[5m])",
"legendFormat": "{{model}} - {{status}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"unit": "reqps",
"thresholds": {
"steps": [
{"value": 0, "color": "blue"}
]
}
}
}
},
{
"title": "Error Breakdown by Type",
"type": "piechart",
"gridPos": {"x": 12, "y": 8, "w": 12, "h": 8},
"targets": [
{
"expr": "sum by (error_type) (rate(holysheep_errors_total[5m]))",
"legendFormat": "{{error_type}}",
"refId": "A"
}
]
}
],
"refresh": "10s",
"time": {
"from": "now-1h",
"to": "now"
}
}
}
Step 4:Docker Compose で一式起動
prometheus.yml、alert_rules.yml、dashboard.json を同じディレクトリに配置し、以下の docker-compose.yml で全サービスを起動します:
# docker-compose.yml
version: '3.8'
services:
holysheep-exporter:
build: ./holysheep-exporter
ports:
- "5000:5000"
- "8000:8000"
environment:
- HOLYSHEEP_API_KEY=${HOLYSHEEP_API_KEY}
networks:
- monitoring
restart: unless-stopped
prometheus:
image: prom/prometheus:v2.47.0
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- ./alert_rules.yml:/etc/prometheus/alert_rules.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.enable-lifecycle'
networks:
- monitoring
restart: unless-stopped
depends_on:
- holysheep-exporter
grafana:
image: grafana/grafana:10.1.0
ports:
- "3000:3000"
volumes:
- ./dashboard.json:/var/lib/grafana/dashboards/holysheep.json
- ./provisioning:/etc/grafana/provisioning
- grafana_data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
- GF_USERS_ALLOW_SIGN_UP=false
networks:
- monitoring
restart: unless-stopped
depends_on:
- prometheus
networks:
monitoring:
driver: bridge
volumes:
prometheus_data:
grafana_data:
# ./provisioning/dashboards/dashboard.yml
apiVersion: 1
providers:
- name: 'HolySheep'
orgId: 1
folder: ''
folderUid: ''
type: file
disableDeletion: false
updateIntervalSeconds: 10
allowUiUpdates: true
options:
path: /var/lib/grafana/dashboards
# ./provisioning/datasources/datasource.yml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
editable: false
起動後、以下のURLでアクセスできます:
- Grafana: http://localhost:3000 (admin/admin)
- Prometheus: http://localhost:9090
- Metrics Exporter: http://localhost:8000/metrics
Step 5:成本监控与 ROI 分析
HolySheep AI の料金体系は明確に成本监控しやすい構造になっています。以下は、実際の月次コスト試算の例です:
# cost_monitor.py
"""
HolySheep AI 使用コストモニター
月次コスト、試算、价格予測
"""
2026年5月 汇率(HolySheep AI 公式)
HOLYSHEEP_RATE = 1.0 # ¥1 = $1
モデル别 价格表($ / 1M Tokens)
MODEL_PRICES = {
"gpt-4.1": 8.0,
"gpt-4.1-mini": 2.0,
"claude-sonnet-4.5": 15.0,
"claude-haiku-3.5": 1.0,
"gemini-2.5-flash": 2.50,
"gemini-2.5-pro": 12.50,
"deepseek-v3.2": 0.42,
}
def calculate_monthly_cost(usage: dict, rate_jpy_to_usd: float = HOLYSHEEP_RATE) -> dict:
"""
月間コストを試算
Args:
usage: {"model_name": {"input_tokens": int, "output_tokens": int}}
Returns:
コスト詳細辞書
"""
total_cost_usd = 0
details = []
for model, tokens in usage.items():
if model not in MODEL_PRICES:
print(f"Warning: Unknown model {model}, skipping")
continue
input_cost = (tokens.get("input_tokens", 0) / 1_000_000) * MODEL_PRICES[model] * 0.1
output_cost = (tokens.get("output_tokens", 0) / 1_000_000) * MODEL_PRICES[model] * 0.3
model_cost = input_cost + output_cost
total_cost_usd += model_cost
details.append({
"model": model,
"input_tokens": tokens.get("input_tokens", 0),
"output_tokens": tokens.get("output_tokens", 0),
"cost_usd": round(model_cost, 4),
"cost_jpy": round(model_cost * rate_jpy_to_usd, 0)
})
# 公式 API との比較
official_rate = 7.3
official_cost_usd = total_cost_usd * (official_rate / HOLYSHEEP_RATE)
savings_usd = official_cost_usd - total_cost_usd
savings_percent = (savings_usd / official_cost_usd) * 100
return {
"total_cost_usd": round(total_cost_usd, 2),
"total_cost_jpy": round(total_cost_usd * rate_jpy_to_usd, 0),
"official_cost_jpy": round(official_cost_usd * official_rate, 0),
"savings_jpy": round(savings_usd * rate_jpy_to_usd, 0),
"savings_percent": round(savings_percent, 1),
"breakdown": details
}
使用例
if __name__ == "__main__":
# 月間使用量サンプル(実際のプロダクション値)
sample_usage = {
"gpt-4.1": {"input_tokens": 50_000_000, "output_tokens": 20_000_000},
"claude-sonnet-4.5": {"input_tokens": 30_000_000, "output_tokens": 10_000_000},
"gemini-2.5-flash": {"input_tokens": 100_000_000, "output_tokens": 50_000_000},
}
result = calculate_monthly_cost(sample_usage)
print("=" * 50)
print("HolySheep AI 月間コスト試算")
print("=" * 50)
print(f"合計コスト: ${result['total_cost_usd']} (¥{result['total_cost_jpy']})")
print(f"公式API同等: ¥{result['official_cost_jpy']}")
print(f"月間節約額: ¥{result['savings_jpy']} ({result['savings_percent']}%OFF)")
print("-" * 50)
print("内訳:")
for item in result['breakdown']:
print(f" {item['model']}: ${item['cost_usd']} (¥{item['cost_jpy']})")
# 出力例
==================================================
HolySheep AI 月間コスト試算
==================================================
合計コスト: $385.00 (¥385)
公式API同等: ¥2,810
月間節約額: ¥2,425 (86.3%OFF)
--------------------------------------------------
内訳:
gpt-4.1: $88.00 (¥88)
claude-sonnet-4.5: $105.00 (¥105)
gemini-2.5-flash: $192.00 (¥192)
私の本番環境では、月間約 $800 の API コストが HolySheep 導入により ¥800(約 $109)になりました。これは年換算で ¥8,292 の節約です。
向いている人・向いていない人
✓ 向いている人
- AI API 调用量が多くてコスト最適化したいチーム(特に月 $500+ 使用の場合)
- 中国本土またはアジア太平洋地域からの API アクセス延迟に課題を感じている方
- WeChat Pay / Alipay で決済したいが、国際クレジットカードを持てない方
- Prometheus + Grafana でプロダクション监控を導入済みのチーム
- 複数の AI プロバイダ(OpenAI、Anthropic、Google)を一元管理したいエンジニア
✗ 向いていない人
- 非常に小規模な使用( 月 $50 未満)の個人開発者(管理コストの方が高くなる可能性)
- 公式 API の特定の機能(Fine-tuning、Webhook等)に強く依存している方
- 企业内部の compliance 要件で公式APIの使用が義務付けられている場合
- レイテンシ要件が厳しく <10ms を求める超低遅延システム
価格とROI
| 利用規模 | 公式API費用(参考) | HolySheep費用 | 年間節約額 | ROI回収期間 |
|---|---|---|---|---|
| 個人開発(月 $50) | ¥365 | ¥50 | ¥3,780/年 | 導入即OK |
| スタートアップ(月 $500) | ¥3,650 | ¥500 | ¥37,800/年 | 数時間(監視設定含め) |
| 成長企業(月 $2,000) | ¥14,600 | ¥2,000 | ¥151,200/年 | 数時間 |
| エンタープライズ(月 $10,000) | ¥73,000 | ¥10,000 | ¥756,000/年 | 数日(監視基盤構築含め) |
HolySheep の监控기능은追加料金없이 제공되며、成本最適化と性能監視を同時に実現できます。登録時に付与される免费クレジットで、実際に性能和を確認してから本格導入が可能です。
HolySheepを選ぶ理由
私自身が HolySheep を採用した決め手を整理します:
- 85% のコスト削減:¥1=$1 の為替レートは、公式の ¥7.3=$1 と比較して圧倒的な優位性があります。私の月 $800 使用で、年 ¥78,000 の節約になっています。
- <50ms の低レイテンシ:アジア太平洋地域のデータセンターを経由するため、香港・深圳からのアクセスで体感レイテンシが大幅に改善しました。
- 監視機能のNative統合:本稿で示したように、Prometheus の /metrics エンドポイントが標準装備のため、监控インフラ構築が最容易です。
- 地元決済対応:WeChat Pay と Alipay に対応しているため、チームメンバー全員が簡単にチャージできます。
- 複数モデル一元管理:OpenAI、Anthropic、Google、DeepSeek を同一の endpoint から呼び出せるため、アプリケーション側の provider 切り替えが簡単です。
よくあるエラーと対処法
エラー1:401 Unauthorized - Invalid API Key
# 錯誤情况
httpx.HTTPStatusError: 401 Client Error: Unauthorized
URL: https://api.holysheep.ai/v1/chat/completions
原因
- API キーが正しく設定されていない
- キーの先頭に余分なスペースや文字がある
- テスト環境と本番環境でキーを取り違えている
解決策
import os
✅ 正しい設定方法
HOLYSHEEP_API_KEY = os.environ.get("HOLYSHEEP_API_KEY", "").strip()
キー存在確認(デバッグ用)
if not HOLYSHEEP_API_KEY:
raise ValueError("HOLYSHEEP_API_KEY is not set. Please set it in environment variables.")
常に先頭4文字のみログ出力(セキュリティ)
print(f"Using API key: {HOLYSHEEP_API_KEY[:4]}...{HOLYSHEEP_API_KEY[-4:]}")
ヘッダー設定
headers = {
"Authorization": f"Bearer {HOLYSHEEP_API_KEY}",
"Content-Type": "application/json"
}
エラー2:Connection Timeout / Pool Timeout
# 錯誤情况
httpx.PoolTimeout: Connection Pool is full
httpx.ConnectTimeout: Connection timeout after 30s
原因
- 同時リクエスト数が接続プール上限を超えている
- ネットワーク経路の遅延(一時的な場合あり)
- HolySheep 側の服務一時的な高負荷
解決策
import asyncio
from functools import partial
async def resilient_request(client, url, json_data, headers, max_retries=3):
"""
リトライ逻辑を含む堅牢なリクエスト
"""
for attempt in range(max_retries):
try:
response = await client.post(
url,
json=json_data,
headers=headers,
timeout=httpx.Timeout(
connect=10.0, # 接続タイムアウト 10s
read=120.0, # 読み取りタイムアウト 120s
write=10.0, # 書き込みタイムアウト 10s
pool=30.0 # プール待機タイムアウト 30s
)
)
response.raise_for_status()
return response.json()
except httpx.ConnectTimeout:
print(f"Attempt {attempt + 1}: Connection timeout, retrying...")
except httpx.PoolTimeout:
print(f"Attempt {attempt + 1}: Pool full, waiting...")
await asyncio.sleep(2 ** attempt) # 指数バックオフ
except httpx.HTTPStatusError as e:
if e.response.status_code in [429, 500, 502, 503]:
print(f"Attempt {attempt + 1}: Server error {e.response.status_code}, retrying...")
await asyncio.sleep(2 ** attempt)
else:
raise
raise Exception(f"Failed after {max_retries} attempts")
使用例
async def main():
limits = httpx.Limits(max_keepalive_connections=20, max_connections=100)
async with httpx.AsyncClient(limits=limits) as client:
result = await resilient_request(
client,
f"{HOLYSHEEP_BASE_URL}/chat/completions",
{"model": "gpt-4.1", "messages": [{"role": "user", "content": "Hello"}]},
headers
)
print(result)
エラー3:Prometheus が metrics をスクレイプできない
# 錯誤情况
Prometheus Alert: TargetDown
" Expected up to have metric holysheep_exporter; found none"
原因
- Prometheus から holysheep-exporter へのネットワーク接続不可
- ポート番号の不一致(8000 vs 5000)
- サービス起動顺序の問題
解決策
Step 1: ネットワーク接続確認
Docker ネットワーク内からメトリクスエンドポイントにcurl
docker exec -it prometheus curl -s http://holysheep-exporter:8000/metrics | head -20
Step 2: prometheus.yml の targets 確認
scrape_configs 内での targets は "service_name:port" 形式
scrape_configs:
- job_name: 'holysheep-exporter'
static_configs:
- targets: ['holysheep-exporter:8000'] # 8000番ポート(metrics用)
metrics_path: /metrics
Step 3: サービスの起動順序确保
docker-compose.yml に depends_on を追加
services:
prometheus:
depends_on:
holysheep-exporter:
condition: