Skip to content
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
ee50689
Add new LLM obs page
alaudazzi Mar 14, 2025
d9c6011
Edits
alaudazzi Mar 14, 2025
6149699
Add links to integrations pages
alaudazzi Mar 14, 2025
746261f
Add links to otel distros
alaudazzi Mar 14, 2025
bedaf9f
More edits
alaudazzi Mar 14, 2025
8f64355
Add image for the first use case
alaudazzi Mar 14, 2025
df0544e
Add more images for use cases
alaudazzi Mar 14, 2025
c2f23af
Merge branch 'main' into llm-observability
alaudazzi Mar 14, 2025
e4160d3
Merge branch 'main' into llm-observability
alaudazzi Mar 17, 2025
c10ad22
Add integrations and instrumentaions tables
alaudazzi Mar 17, 2025
399a4ca
Merge branch 'llm-observability' of github.com:elastic/docs-content i…
alaudazzi Mar 17, 2025
0162235
Update solutions/observability/apps/llm-observability.md
alaudazzi Mar 17, 2025
fc7cb75
Update solutions/observability/apps/llm-observability.md
alaudazzi Mar 19, 2025
f9f41eb
Update opentelemtry link
alaudazzi Mar 19, 2025
e001d45
Integrate Daniela's suggestions
alaudazzi Mar 20, 2025
6511d42
Integrate Christoph's suggestion
alaudazzi Mar 20, 2025
d676101
Merge branch 'main' into llm-observability
alaudazzi Mar 20, 2025
f3f9d96
Merge branch 'main' into llm-observability
alaudazzi Mar 28, 2025
c684a86
Merge branch 'main' into llm-observability
alaudazzi Mar 31, 2025
d5a83b5
Update link to quickstart
alaudazzi Mar 31, 2025
47a0230
Merge branch 'main' into llm-observability
alaudazzi Mar 31, 2025
94770d0
Merge branch 'main' into llm-observability
alaudazzi Mar 31, 2025
873f16c
Integrate Daniela's feedback
alaudazzi Mar 31, 2025
252433d
Merge branch 'main' into llm-observability
alaudazzi Mar 31, 2025
08b482b
Update AWS Boto link
alaudazzi Apr 1, 2025
0e9f4f9
Update solutions/observability/apps/llm-observability.md
alaudazzi Apr 2, 2025
d268c0d
Change heading level for GS
alaudazzi Apr 2, 2025
c07b0a4
Merge branch 'main' into llm-observability
alaudazzi Apr 2, 2025
88c5646
Replace table with link to supported technologies
alaudazzi Apr 2, 2025
b63caed
Merge branch 'llm-observability' of github.com:elastic/docs-content i…
alaudazzi Apr 2, 2025
b38951a
Merge branch 'main' into llm-observability
alaudazzi Apr 3, 2025
a26136b
Merge branch 'main' into llm-observability
alaudazzi Apr 3, 2025
13bbc39
Add links to the source column
alaudazzi Apr 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added images/llm-amazon-bedrock-guardrails.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/llm-costs-usage-concerns.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/llm-openai-applications.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/llm-performance-reliability.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions solutions/observability/apps.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Explore the topics in this section to learn how to observe and monitor software

| | |
| --- | --- |
| [LLM Observability](../../solutions/observability/apps/llm-observability.md) | Monitor LLM-powered applications to keep them reliable, efficient, cost-effective, and easy to troubleshoot.|
| [Application performance monitoring (APM)](../../solutions/observability/apps/application-performance-monitoring-apm.md) | Monitor software services and applications in real time, by collecting detailed performance information on response time for incoming requests, database queries, calls to caches, external HTTP requests, and more. |
| [Synthetic monitoring](../../solutions/observability/apps/synthetic-monitoring.md) | Monitor the availability of network endpoints and services. |
| [Real user monitoring](../../solutions/observability/apps/real-user-monitoring-user-experience.md) | Quantify and analyze the perceived performance of your web application using real-world user experiences. |
Expand Down
86 changes: 86 additions & 0 deletions solutions/observability/apps/llm-observability.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
navigation_title: "LLM Observability"
---

# LLM Observability

While LLMs hold incredible transformative potential, they also bring complex challenges in reliability, performance, and cost management. Traditional monitoring tools require an evolved set of observability capabilities to ensure these models operate efficiently and effectively.
To keep your LLM-powered applications reliable, efficient, cost-effective, and easy to troubleshoot, Elastic provides a powerful LLM observability framework including key metrics, logs, and traces, along with pre-configured, out-of-the-box dashboards that deliver deep insights into model prompts and responses, performance, usage, and costs.
Elastic’s end-to-end LLM observability is delivered through the following methods:

