An LLM observability platform collects prompts, model outputs, retrieved documents and tool calls from every AI application it touches, so a careless rollout builds the most sensitive data store in the organisation while trying to monitor the others. This playbook covers deploying an LLM observability platform as a product class: the design decisions to make before the first trace arrives, how to build and harden the platform, how to discover and onboard AI applications in waves, how to test and roll back, and what to measure. It is vendor-neutral and based on the OpenTelemetry GenAI semantic conventions, the OWASP Logging Cheat Sheet, the OWASP Top 10 for LLM Applications 2025, NIST SP 800-53 Rev. 5 and NIST CSF 2.0. It is written for platform, ML and security engineering teams. What to monitor and why is covered in the LLM Observability Guide; protecting the running platform is covered in Securing the LLM observability platform itself; selection is covered in the AI Agent and LLM Observability Buyer's Guide.
Key takeaways
- Content capture is the decision that sets the risk. The OpenTelemetry GenAI conventions say instrumentations should not capture instructions, inputs or outputs by default, and recommend external storage with references on spans for production. Decide per application, in writing, before onboarding.
- Separate operational telemetry from content. Latency, token counts and errors can go to a broad engineering audience; prompts and outputs need a restricted store, shorter retention and their own access model.
- Put a pipeline you control in front of the backend. Redaction, sampling and routing in a collector tier mean a fix is a configuration change, not a redeploy of every application.
- Onboard by integration pattern. A gateway, direct SDK instrumentation, an agent framework and offline evaluation each need a different paved road.
- Pin the convention version. The GenAI semantic conventions carry Development status and have moved to their own repository, so attribute names can change; treat an upgrade as a controlled change with tests.
Phase 0: design decisions
These choices shape every later phase. Changing the content capture pattern or the hosting model after teams depend on the platform means re-instrumenting and re-reviewing every application.
| Decision | Options | Security built in |
|---|---|---|
| Hosting model | Software-as-a-service, self-hosted, or a module in the existing observability or SIEM stack | A hosted platform receives prompts and outputs: treat it as an external service processing sensitive data (SA-9) and confirm region, sub-processors and retention before contract. Self-hosted moves patching and hardening to you |
| Content capture pattern | (1) none, (2) content on span attributes, (3) content in external storage with references on spans | OpenTelemetry: pattern 1 is the default; pattern 2 suits pre-production or storage that meets privacy rules; pattern 3 is recommended for production because it allows separate access controls |
| Telemetry schema | OpenTelemetry GenAI conventions at a pinned version, or a vendor schema | A standard schema keeps detections portable. See OpenTelemetry GenAI Semantic Conventions for Security Teams |
| Collection path | Direct export from applications, or a collector tier you operate | A collector tier lets you redact, drop opt-in attributes and sample before data leaves your network |
| Tenancy and access | Projects per application, per business unit or per environment | Separate production from development; content access limited to named roles (AC-6) |
| Retention | Separate periods for metrics, traces and content | OWASP Logging Cheat Sheet: keep logs for the required period and no longer; set content retention shortest (AU-11, SI-12) |
| Prompt and evaluation features | Read-only telemetry, or a platform that also stores and serves prompts | If the platform serves prompts to production, it becomes a change path for model behaviour and needs change control (CM-3) |
Choosing a content capture pattern per application
- No content: the default for customer-facing applications handling personal or regulated data until privacy and security have reviewed what would be captured. Operational metrics and finish reasons still give cost, latency and error coverage.
- Content on spans: for pre-production and evaluation environments with synthetic or approved test data.
- External content store: for production applications that need content for debugging or evaluation; the store has its own access list, encryption key and retention, and spans hold only references.
Phase 1: build and harden the platform
- Deploy with infrastructure as code: projects, roles, retention settings and collector configuration live in version control, so a change to what is captured or who can read it is a reviewed change (CM-3).
- Connect administrator and user login to the identity provider: single sign-on with MFA, named roles for platform administrators, application owners, content reviewers and read-only engineers. Local accounts disabled except a sealed break-glass account.
- Issue ingestion credentials per application and environment: write-only keys or workload identity, stored in the secrets manager, never shared across teams. A leaked ingestion key should let an attacker write noise into one project, not read anything.
- Configure redaction in the collector before the first application: mask the categories the OWASP Logging Cheat Sheet says should not be logged directly, including access tokens, passwords, connection strings, encryption keys, payment card data and sensitive personal data.
- Turn on the platform's own audit log: logins, role changes, exports, content views and API key creation, sent to the SIEM where platform administrators cannot alter it (AU-2, AU-9). See the SIEM rollout playbook.
- Restrict network reach: TLS for every export path (SC-8), private connectivity where offered, and no public exposure of a self-hosted backend or database (SC-7). The DeepSeek database exposure showed what an open database holding chat logs and API secrets looks like.
- Prove redaction: send synthetic prompts containing fake card numbers, email addresses and keys through every path and confirm none reach the backend.
Phase 2: discover AI applications and build the backlog
You cannot onboard what you have not found. Combine these sources into one list of AI callers:
- Gateway and proxy logs: calls to model provider endpoints from servers, pipelines and laptops.
- Cloud and finance records: model API subscriptions, keys issued in provider consoles, and invoices.
- Code and dependency scanning: repositories importing model SDKs or agent frameworks.
- Architecture and procurement registers: AI features approved through risk review.
For each caller record owner, environment, data classification of prompts, whether it is customer facing, whether it retrieves documents or calls tools, and its current logging. Rank customer-facing, agentic and high-spend applications first. Untracked provider keys found in this step are also an exposure: the LLMjacking campaigns rely on exactly those. See the Shadow AI Agent Discovery Guide.
Phase 3: pilot one paved road per integration pattern
| Pattern | How telemetry is produced | Choose when | Watch for |
|---|---|---|---|
| Gateway | The AI gateway emits a span or record for every model call it brokers | Fast coverage of token use, cost, model and caller across many teams | The gateway holds provider keys; harden it as a credential store. See the AI Gateway and LLM Gateway Guide |
| SDK instrumentation | Applications use OpenTelemetry instrumentation for model clients | Applications needing retrieval, tool and agent spans in one trace | Content capture switched on by a developer flag without review |
| Agent framework integration | Framework callbacks or OpenTelemetry spans for invoke_agent, execute_tool and retrieval operations | Agentic applications | Tool arguments and memory records carrying sensitive data; the conventions mark memory query text and records as opt-in |
| Offline evaluation | Datasets and scores uploaded from test runs | Pre-release quality and safety testing | Production content copied into evaluation datasets without approval |
Each paved road ships with: a configuration template that sets service name, environment and owner attributes; the approved content capture setting; a dashboard; and a short test that proves telemetry arrives and redaction works.
Phase 4: onboarding waves
Our recommended order, after the pilot:
- Wave 1, gateway coverage: route model traffic through the gateway and collect operational telemetry with no content. Gives spend, error and model-use visibility across the estate in one step.
- Wave 2, customer-facing and agentic applications: SDK or framework instrumentation with retrieval and tool spans, content off or in the external store after review.
- Wave 3, security detections: spend anomalies per caller, unapproved models, guardrail verdict spikes, unusual tool calls; forward to the SIEM.
- Wave 4, evaluation: online scoring on a sample and datasets built from production failures, with an approval step for any production content reused.
- Wave 5, long tail: internal tools and experiments, with dated exceptions for anything that cannot be instrumented.
Per-application cutover, testing and rollback
- Record the approved content capture pattern and retention for the application in the onboarding ticket, signed off by the data owner.
- Deploy instrumentation to a non-production environment; confirm required attributes (operation name, provider name, model, token usage) and the absence of content where content is off.
- Run the redaction test with synthetic sensitive values.
- Enable in production behind a feature flag or sampling rate and compare request latency before and after.
- Rollback: switch the flag off or revert the collector configuration. Because redaction and routing sit in the collector, a capture mistake can be stopped centrally within minutes; then purge any content captured in error and record the purge.
Upgrading instrumentation and the schema
Because the GenAI conventions are still in Development status, plan for attribute changes. Keep a contract test per paved road that asserts the attributes your dashboards and detections rely on (for example gen_ai.operation.name, gen_ai.provider.name, gen_ai.response.model and the token usage attributes). Upgrade instrumentation libraries in a non-production environment first, run the contract and redaction tests, and only then roll forward by wave. Where an upgrade renames attributes, add a temporary mapping in the collector so detections keep working while applications move, and remove it once every application has upgraded. Treat any upgrade that changes default content capture behaviour as a new capture decision requiring sign-off.
Small versus large organisations
- Small teams: a hosted platform or the existing observability stack, one gateway, content off in production and on only in pre-production. Skip a separate content store until a production use case needs it.
- Large estates: a platform team runs the collector tier and publishes paved roads; business units get their own projects; a review board approves content capture per application; detections feed the SOC.
- Regulated environments: self-hosted or region-pinned storage, customer-managed keys for the content store, and data protection impact assessment before capture. See the AI Data Retention and Deletion guide.
Where identity fits
Observability is only useful for security if each call can be tied to a workload and, where relevant, a user. Require a named service identity on every span (service name and owner attributes) and pass an end-user or agent identifier that is pseudonymised rather than an email address. The platform itself holds three kinds of credential: ingestion keys, API keys for exports and integrations, and, when connected to a gateway or evaluation runner, model provider keys. Inventory them as non-human identities with owners and rotation. See the LLM API Key Security Guide.
Detection and measurement
Alerts on the platform itself: content views or exports by a user outside the reviewer role, bulk export, new ingestion keys, changes to redaction or retention, and audit log gaps. Alerts from the telemetry it collects: spend per caller above baseline (OWASP LLM10 Unbounded Consumption), calls to unapproved models, spikes in refusals or guardrail blocks, and tool calls outside an agent's normal set.
| Metric | How to measure | Target (our recommendation) |
|---|---|---|
| Coverage | Model calls with a trace or gateway record attributed to a named workload, divided by provider-billed calls | Above 95% |
| Capture decisions | Production applications with an approved content capture pattern on record | 100% |
| Redaction leakage | Synthetic sensitive values reaching the backend in scheduled tests | Zero |
| Content access | Content views by users outside the reviewer role | Zero |
| Retention compliance | Content older than its retention period still stored | Zero |
| Detection latency | Time from spend anomaly to alert | Under 15 minutes |
Framework mapping
| Rollout element | NIST SP 800-53 Rev. 5 | NIST CSF 2.0 | Threat reference |
|---|---|---|---|
| Discovery of AI applications | SA-9 External System Services | ID.AM-02 | OWASP LLM03 Supply Chain |
| Content capture and redaction | SI-12 Information Management and Retention, AU-11 Audit Record Retention | PR.DS-01 | OWASP LLM02 Sensitive Information Disclosure |
| Access to content and admin | AC-6 Least Privilege | PR.AA-05 | |
| Transport and network | SC-8, SC-7 | PR.DS-02 | |
| Platform audit log | AU-2, AU-9 | PR.PS-04 | |
| Detections from telemetry | SI-4 System Monitoring | DE.CM-09 | OWASP LLM10; ATLAS AML.T0024 Exfiltration via AI Inference API |
| Prompt and configuration changes | CM-3 Configuration Change Control | PR.PS-01 | OWASP LLM07 System Prompt Leakage |
Common failure patterns
- Content capture on everywhere: the pilot flag that recorded full prompts stays on in production and the platform becomes a copy of every conversation.
- One shared ingestion key: every team uses the same key, so nothing can be attributed or revoked selectively.
- Broad read access: every engineer can browse production prompts because operational and content data sit in the same project.
- Unpinned schema: an instrumentation upgrade renames attributes and detections silently stop matching.
- Evaluation datasets built from production content without the data owner's approval or a retention period.
- Gateway treated as plumbing: the component holding every provider key runs with default credentials and no audit log; the AI gateway authentication bypass shows why it is a credential store.
Practitioner checklist
- Choose hosting, schema version and collection path before onboarding any application.
- Record a content capture pattern and retention for every application, approved by the data owner.
- Run redaction and sampling in a collector tier you control.
- Separate operational telemetry from content in storage, access and retention.
- Issue write-only ingestion credentials per application and environment.
- Send the platform's own audit log to the SIEM before the first production trace.
- Discover AI callers from gateway, finance and code sources and onboard by risk.
- Test redaction with synthetic values on every collector change.
- Report coverage, capture decisions and content access monthly.
Standards and references
- OpenTelemetry: GenAI Semantic Conventions
- OWASP: Logging Cheat Sheet
- OWASP: Top 10 for LLM Applications 2025
- OWASP: Secure AI/ML Model Ops Cheat Sheet
- NIST: SP 800-53 Rev. 5 Security and Privacy Controls
- NIST: Cybersecurity Framework 2.0
- NIST: AI 600-1 Generative AI Profile
- NCSC: Guidelines for secure AI system development
Related NHI Mgmt Group resources: AI Agent Observability and Incident Response Guide · If your monitoring and observability platform is compromised · Vector database rollout playbook · AI coding assistant rollout playbook