Ideogram Observability
Overview
Monitor Ideogram AI image generation for latency, credit consumption, and output quality. Key metrics include generation time (typically 5-15 seconds per image depending on model and resolution), credit cost per generation (varies by model version and quality setting), generation success rate, and prompt safety filter rejection rate.
Prerequisites
-
Ideogram API account with active credits
-
Metrics backend for tracking generation data
-
Webhook or polling mechanism for async generation status
Instructions
Step 1: Instrument Image Generation Calls
async function trackedGeneration(prompt: string, options: any) { const start = performance.now(); try { const result = await ideogram.generate({ image_request: { prompt, ...options } }); const duration = performance.now() - start; emitHistogram('ideogram_generation_duration_ms', duration, { model: options.model || 'V_2' }); emitCounter('ideogram_generations_total', 1, { model: options.model || 'V_2', status: 'success' }); emitCounter('ideogram_credits_used', result.credits_consumed || 1, { model: options.model || 'V_2' }); return result; } catch (err: any) { emitCounter('ideogram_generations_total', 1, { status: 'error', reason: err.code || 'unknown' }); throw err; } }
Step 2: Track Prompt Safety Rejections
// Monitor how often prompts are rejected by the safety filter
function handleSafetyRejection(prompt: string, reason: string) {
emitCounter('ideogram_safety_rejections_total', 1, { reason });
console.warn(Prompt rejected: ${reason}, { prompt: prompt.substring(0, 50) });
}
Step 3: Monitor Credit Balance
set -euo pipefail
Check remaining credits and burn rate
curl -s https://api.ideogram.ai/v1/usage
-H "Api-Key: $IDEOGRAM_API_KEY" |
jq '{credits_remaining, credits_used_today, credits_used_month, daily_avg: (.credits_used_month / 30), days_remaining: (.credits_remaining / (.credits_used_month / 30 + 0.01))}'
Step 4: Set Up Alerts
groups:
- name: ideogram
rules:
- alert: IdeogramGenerationSlow expr: histogram_quantile(0.95, rate(ideogram_generation_duration_ms_bucket[30m])) > 20000 # 20000 = configured value annotations: { summary: "Ideogram P95 generation time exceeds 20 seconds" }
- alert: IdeogramCreditBurnHigh expr: rate(ideogram_credits_used[1h]) > 100 annotations: { summary: "Ideogram burning >100 credits/hour" }
- alert: IdeogramCreditsLow expr: ideogram_credits_remaining < 200 # HTTP 200 OK annotations: { summary: "Ideogram credits below 200 -- purchase more" } # HTTP 200 OK
- alert: IdeogramHighRejectionRate expr: rate(ideogram_safety_rejections_total[1h]) / rate(ideogram_generations_total[1h]) > 0.1 annotations: { summary: "Ideogram safety rejection rate exceeds 10%" }
Step 5: Dashboard Panels
Track: generation volume by model version, latency distribution, credit consumption trend, safety rejection rate, generation success/failure ratio, and average credits per generation. Compare V_2 vs V_2_TURBO for cost-vs-speed tradeoffs.
Error Handling
Issue Cause Solution
Generation timeout Complex prompt or high-res request Reduce resolution or simplify prompt
402 credit error Credits exhausted Purchase more credits on ideogram.ai
Safety filter rejection Prompt contains restricted content Rephrase prompt, avoid brand names
429 rate limited Too many concurrent generations Queue requests with concurrency limit
Examples
Basic usage: Apply ideogram observability to a standard project setup with default configuration options.
Advanced scenario: Customize ideogram observability for production environments with multiple constraints and team-specific requirements.
Output
-
Configuration files or code changes applied to the project
-
Validation report confirming correct implementation
-
Summary of changes made and their rationale
Resources
-
Official monitoring documentation
-
Community best practices and patterns
-
Related skills in this plugin pack