- Metrics and logs ingestion for LLM APIs (via [Elastic integrations](https://www.elastic.co/guide/en/integrations/current/introduction.html))
- APM tracing for LLM Models (via [instrumentation](https://elastic.github.io/opentelemetry/))

## Metrics and logs ingestion for LLM APIs (via Elastic integrations)

Elastic’s LLM integrations now support the most widely adopted models, including OpenAI, Azure OpenAI, and a diverse range of models hosted on Amazon Bedrock and Google Vertex AI. Depending on the LLM provider you choose, the following table shows which source you can use and which type of data -- log or metrics -- you can collect.

| **LLM Provider** | **Source** | **Metrics** | **Logs** |
|--------|------------|------------|
| [Amazon Bedrock](https://www.elastic.co/guide/en/integrations/current/aws_bedrock.html)| [AWS CloudWatch Logs][impl-bedrock] |||
| [Azure OpenAI](https://www.elastic.co/guide/en/integrations/current/azure_openai.html)| [Azure Monitor and Event Hubs][impl-azure] |||
| [GCP Vertex AI](https://www.elastic.co/guide/en/integrations/current/gcp_vertexai.html) | [GCP Cloud Monitoring][impl-vertexai] || 🚧 |
| [OpenAI](https://www.elastic.co/guide/en/integrations/current/openai.html) | [OpenAI Usage API][openai-usage] || 🚧 |

## APM tracing for LLM models (via instrumentation)

Elastic offers specialized OpenTelemetry Protocol (OTLP) tracing for applications leveraging LLM models hosted on OpenAI, Azure, and Amazon Bedrock, providing a detailed view of request flows. This tracing capability captures critical insights, including the specific models used, request duration, errors encountered, token consumption per request, and the interaction between prompts and responses. Ideal for troubleshooting, APM tracing allows you to find exactly where the issue is happening with precision and efficiency in your LLM-powered application.

You can instrument the application with one of the following Elastic Distributions of OpenTelemetry (EDOT):

- [Python](https://github.com/elastic/elastic-otel-python)
- [Node.js](https://github.com/elastic/elastic-otel-node)
- [Java](https://github.com/elastic/elastic-otel-java)

EDOT includes many types of instrumentation. The following table shows the status of instrumentation relevant to GenAI on a per-language basis:

| **SDK** | **Language** | **Instrumented Dependency** | **Traces** | **Metrics** | **Logs** |
|-------|-----|----|-----|------|------|-----|------|
| OpenAI | Python | [openai](https://github.com/elastic/elastic-otel-python-instrumentations/tree/main/instrumentation/elastic-opentelemetry-instrumentation-openai)||||
| OpenAI| JS/Node | [openai](https://github.com/elastic/elastic-otel-node/tree/main/packages/instrumentation-openai) ||||
| OpenAI| Java| [com.openai:openai-java](https://github.com/elastic/elastic-otel-java/tree/main/instrumentation/openai-client-instrumentation) ||||
| (AWS) Boto| Python| [botocore](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/extensions/bedrock.py)||||
| Google Vertex AI | Python | [google-cloud-aiplatform](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation-genai/opentelemetry-instrumentation-vertexai) || 🚧| 🚧|

## Getting started

Check [these instructions](https://github.com/elastic/opentelemetry/blob/main/docs/use-cases/llm/index.md) on how to setup and collect OpenTelemetry data for your LLM applications.

## Use cases

### Understand LLM performance and reliability

For an SRE team optimizing a customer support system powered by Azure OpenAI, Elastic’s [Azure OpenAI integration](https://www.elastic.co/guide/en/integrations/current/azure_openai.html) provides critical insights. They can quickly identify which model variants experience higher latency or error rates, enabling smarter decisions on model deployment or even switching providers based on real-time performance metrics.

:::{image} ../../../images/llm-performance-reliability.png
:alt: LLM performance and reliability
:screenshot:
:::

### Troubleshoot OpenAI-powered applications

Consider an enterprise utilizing an OpenAI model for real-time user interactions. Encountering unexplained delays, an SRE can use OpenAI tracing to dissect the transaction pathway, identify if one specific API call or model invocation is the bottleneck, and monitor a request to see the exact prompt and response between the user and the LLM.

:::{image} ../../../images/llm-openai-applications.png
:alt: Troubleshoot OpenAI-powered applications
:screenshot:
:::

### Addressing cost and usage concerns

For cost-sensitive deployments, being acutely aware of which LLM configurations are more cost-effective is crucial. Elastic’s dashboards, pre-configured to display model usage patterns, help mitigate unnecessary spending effectively. You can use out-of-the-box dashboards for metrics, logs, and traces.

:::{image} ../../../images/llm-costs-usage-concerns.png
:alt: LLM cost and usage concerns
:screenshot:
:::

### Understand compliance with guardrails in Amazon Bedrock

With the Elastic Amazon Bedrock integration for Guardrails, SREs can swiftly address security concerns, like verifying if certain user interactions prompt policy violations. Elastic's observability logs clarify whether guardrails rightly blocked potentially harmful responses, bolstering compliance assurance.

:::{image} ../../../images/llm-amazon-bedrock-guardrails.png
:alt: Elastic Amazon Bedrock integration for Guardrails
:screenshot:
:::

1 change: 1 addition & 0 deletions solutions/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ toc:
- file: observability/get-started/get-started-with-dashboards.md
- file: observability/apps.md
children:
- file: observability/apps/llm-observability.md
- file: observability/apps/application-performance-monitoring-apm.md
children:
- file: observability/apps/get-started-with-apm.md
Expand Down
Loading