GitHub

Project Description: OpenLLMetry

What is the project about?

OpenLLMetry is an open-source observability tool specifically designed for applications built using Large Language Models (LLMs). It provides detailed insights into the performance and behavior of LLM applications. It's built as a set of extensions on top of OpenTelemetry.

What problem does it solve?

LLM applications can be complex and opaque. It's often difficult to understand:

  • How different LLM providers (OpenAI, Anthropic, Cohere, etc.) are performing.
  • The interactions between your application code, LLM calls, and vector databases.
  • The latency, cost, and quality of LLM responses.
  • Where errors or performance bottlenecks are occurring within the LLM workflow.
  • Integration of LLM Observability into existing Observability solutions.

OpenLLMetry addresses these challenges by providing tracing and monitoring capabilities tailored for LLM applications.

What are the features of the project?

  • Instrumentation for LLM Providers: Provides pre-built instrumentations for popular LLM providers like OpenAI, Anthropic, Cohere, HuggingFace, and more. This automatically captures details about API calls, responses, and errors.
  • Instrumentation for Vector Databases: Supports instrumentations for vector databases commonly used with LLMs, including Chroma, Pinecone, Qdrant, Weaviate, and others.
  • Framework Integrations: Seamlessly integrates with popular LLM frameworks like LangChain, LlamaIndex, Haystack, LiteLLM and CrewAI.
  • OpenTelemetry Compatibility: Built on OpenTelemetry, a widely adopted standard for observability. This means OpenLLMetry can integrate with a vast ecosystem of existing monitoring and analysis tools.
  • Traceloop SDK: Offers a simplified SDK (traceloop-sdk) for easy setup and initialization, while still outputting standard OpenTelemetry data.
  • Wide Range of Destinations: Supports exporting telemetry data to numerous popular observability platforms, including Datadog, Honeycomb, New Relic, Grafana, and many others. This allows you to use your preferred tools for visualization and analysis.
  • Context Propagation: Automatically propagates context (trace IDs, etc.) across different parts of your application, providing end-to-end visibility.
  • Anonymous Telemetry (Optional and Configurable): The SDK includes an optional telemetry feature that collects anonymous usage data to help improve the project. This can be disabled.

What are the technologies used in the project?

  • OpenTelemetry: The core foundation for instrumentation and data collection.
  • Python: The primary language for the SDK and instrumentations.
  • Various LLM Provider APIs: Integrates with the APIs of supported LLM providers.
  • Various Vector Database APIs: Integrates with the APIs of supported vector databases.
  • Various Observability Platform APIs/SDKs: Integrates with the APIs/SDKs of supported observability platforms.

What are the benefits of the project?

  • Improved Visibility: Gain deep insights into the inner workings of your LLM applications.
  • Performance Optimization: Identify and address performance bottlenecks.
  • Error Detection and Debugging: Quickly pinpoint and resolve errors related to LLM interactions.
  • Cost Management: Track and optimize the cost of using LLM services.
  • Quality Assurance: Monitor the quality and consistency of LLM responses.
  • Vendor Neutrality: Avoid vendor lock-in by leveraging the OpenTelemetry standard.
  • Easy Integration: Integrates smoothly with existing observability setups.
  • Community Driven: Open-source and actively maintained, with contributions welcomed.

What are the use cases of the project?

  • Monitoring LLM-powered chatbots: Track response times, error rates, and user satisfaction.
  • Debugging complex LLM workflows: Understand the flow of data and identify issues in multi-step LLM processes.
  • Optimizing LLM application performance: Identify slow API calls or inefficient database queries.
  • Comparing different LLM providers: Evaluate the performance and cost of different models for a specific task.
  • Building reliable and scalable LLM applications: Ensure your applications are robust and can handle increasing load.
  • Auditing and compliance: Maintain a record of LLM interactions for auditing purposes.
  • A/B testing of LLM prompts and configurations: Track the impact of changes on key metrics.
  • Observability of RAG applications: Track and monitor the retrieval and generation steps.
openllmetry screenshot