This prompt is designed for Site Reliability Engineers (SREs) and platform engineers who are reviewing proposed changes to observability pipeline configurations—specifically for tools like OpenTelemetry Collector, Fluentd, or Vector—as part of a pull request or change management process. The primary job-to-be-done is to prevent production incidents caused by misconfigured telemetry pipelines. The ideal user has a deep understanding of their system's SLOs but needs a structured, automated second pair of eyes to catch subtle regressions in sampling logic, log redaction, metric cardinality, and pipeline throughput that are easy to miss during manual review. The required context is a unified or side-by-side diff of the configuration file changes, along with the relevant service's SLO definitions and any known high-priority alerts that depend on the telemetry data being modified.
Prompt
Observability Pipeline Config Change Analysis Prompt

When to Use This Prompt
Define the job, reader, and constraints for the Observability Pipeline Config Change Analysis Prompt.
You should use this prompt when a configuration change touches any part of the pipeline that transforms, filters, routes, or samples telemetry data before it reaches its final destination. This includes modifying processors in an OpenTelemetry Collector pipeline, changing <filter> or <match> directives in Fluentd, or altering transforms and sinks in a Vector configuration. The prompt is specifically valuable when the change is not a simple endpoint URL update but a structural or behavioral modification. Do not use this prompt for reviewing changes to the destination backends themselves (e.g., an Elasticsearch index template) unless those changes are embedded in the pipeline configuration. It is also not a replacement for testing the configuration in a staging environment; it is a pre-merge risk analysis tool.
Before relying on this prompt, you must ensure the diff is clean and represents the intended change. The prompt's analysis is only as good as the input context. A common failure mode is providing a diff that includes unrelated whitespace or comment changes, which can distract the model. Another constraint is that the prompt requires explicit SLO and alert definitions to assess impact accurately; without them, the analysis will be generic. The output is a structured risk report, not a binary pass/fail. The next step after receiving the analysis is for a human to review the high and critical severity findings, correlate them against the staging environment's behavior, and approve or reject the change. Do not use this prompt to auto-approve or auto-merge configuration changes without human review, as a false negative in risk assessment could lead to a silent loss of observability during a real incident.
Use Case Fit
Where this prompt works and where it does not.
Good Fit: Structured Config Diffs
Use when: Reviewing a concrete diff of OpenTelemetry, Fluentd, or Vector configuration files. The prompt excels at mapping specific line changes to runtime behaviors like sampling rates, cardinality, and pipeline throughput. Guardrail: Provide the full diff context; the model needs to see what was removed and added to reason about net effect.
Bad Fit: Greenfield Architecture Design
Avoid when: Designing a new observability pipeline from scratch without an existing configuration to compare against. This prompt is optimized for change analysis, not initial architecture. Guardrail: Use a design review prompt for new architectures; reserve this prompt for modifications to an existing, running pipeline.
Required Inputs: Diff and SLO Definitions
What to watch: Running the prompt without the current SLO definitions or alerting rules prevents it from assessing the impact of sampling changes on alert accuracy. Guardrail: Always include the relevant SLO dashboard definitions, alerting rule thresholds, and pipeline topology context alongside the configuration diff.
Operational Risk: Silent Alert Drops
Risk: A sampling rate increase or log redaction rule change can silently drop data that feeds critical alerts, leading to missed incidents. Guardrail: The prompt output must explicitly flag any change that alters the data volume or fields consumed by active alerting rules. Pair this with a manual check of the alerting dashboard after deployment.
Operational Risk: Cardinality Explosion
Risk: Adding a high-cardinality attribute (e.g., request ID, user ID) to a metric or span can cause a sudden cost spike and query timeout in the observability backend. Guardrail: The prompt must identify new label additions and estimate their cardinality risk. Implement a cost threshold check in CI/CD that blocks merges if the estimated new series count exceeds a budget.
Process Fit: Pre-Merge CI/CD Gate
Use when: Integrating into a CI/CD pipeline as a non-blocking advisory check on pull requests that modify observability configuration files. Guardrail: The prompt output should be structured as a machine-readable risk report (JSON) so the pipeline can post a summary comment. Human approval is still required for any change flagged as high risk or affecting production alerting data streams.
Copy-Ready Prompt Template
A reusable prompt template for analyzing observability pipeline configuration changes, ready for adaptation and integration into CI/CD or change review workflows.
This template is designed to be dropped into an automated review harness or used manually by an SRE before approving a configuration change. It forces the model to reason about the change's impact on alert accuracy, metric cost, log quality, and pipeline performance. All placeholders are in square brackets and must be replaced with real data from your diff, pipeline topology, and SLO definitions before execution.
textYou are an SRE reviewing a configuration change to an observability data pipeline. Your goal is to identify risks that could cause production impact, including missed alerts, metric cardinality explosions, log data leaks, and pipeline backpressure. ## INPUT [PIPELINE_CONFIG_DIFF] ## CONTEXT - Pipeline type: [PIPELINE_TYPE] (e.g., OpenTelemetry Collector, Fluentd, Vector) - Affected data types: [AFFECTED_SIGNALS] (e.g., traces, metrics, logs) - Downstream consumers: [DOWNSTREAM_CONSUMERS] (e.g., Prometheus, Elasticsearch, Datadog) - Relevant SLOs: [RELEVANT_SLOS] ## CONSTRAINTS - Do not flag cosmetic or formatting-only changes. - For each finding, cite the specific line or block in the diff that triggered it. - If a finding is based on an assumption about runtime behavior, state the assumption explicitly. - Do not recommend a change without explaining the risk of the current configuration. ## OUTPUT_SCHEMA Return a valid JSON object with the following structure: { "summary": "A one-paragraph summary of the change's intent and overall risk.", "findings": [ { "severity": "CRITICAL | HIGH | MEDIUM | LOW", "category": "SAMPLING | REDACTION | CARDINALITY | PERFORMANCE | COVERAGE | OTHER", "title": "Short finding title", "location": "Specific line or block reference from the diff", "description": "Detailed explanation of the risk", "affected_slos": ["List of SLO names from the context that are impacted"], "assumptions": ["Any assumptions made about runtime behavior"], "recommendation": "Specific, actionable fix or validation step" } ], "overall_risk_assessment": "LOW | MEDIUM | HIGH | CRITICAL", "recommended_actions_before_merge": ["List of pre-merge actions"] } ## EXAMPLES [FEW_SHOT_EXAMPLES] ## RISK_LEVEL [HUMAN_REVIEW_REQUIRED] (true/false)
Adaptation guidance: Replace [PIPELINE_CONFIG_DIFF] with the unified diff of the configuration change. Populate [PIPELINE_TYPE] and [AFFECTED_SIGNALS] to constrain the model's reasoning to the correct domain. The [RELEVANT_SLOS] field is critical—without it, the model cannot assess alerting impact. For [FEW_SHOT_EXAMPLES], provide 2-3 examples of correct findings for your specific pipeline type to calibrate severity and category selection. If the change touches production infrastructure, set [HUMAN_REVIEW_REQUIRED] to true and route the output to an approval queue rather than auto-applying.
Prompt Variables
Required inputs for the Observability Pipeline Config Change Analysis Prompt. Each placeholder must be populated before the prompt is sent. Validation notes describe how to verify the input is well-formed before execution.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CONFIG_DIFF] | Unified diff of the observability pipeline configuration change (OpenTelemetry, Fluentd, or Vector config) | diff --git a/otel-collector-config.yaml b/otel-collector-config.yaml @@ -12,7 +12,7 @@ processors: tail_sampling:
| Must be a valid unified diff format. Reject if empty, binary, or contains only comments. Parse check: diff must contain at least one + or - line referencing a config key. |
[PIPELINE_TYPE] | The observability pipeline technology being configured | opentelemetry-collector | Must be one of: opentelemetry-collector, fluentd, fluent-bit, vector, telegraf, logstash. Reject unknown values. Used to select pipeline-specific validation rules. |
[CURRENT_CONFIG] | The full current configuration file before the change is applied | receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 processors: tail_sampling: policies: - name: errors type: status_code status_code: ERROR decision_wait: 10s | Must be valid YAML or TOML matching [PIPELINE_TYPE] format. Parse check: deserialize without error. Required for context on surrounding config not visible in the diff alone. |
[SLO_DEFINITIONS] | List of SLO definitions that depend on the observability pipeline output, with target thresholds | [{"name": "api-availability", "target": 99.9, "window": "30d", "metric": "http_server_request_duration_seconds_count", "filters": {"status_code": "2xx"}}] | Must be a JSON array of SLO objects with name, target, window, and metric fields. Null allowed if no formal SLOs exist. If provided, each SLO is checked for monitoring coverage after the config change. |
[ALERT_RULES] | Current alert rules that consume metrics or logs from this pipeline | [{"alert": "HighErrorRate", "expr": "rate(http_errors_total[5m]) > 0.05", "severity": "critical", "source_pipeline": "otel-collector"}] | Must be a JSON array of alert rule objects with alert, expr, and severity fields. Null allowed. Used to detect whether sampling or filter changes will cause alerts to miss conditions or fire falsely. |
[PIPELINE_METADATA] | Deployment context for the pipeline: environment, service ownership, and criticality tier | {"environment": "production", "owner_team": "platform-sre", "criticality": "tier-1", "deployment_type": "daemonset"} | Must be a JSON object with environment and criticality fields. Criticality must be tier-1, tier-2, or tier-3. Used to calibrate risk severity and escalation recommendations. |
[EXPECTED_THROUGHPUT] | Approximate events per second the pipeline handles, used to assess cardinality and performance risk | {"metrics_per_second": 50000, "logs_per_second": 12000, "traces_per_second": 8000} | Must be a JSON object with at least one of metrics_per_second, logs_per_second, or traces_per_second. Values must be positive integers. Used to flag changes that risk pipeline overload or dropped data at current throughput. |
Implementation Harness Notes
How to wire the Observability Pipeline Config Change Analysis Prompt into an SRE workflow with validation, retries, and human approval gates.
This prompt is designed to operate inside a CI/CD pipeline or a change management webhook that fires whenever an observability pipeline configuration (OpenTelemetry Collector, Fluentd, Vector) is modified in a pull request or a deployment branch. The harness should extract the raw config diff, the full previous and proposed config files, and any relevant SLO definitions or alert rule metadata before assembling the prompt. The model call should be treated as a structured analysis step, not a final decision. Its output must be parsed into a machine-readable risk report that downstream systems can act on.
Implement the harness as an asynchronous job with a strict JSON output contract. After calling the model, validate the response against a schema that requires findings (array of objects with severity, category, affected_component, description, slo_impact, and remediation fields) and a top-level overall_risk_score (enum: LOW, MEDIUM, HIGH, CRITICAL). If validation fails, retry once with a repair prompt that includes the schema and the raw invalid output. Log both attempts. For any finding with severity CRITICAL or category sampling_rate_change that affects an active SLO, block the CI pipeline and require a human approval comment on the PR before the config can be merged. For MEDIUM findings, post a non-blocking review comment. For LOW, log and proceed.
Model choice matters here. Use a model with strong structured output support and a context window large enough to hold the full config files plus SLO definitions. If configs exceed the context window, preprocess them by extracting only the changed sections and their immediate dependencies (e.g., pipeline receivers, processors, and exporters connected to the modified block). Do not truncate SLO definitions. Store the full prompt, response, and validation result as an artifact attached to the deployment or PR for auditability. Avoid wiring this prompt directly to an auto-merge action without the human approval gate for destructive changes.
Expected Output Contract
Defines the required JSON schema for the observability pipeline config change analysis. Use this contract to validate the model's structured output before ingesting it into an incident review or CI/CD pipeline.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
change_summary | string | Must be a non-empty string under 280 characters. Summarizes the net operational effect of the config diff. | |
risk_level | enum: low, medium, high, critical | Must match one of the four enum values. If a destructive sampling change or cardinality explosion is detected, risk_level must be high or critical. | |
findings | array of objects | Array must contain at least 1 object. If no issues are found, return a single object with severity 'info' and category 'no_issues_detected'. | |
findings[].severity | enum: info, warning, critical | Must be one of the three enum values. 'critical' requires immediate human review before deployment. | |
findings[].category | enum: sampling_rate, log_redaction, metric_cardinality, pipeline_performance, slo_coverage, no_issues_detected | Must match one of the six enum values. Category must be consistent with the evidence in the finding description. | |
findings[].description | string | Must reference a specific config key or block from the input diff. Cannot be a generic statement. | |
findings[].affected_slo | string or null | If category is 'slo_coverage', this must be a non-null string naming the SLO. Otherwise, must be null. | |
requires_rollback | boolean | Must be true if any finding has severity 'critical' and the change is already deployed. Otherwise, false. |
Common Failure Modes
Observability pipeline config changes are high-stakes because they sit between your services and your ability to detect incidents. These are the most common failure modes when using LLMs to analyze them, and how to prevent each one.
Sampling Rate Blindness
What to watch: The model approves a sampling rate reduction without flagging that it drops below the minimum threshold needed for existing SLO-based alerts. The config is syntactically valid but operationally destructive. Guardrail: Include current SLO definitions and alert thresholds as required context. Add a hard validation rule that rejects any sampling rate below the minimum required for active alerts.
Cardinality Explosion Miss
What to watch: A new label or attribute is added to metrics without the model detecting that its cardinality is unbounded (e.g., a request ID or user ID), which will cause metric storage cost and query performance to degrade rapidly. Guardrail: Require the model to list every new label and estimate its cardinality. Flag any label with unbounded or high-cardinality values for human review before approval.
Log Redaction Regression
What to watch: A pipeline config change modifies or removes a log processing rule that was responsible for redacting PII or secrets. The model treats it as a routine filter change and misses the privacy impact. Guardrail: Maintain a registry of redaction rules and their config locations. Instruct the model to cross-reference any modified or removed rule against this registry and escalate if a redaction rule is affected.
Pipeline Performance Silent Degradation
What to watch: A config change introduces a new regex parser or complex transformation that the model evaluates as logically correct but fails to flag the CPU cost at expected throughput. The pipeline deploys and falls behind, causing data loss. Guardrail: Include throughput requirements and resource constraints in the prompt context. Require the model to estimate the relative cost of each new transformation compared to the existing pipeline.
Alert Coverage Gap Introduction
What to watch: The model approves a config change that drops or renames a metric used by a critical alert, but it only analyzes the config syntax and not the downstream alert dependency. The alert silently breaks. Guardrail: Provide a mapping of active alerts to their source metrics as input context. Instruct the model to verify that every metric referenced by an active alert is still emitted after the config change.
Multi-Tenant Routing Misconfiguration
What to watch: A change to routing rules in a multi-tenant observability pipeline accidentally sends one tenant's data to another tenant's storage or drops a tenant's data entirely. The model validates the routing logic in isolation without checking tenant isolation. Guardrail: Include tenant isolation requirements as a hard constraint. Require the model to produce a routing matrix showing destination per tenant and flag any tenant with missing or duplicated routing.
Evaluation Rubric
Criteria for evaluating the quality of the observability pipeline config change analysis output before integrating it into an automated review or CI/CD pipeline.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Sampling Rate Impact Detection | Correctly identifies every sampling rate change and maps it to at least one affected alert or SLO. | Output misses a sampling rate change present in the diff or fails to link a change to any alert definition. | Diff a golden config with a known sampling rate decrease against a baseline; assert all affected alerts are listed. |
Log Redaction Gap Identification | Flags any removal or modification of a redaction rule and notes the specific fields now at risk of leakage. | Output states 'no redaction gaps found' when a redaction rule was removed or a sensitive field was added to an allow list. | Provide a diff removing a PII redaction rule; assert the finding is present and names the unredacted field. |
Cardinality Explosion Risk Assessment | For any new or modified metric label, provides a bounded cardinality estimate and a specific risk rating (High/Medium/Low). | Output fails to mention a new high-cardinality label (e.g., a raw request ID) or provides no risk justification. | Inject a diff adding a |
Pipeline Performance Regression Check | Identifies any change that could increase latency or resource consumption (e.g., added regex parsing, removed batching) with a specific performance note. | Output does not flag the removal of a buffer configuration or the addition of a complex, unanchored regex. | Use a diff that removes a disk buffer; assert a performance regression finding is present and mentions buffer removal. |
SLO Monitoring Coverage Validation | Confirms that critical SLO metrics are still being collected after the change, or explicitly flags any SLO metric that is dropped or altered. | An SLO-defining metric is renamed or removed in the diff, but the output reports 'SLO coverage maintained'. | Provide a diff renaming a metric used in a known SLO; assert the output flags the SLO coverage gap. |
Structured Output Schema Adherence | The output is valid JSON that strictly matches the defined [OUTPUT_SCHEMA], with all required fields present and correctly typed. | The output is missing a required field like | Parse the output with a schema validator; assert zero validation errors. |
False Positive Rate on Unchanged Config | When run against a no-op diff or a comment-only change, the output contains zero findings. | The output reports a finding for a comment change or a whitespace-only diff. | Run the prompt with a diff that only changes a YAML comment; assert the findings array is empty. |
Actionable Remediation Guidance | Every finding includes a specific, actionable remediation step that references the exact config block to modify. | A finding says 'Review the sampling rate' without specifying the target value or the config stanza to change. | Check each finding object in the output; assert the |
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
Start with the base prompt and a single config diff. Remove structured output schema requirements initially—ask for a plain-text risk summary instead. Use a frontier model with a generous context window. Paste the diff directly into [CONFIG_DIFF] without pre-processing.
Watch for
- The model missing sampling rate math when it's spread across multiple files
- Over-flagging low-risk changes like log format string updates
- No differentiation between pipeline-breaking changes and cosmetic ones

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