This prompt is designed for platform teams and SREs who need a structured, repeatable method to audit whether their observability signals—metrics, traces, and logs—collectively support effective incident diagnosis. The primary job-to-be-done is to move beyond ad-hoc, manual reviews of telemetry data and produce a multi-dimensional quality score that is defensible and comparable over time. The ideal user is an engineer responsible for service reliability who can provide a representative sample of telemetry data from a specific service or request path. Required context includes the raw telemetry payloads and the expected topology or service map, so the model can identify gaps in correlation and attribute completeness.
Prompt
Observability Signal Quality Rubric Prompt

When to Use This Prompt
A practical guide for platform teams and SREs to determine when the Observability Signal Quality Rubric Prompt is the right tool for auditing instrumentation health.
Use this prompt when you need a pre-production readiness review for a new or refactored service, a post-incident gap analysis to determine why diagnosis was slow, or an ongoing observability health check as part of a regular operational audit. It is particularly effective when run against a controlled failure injection test, where the expected signals are known and the model can compare actual outputs against a defined standard. The output includes a red-flag checklist for common instrumentation gaps, such as missing correlation IDs, insufficient cardinality on key metrics, or broken parent-child relationships in traces. This makes the prompt suitable for generating actionable work items for engineering teams, not just a vague quality score.
Do not use this prompt when you need real-time alerting or automated gating in a CI/CD pipeline without human review. The rubric provides a qualitative assessment that requires engineering judgment to interpret and prioritize, especially when scoring trade-offs between cardinality and cost. It is also not a replacement for a full observability vendor assessment or a performance profiling tool; it focuses on the semantic completeness and correlation of signals, not on storage efficiency or query performance. For high-risk production changes, always have a human SRE review the rubric output and the raw data before accepting the score as a release gate.
Use Case Fit
This rubric is designed for platform teams who need a repeatable, multi-dimensional quality score for their observability signals. It works best when applied to a specific service or failure scenario, not an entire enterprise at once.
Good Fit: Post-Incident Review
Use when: An incident retrospective reveals that diagnosis took too long due to missing or conflicting signals. Guardrail: Run the rubric against the specific time window of the incident to generate a prioritized instrumentation gap list for the next sprint.
Good Fit: Pre-Launch Service Review
Use when: A new service is about to enter production and you need to validate its observability before it takes live traffic. Guardrail: Gate the launch on a minimum aggregate score, with explicit waivers for any accepted risks documented in the runbook.
Bad Fit: Real-Time Alerting
Avoid when: You need a system to detect and page on active signal quality degradation. Guardrail: This prompt produces a static analysis report for human review. For runtime enforcement, implement an OTel collector processor that drops or flags spans missing required attributes.
Bad Fit: Blanket Organizational Mandate
Avoid when: Leadership demands a single score for all 200 services without context. Guardrail: The rubric requires service-specific topology context. Apply it per critical path service first, then generalize patterns, rather than forcing a meaningless aggregate number.
Required Input: Service Topology Map
Risk: Without an expected topology, the rubric cannot detect missing spans or broken parent-child relationships. Guardrail: Provide a dependency map or a trace from a known-good request as the baseline for the completeness dimension of the score.
Operational Risk: Alert Fatigue from Cardinality
Risk: The rubric may flag high-cardinality attributes as a quality risk, but developers might ignore the warning if it's not tied to a concrete cost or performance impact. Guardrail: Pair the cardinality check with a query to your observability backend showing the actual increase in time-series count or storage cost.
Copy-Ready Prompt Template
A reusable prompt template for evaluating observability signal quality across metrics, traces, and logs using a multi-dimensional rubric.
This prompt template provides a structured framework for platform teams to assess whether their observability signals—metrics, traces, and logs—collectively support effective incident diagnosis. It produces a multi-dimensional quality score covering cardinality, sampling adequacy, attribute completeness, and cross-signal correlation. The template uses square-bracket placeholders that you replace with your specific service context, instrumentation standards, and evaluation criteria before sending to the model. This prompt is designed to be used as part of a regular observability health audit or as a gate in your CI/CD pipeline for new service deployments.
textYou are an observability signal quality auditor. Your task is to evaluate the observability signals for [SERVICE_NAME] against a defined rubric and produce a structured quality assessment. ## INPUT ### Service Context - Service Name: [SERVICE_NAME] - Service Type: [SERVICE_TYPE, e.g., HTTP API, gRPC, Event-Driven, Batch] - Criticality Tier: [TIER, e.g., Tier-1 Customer-Facing, Tier-2 Internal, Tier-3 Background] - Expected Request Path: [REQUEST_PATH_DESCRIPTION] - Upstream Dependencies: [UPSTREAM_SERVICES_LIST] - Downstream Consumers: [DOWNSTREAM_SERVICES_LIST] ### Observability Data #### Metrics Sample [METRICS_SAMPLE, e.g., a snippet of Prometheus metrics output or Datadog metric summaries] #### Trace Sample [TRACE_SAMPLE, e.g., a representative distributed trace in JSON or visual format] #### Log Sample [LOG_SAMPLE, e.g., a set of log lines from a failure scenario] ### Instrumentation Standards [INSTRUMENTATION_STANDARDS, e.g., your team's OpenTelemetry attribute conventions, required log fields, alert thresholds] ## EVALUATION RUBRIC Score each dimension from 1 (critical gap) to 5 (excellent). Provide specific evidence and a recommendation for each score below 4. ### 1. Cardinality Management (1-5) - Are metric label cardinalities bounded and documented? - Are high-cardinality attributes (e.g., user IDs, session IDs) excluded from metric labels and placed in trace attributes or log context instead? - Is there evidence of cardinality explosion risks in the provided metrics sample? ### 2. Sampling Adequacy (1-5) - Is the trace sampling strategy documented and appropriate for the service's criticality? - Are error traces and high-latency traces retained regardless of sampling rate? - Is the sampling decision recorded as a span attribute for transparency? ### 3. Attribute Completeness (1-5) - Do spans include required resource attributes per [INSTRUMENTATION_STANDARDS]? - Are correlation IDs, request IDs, or trace IDs present in all log lines? - Do logs include service name, environment, and version identifiers? ### 4. Cross-Signal Correlation (1-5) - Can you navigate from a metric anomaly to relevant traces and logs without manual identifier reconstruction? - Are exemplars attached to metrics where appropriate? - Do error responses include a trace ID that appears in logs? ### 5. Failure Mode Coverage (1-5) - Do the provided log samples capture upstream dependency failures with sufficient context? - Are timeout, circuit-breaker, and rate-limit events logged with diagnostic detail? - Do health check endpoints return actionable error bodies? ### 6. Semantic Convention Compliance (1-5) - Do span names, attribute keys, and metric names follow [INSTRUMENTATION_STANDARDS] or OpenTelemetry semantic conventions? - Are HTTP/gRPC/DB client calls instrumented with standard attributes? ## OUTPUT SCHEMA Return a JSON object with this exact structure: { "service_name": "string", "evaluation_timestamp": "ISO 8601", "overall_score": number (average of dimension scores, rounded to 1 decimal), "dimensions": [ { "name": "string", "score": number (1-5), "evidence": ["string"], "gaps": ["string"], "recommendation": "string" } ], "red_flags": [ { "severity": "critical" | "high" | "medium", "finding": "string", "impact": "string", "remediation": "string" } ], "improvement_priority": [ { "rank": number, "action": "string", "effort_estimate": "low" | "medium" | "high", "expected_impact": "string" } ] } ## CONSTRAINTS - Base all scores on the provided evidence. Do not assume instrumentation exists unless visible in the samples. - If a dimension cannot be evaluated due to missing data, score it 1 and note "insufficient data" as the primary gap. - Flag any PII or secrets visible in the log or trace samples as a critical red flag. - Prioritize recommendations by impact on incident diagnosis speed.
To adapt this template for your environment, replace each square-bracket placeholder with concrete data from your service. The [INSTRUMENTATION_STANDARDS] placeholder should reference your team's actual conventions—if you don't have documented standards, use the OpenTelemetry semantic conventions as a baseline and note the gap. For the observability data samples, provide representative data from a recent failure scenario rather than happy-path traffic, as failure mode coverage is a key dimension. If you're evaluating multiple services, run this prompt once per service rather than batching, as the context window can become saturated and scores may bleed across services. The output JSON is designed to be ingested by a dashboard or tracking system—store results over time to measure observability improvement trends.
Prompt Variables
Provide these inputs with high fidelity to get a useful observability signal quality evaluation. Each variable directly controls a dimension of the rubric output.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[SIGNAL_ARTIFACTS] | Raw metrics, traces, and logs to evaluate | JSON blob containing Prometheus metric family, OTLP trace export, and structured log batch | Must be valid JSON. Null not allowed. Minimum 1 signal type present. Schema check: contains at least one of metrics, traces, or logs keys. |
[SERVICE_TOPOLOGY] | Expected service dependency graph for correlation checks | {"services": ["api-gateway", "orders", "payments"], "edges": [{"from": "api-gateway", "to": "orders"}]} | Must be valid JSON with services array and edges array. Null allowed if topology unknown. Schema check: edges reference valid service names. |
[INCIDENT_CONTEXT] | Description of the failure scenario being diagnosed | Checkout timeout during peak load; payment service returning 504 after 2s | Free text. Null allowed if evaluating general signal quality. Length check: max 2000 chars. No schema validation. |
[TEAM_STANDARDS] | Observability conventions the team has adopted | Require correlation_id on all spans; error logs must include stack trace; metrics must have service label | Free text or structured policy object. Null allowed. If provided, each standard becomes a pass/fail check in the rubric. |
[SAMPLING_CONFIG] | Current sampling rules applied to traces | {"strategy": "probabilistic", "rate": 0.1, "rules": [{"service": "orders", "rate": 1.0}]} | Must be valid JSON if provided. Null allowed. Schema check: strategy field required if object present, rate must be between 0 and 1. |
[RETENTION_WINDOW] | Log and metric retention period for context on data completeness | 30 days for logs, 15 days for metrics | Free text or structured duration object. Null allowed. Used to flag whether evaluated signals fall within retention. |
[ALERT_DEFINITIONS] | Active alert rules to cross-check signal coverage | High latency alert on orders service: p95 > 500ms for 5m; Error rate alert: > 1% for 3m | Free text or structured alert rule array. Null allowed. If provided, rubric checks whether signals support each alert condition. |
Implementation Harness Notes
How to wire the Observability Signal Quality Rubric Prompt into an automated audit pipeline with validation, retries, and human review gates.
This prompt is designed to be called programmatically as part of a scheduled or event-driven observability audit. The typical integration point is a CI/CD pipeline, a periodic SRE audit job, or a post-incident review workflow. The application layer is responsible for gathering the required inputs—telemetry samples, service topology metadata, and team instrumentation standards—and assembling them into the [CONTEXT] block before invoking the model. The prompt itself should be treated as a stateless function: it receives a complete evidence packet and returns a structured quality assessment. Do not rely on the model to fetch live telemetry; all data must be pre-collected and provided in the prompt.
Validation and Output Contract: The prompt instructs the model to return a JSON object matching a specific schema. Your harness must validate this output before accepting it. At minimum, confirm that: (1) the response is valid JSON, (2) all required top-level keys (overall_score, dimension_scores, red_flags, recommendations) are present, (3) overall_score is a number between 0 and 100, (4) each entry in red_flags contains a severity field with a valid enum value (critical, high, medium, low), and (5) dimension_scores includes all expected dimensions (cardinality, sampling, attribute_completeness, correlation). If validation fails, retry with the same prompt once. If it fails again, log the raw output and escalate for human review rather than silently accepting a malformed assessment.
Model Choice and Tool Use: This is a structured reasoning task that benefits from models with strong instruction-following and JSON output capabilities. Use a model that supports strict JSON mode or structured output constraints (e.g., GPT-4o with response_format, Claude 3.5 Sonnet with tool use for the output schema). The prompt does not require external tool calls, RAG retrieval, or function calling during execution—all evidence is provided inline. However, you may choose to wrap this prompt in a tool definition where the output schema is enforced by the platform rather than by prompt instructions alone. This reduces format drift risk.
Logging and Audit Trail: Every invocation should log: the prompt version hash, the model and temperature used, the input context sources (with timestamps), the raw model response, the validation result, and the final accepted or rejected output. This audit trail is critical because the rubric's recommendations may drive instrumentation changes or incident review actions. Store these records in a queryable format so that SRE teams can trace any quality score back to the evidence that produced it.
Human Review Gate: For any audit where the overall_score falls below a defined threshold (e.g., 60) or where critical severity red flags are present, route the output to a human reviewer before publishing results or opening automated tickets. The prompt's red-flag checklist is designed to catch systemic gaps, but remediation decisions—such as increasing sampling rates or adding span attributes—often require human judgment about cost, performance impact, and team priorities. The harness should support a review queue where an SRE can approve, amend, or reject the assessment before it drives downstream actions.
Expected Output Contract
Use this contract to build a post-processing validator for the Observability Signal Quality Rubric Prompt. Each field maps to a JSON key in the expected output. Validation rules are actionable checks you can implement in code.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
overall_quality_score | number (0.0-100.0) | Must be a float between 0 and 100 inclusive. Parse check: typeof score === 'number' && score >= 0 && score <= 100. | |
dimension_scores | object | Must contain exactly four keys: 'cardinality', 'sampling_adequacy', 'attribute_completeness', 'correlation'. Each value must be a number 0.0-100.0. Schema check: Object.keys(dimension_scores).length === 4. | |
dimension_scores.cardinality | number (0.0-100.0) | Must be a float between 0 and 100 inclusive. Represents metric cardinality health. Null not allowed. | |
dimension_scores.sampling_adequacy | number (0.0-100.0) | Must be a float between 0 and 100 inclusive. Represents trace sampling rate adequacy. Null not allowed. | |
dimension_scores.attribute_completeness | number (0.0-100.0) | Must be a float between 0 and 100 inclusive. Represents span and metric attribute fill rate. Null not allowed. | |
dimension_scores.correlation | number (0.0-100.0) | Must be a float between 0 and 100 inclusive. Represents cross-signal correlation ID propagation success. Null not allowed. | |
red_flags | array of strings | Must be an array. Each element must be a non-empty string. Empty array is valid (no red flags). Schema check: Array.isArray(red_flags) && red_flags.every(f => typeof f === 'string' && f.length > 0). | |
red_flag_count | integer | Must equal red_flags.length. Consistency check: red_flag_count === red_flags.length. If mismatch, reject output and retry. |
Common Failure Modes
What breaks first when using the Observability Signal Quality Rubric Prompt in production and how to guard against it.
Hallucinated Cardinality Estimates
What to watch: The model invents specific cardinality counts or sampling rates without source data. It may state 'span count is 10,000' when only a trace sample was provided. Guardrail: Require the prompt to output evidence_source for every metric and flag any quantitative claim without a direct log or trace excerpt as confidence: low.
Overfitting to a Single Trace
What to watch: The rubric generalizes a systemic gap from one anomalous trace. A single missing attribute is reported as a platform-wide instrumentation failure. Guardrail: Add a sample_size constraint to the prompt. If fewer than N traces are provided, the output must include a limited_sample_warning and downgrade severity for platform-wide claims.
Ignoring Sampling Configuration
What to watch: The model flags missing spans or attributes that are intentionally dropped by the configured head or tail sampling rules. It treats a sampling decision as a bug. Guardrail: Include the sampling configuration as a required input [SAMPLING_CONFIG]. Instruct the model to cross-reference every 'missing span' finding against the active sampling rules before reporting it as a gap.
Correlation ID Mismatch False Positives
What to watch: The model incorrectly flags a correlation ID as broken when it encounters a batch job or async process that intentionally forks a new trace context. Guardrail: Add a [TRACE_BOUNDARY_POLICY] input that defines expected fork points. The rubric must suppress correlation warnings for documented boundary transitions and only flag unexpected breaks.
Red Flag Checklist Drift
What to watch: The model generates a generic red-flag checklist that ignores team-specific instrumentation standards. It flags missing user.id on an internal service that should never see user context. Guardrail: Pass a [TELEMETRY_STANDARD] document as input. Constrain the red-flag checklist to only flag violations of the provided standard, not general best practices.
Unscored Narrative Output
What to watch: The model produces a prose-heavy summary without structured scores, making it impossible to track quality trends over time or integrate into CI. Guardrail: Enforce a strict [OUTPUT_SCHEMA] with numeric scores for each dimension. Add a post-generation validation step that rejects any output missing the required cardinality_score, sampling_score, attribute_score, and correlation_score fields.
Evaluation Rubric
Use this rubric to build a model-graded eval or human review checklist for the Observability Signal Quality Rubric Prompt. Each criterion targets a specific dimension of the output quality score and red-flag checklist.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Cardinality Assessment Accuracy | Output correctly identifies high-cardinality dimensions (e.g., user ID, session ID) and assigns a risk score consistent with the team's cardinality budget. | High-cardinality fields are missed or low-risk fields are flagged incorrectly. Score does not match manual review of label sets. | Compare model-assigned cardinality risk score against a golden dataset of known high/low cardinality attributes from a production metrics endpoint. |
Sampling Adequacy Evaluation | Output correctly identifies undersampled services or endpoints based on traffic volume vs. span count and flags them in the red-flag checklist. | Undersampled services are not flagged, or the model incorrectly marks a correctly sampled service as undersampled due to misreading rate vs. count. | Inject a trace with a known sampling rate discrepancy (e.g., 1% sampling on a high-volume endpoint) and verify the model flags it with the correct service name. |
Attribute Completeness Check | Output lists missing required attributes per semantic convention (e.g., | Required attributes are reported as present when they are missing, or the model hallucinates attribute names not in the OpenTelemetry schema. | Provide a trace missing |
Correlation Across Signals Score | Output correctly identifies whether a single request ID links a trace to its logs and metrics, and assigns a correlation score that drops when links are broken. | Model reports high correlation when the trace-to-log link is missing, or fails to detect a broken metrics exemplar link. | Supply a trace with a valid |
Red-Flag Checklist Completeness | Output includes a checklist covering cardinality, sampling, attribute gaps, correlation breaks, and missing instrumentation for error paths. | Checklist is generic (e.g., 'check logs') or misses a critical gap present in the input, such as a missing error span for a 500 response. | Provide a trace where a 500 error has no corresponding error-level log. Verify the checklist includes a flag for 'missing error log for 500 response on service X'. |
Score Calibration and Justification | Overall quality score is accompanied by a per-dimension breakdown and a textual justification that references specific evidence from the input signals. | Score is a single number with no breakdown, or the justification contradicts the evidence (e.g., 'sampling is adequate' when a service has 0 spans). | Evaluate with an LLM judge: provide the input signals and the model's output. Ask the judge if the justification is factually consistent with the input data. |
Instrumentation Gap Detection | Output identifies missing instrumentation for critical paths, such as a database call without a corresponding CLIENT span or a missing middleware span. | Model fails to detect a missing span in a known request path, or flags a correctly instrumented path as missing a span. | Provide a trace with a known missing database span. Verify the output flags the gap and specifies the expected span kind and service. |
Actionable Recommendation Quality | Each red flag includes a concrete, actionable recommendation (e.g., 'Add OpenTelemetry auto-instrumentation for the payments-service gRPC client'). | Recommendations are vague ('improve logging'), technically incorrect, or suggest actions that would not resolve the identified gap. | Human review: a platform engineer rates each recommendation on a 1-3 scale for actionability. Pass if average score > 2.5. |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base rubric prompt with a single signal type (e.g., traces only) and a simplified scoring scale. Remove the cross-signal correlation checks and red-flag checklist to reduce evaluation scope. Accept free-text scoring instead of enforcing the structured JSON output schema.
Prompt modification
- Replace
[OUTPUT_SCHEMA]with:Return a JSON object with a single "overall_score" field (1-5) and a "summary" string. - Remove the
correlation_across_signalsdimension from[DIMENSIONS]. - Add:
If you are uncertain about any dimension, note it briefly and skip scoring that dimension.
Watch for
- Scores that drift toward the middle (3) without justification
- Missing evidence for low scores, making it hard to act on findings
- Overly broad summaries that don't point to specific instrumentation gaps

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us