-
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
168 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
--- | ||
outline: deep | ||
--- | ||
|
||
# Overview | ||
|
||
**Pinorama** is a suite of tools designed to help store, explore, and analyze logs from Node.js applications, specifically those generated by [Pino Logger](http://getpino.io/). It's built for development environments, offering flexible options for both real-time and post-mortem log analysis. | ||
|
||
::: tip | ||
**Need a Quick Start?** 🚀 | ||
|
||
If you're looking to get started quickly, check out [Pinorama Studio](/studio/), a Web App and CLI that allows you to store, view, filter, and analyze logs with minimal setup. | ||
::: | ||
|
||
## Understanding the suite | ||
|
||
Pinorama is made up of 4 key components, each with a specific role: | ||
|
||
### 1. Pinorama Studio ⭐ | ||
|
||
If you’re looking to get started quickly, Pinorama Studio is the tool for you. It’s a web app and CLI that allows you to store, view, filter, and analyze logs with minimal setup. It works only with Pino structured JSON format logs. Studio can also function as a server when launched with the `--server` option, making it a ideal for scenarios where you want to both receive and view logs in real-time like development environments or debugging sessions. | ||
|
||
### 2. Pinorama Client | ||
|
||
An isomorphic library that works in both Node.js and the Browser. It’s essentially an HTTP client that mirrors [Orama Search’s API](https://docs.orama.com/open-source/usage/search/introduction), allowing you to interact with an Orama instance through Pinorama Server. | ||
However, this tool is typically used internally by Studio and Transport, so you probably won’t need to interact with it directly unless you’re building a custom solution. | ||
|
||
### 3. Pinorama Server | ||
|
||
A web server built on Fastify that exposes RESTful endpoints for storing and retrieving logs via [Orama](https://askorama.ai/). It's ideal for cases where you need to index logs with custom structures, customize log line styles (such as colors and formatters), or set up a server to collect and expose logs for real-time access through `pinorama-studio`. Pinorama Server can be deployed as a standalone application or integrated into existing projects as a Fastify plugin. | ||
|
||
### 4. Pinorama Transport | ||
|
||
Pinorama Transport is used primarily as a [transport](https://getpino.io/#/docs/transports) layer for Pino Logger. It can be integrated programmatically into your Node.js applications to stream logs to a Pinorama Server, or used via CLI to send logs from the terminal using piped output. This flexibility makes it ideal for both automated logging and manual log transmission from processes. | ||
|
||
## How it works | ||
|
||
Here’s a quick look at how the different components of Pinorama fit together: | ||
|
||
1. **Generate Logs (Pino Logger):** | ||
- **Pino Logger** creates logs in a structured JSON format as your Node.js application runs. These logs capture essential events and data, forming the basis for further processing and analysis. | ||
|
||
2. **Stream Logs (Pinorama Transport with Pinorama Client):** | ||
- **Pinorama Transport** streams these logs to **Pinorama Server**. This can be done programmatically within your application or via CLI using piped output. **Pinorama Client** is used internally by Transport to send HTTP requests to **Pinorama Server**'s RESTful endpoints. | ||
|
||
3. **Store and Index Logs (Pinorama Server):** | ||
- **Pinorama Server** receives the logs from **Pinorama Transport**. It stores and indexes these logs in memory using **Orama Search**, making them available for retrieval and analysis through its RESTful API. | ||
|
||
4. **Explore Logs (Pinorama Studio with Pinorama Client):** | ||
- **Pinorama Studio** allows you to explore the stored logs through a web-based user interface. It connects to **Pinorama Server** using **Pinorama Client**, enabling real-time log viewing, filtering, and analysis. | ||
|
||
## When to use | ||
|
||
::: tip | ||
**For Development:** Pinorama is perfect for local development, offering tools for both live log streaming and detailed post-mortem analysis. | ||
::: | ||
|
||
::: danger | ||
**Avoid Production!** Pinorama Server is not recommended for production environments due to its in-memory log storage. | ||
::: |