Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
dapywell committed Jun 13, 2023
1 parent a6cf627 commit 1f58fb5
Showing 1 changed file with 37 additions and 6 deletions.
43 changes: 37 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,46 @@

![image](https://github.com/intergral/deep/assets/10787304/33fbd546-1153-433a-9f34-f1f0dd14c5b5)

# Deep - dynamic instrumention engine for runtime logs, metrics, traces and snapshots
# Deep: Dynamic Application Instrumentation for Observability

Deep is an open source, easy-to-use and high-scale distributed dynamic instrumentation engine that can dynamically add logs, metrics, traces and snapshots to your applications at runtime. Deep is cost-efficient, requiring only object storage to operate, and is deeply integrated with Grafana, Prometheus, Grafana Loki and Grafana Tempo.
Deep is a scalable, easy-to-operate, and cost-effective solution for the dynamic instrumentation of applications. Designed with the Grafana Tempo / Prometheus codebase at its core, Deep aims to provide a seamless and efficient approach to runtime application observability.

Deep ingests snapshots and buffers them and then writes them to Azure, GCS, S3 or local disk. As such it is robust, cheap and easy to operate!
Deep introduces a powerful query language, DeepQL a monitoring-first query and command language inspired by PromQL, that facilitates real-time addition and manipulation of logs, metrics, and traces, as well as the collection of data snapshots from live runtime environments. This allows for more effective debugging, increased system visibility, and enhanced performance monitoring.

Deep implements [DeepQL](), a monitoring-first query and command language inspired by PromQL. This query language
allows users to very precisely and easily select snapshots and jump directly to the snapshots fulfilling the specified
conditions, as well as introduce me dynamic monitoring points into your applications.
Deep ingests data, buffers it and then writes it to Azure, GCS, S3 or local disk. As such it is robust, cheap and easy to operate!

Inspired by Grafana Tempo and Prometheus, Deep enhances the observability ecosystem, while maintaining an approachable learning curve and operational simplicity.

## Dynamic Instrumentation: A Fast and Efficient Approach

With Deep's dynamic instrumentation, the time-consuming cycles of code changes, staging, committing, pushing, PR opening, building, testing, and deploying are eliminated. Deep allows you to control your observability at runtime, without having to restart your application or navigate through lengthy deployment pipelines.

By shortening the turnaround time for changes to observability metrics, Deep significantly decreases the Mean Time to Resolution (MTTR) during troubleshooting and debugging processes. This, in turn, can improve system reliability and uptime, benefiting both developers and end users.

## Features

- Employs DeepQL to dynamically add logs, metrics, and traces to your applications. DeepQL provides the flexibility and ease of adjusting your observability parameters in real time.
- Allows for the collection of data snapshots from live runtime environments, providing an efficient way to capture system states for debugging or performance tuning.
- Leverages the existing labels for seamless integration and unified view across your metrics and logs, aligning with your current Grafana and Prometheus-based systems.
- Is supported in Grafana (requires Grafana v10 or above).

## Deep Application Instrumentation Stack

A Deep-based instrumentation stack consists of the following components:

1. **Deep Agent**: Responsible for dynamically instrumenting logs, metrics, traces and creating snapshots and sending them to the Deep Server.
2. **Deep Server**: Main server responsible for storing snapshots, defining tracepoints and processing DeepQL queries.
3. **Grafana**: Used for querying and displaying the logs, metrics, traces and snapshots.

## Philosophy

Deep, like Prometheus, champions a label-based approach to instrumentation. It seeks to provide an easy-to-operate system with no dependencies but diverges from Prometheus by extending beyond metrics to a comprehensive observability suite - including logs, metrics, and traces, as well as the dynamic addition of these components via DeepQL.

Deep strives to be a tool that is not only powerful in its capabilities, but also one that maintains simplicity in its operations.

---

We hope that Deep contributes value to your application monitoring and troubleshooting efforts. We welcome your contributions and feedback.

## Getting Started

Expand Down

0 comments on commit 1f58fb5

Please sign in to comment.