Observability is the practice of understanding the internal state of a system from its output. It’s based on a trio of key indicators: logs, metrics, and traces. Because metrics and traces are numerical, it’s easy to visualize that data through graphics. Logs are unfortunately text heavy and relatively difficult to visualize or observe.
No matter the data type and its underlying nature, actionable log data helps you solve problems and make smarter business decisions. And that’s where Parseable comes in.
Introducing Parseable
The SaaS observability ecosystem is thriving, but there’s little to no movement in open source, developer-friendly observability platforms. That’s what we’re looking to address with Parseable.
Parseable is an open source, developer-centric platform created to ingest and query log data. It’s designed to be efficient, easy to use, and highly flexible. To achieve this, Parseable uses a cloud-native, containerized architectural approach to create a simple and dependency-free platform.
Specifically, Parseable uses Apache Arrow and Parquet under the hood to efficiently store log data and query at blazingly fast speeds. It uses S3 or other compatible storage platforms to support seamless storage while remaining stateless.
What’s unique about Parseable?
Here are some exciting features that set Parseable apart from other observability platforms:
- It maintains a SQL-compatible API for querying log data.
- The Parquet open data format enables complete data ownership and wide-ranging possibilities for data analysis.
- The single binary and container-based deployment model (including UI) helps you deploy in minutes — if not seconds.
- Its indexing-free design rivals the performance of indexed systems while offering lower CPU usage and less storage overhead.
- It’s written in Rust with low latency and high throughput.
How does Parseable work?
Parseable exposes HTTP REST API endpoints. This lets you ingest, query, and manage your log streams on the Parseable server. There are three major API categories:
- Log stream creation, ingestion, and management
- Log stream query and search
- Overall health status
API reference information and examples are available on the Parseable public workspace, at Postman.
Parseable is compatible with standard logging agents like FluentBit, LogStash, Vector, syslog
and others via their HTTP output agents. It also offers a built-in, intuitive GUI for log query and analysis.
Why use the Parseable Docker extension?
Docker Extensions help you build and integrate software applications into your daily workflows. With the Parseable extension, we aim to provide a simple, one-click approach for deploying Parseable.
Once the extension is installed and running, you’ll have a running Parseable server that can ingest logs from any logging agents or directly from your application. You’ll also have access to the Parseable UI.
Overall, the Parseable extension brings richer log observability to development platforms.
Getting started with Parseable
Prerequisites
- A Docker Desktop installation
- MinIO Object Storage (or S3 if available)
- Credentials for read-write access to object storage
- An object storage bucket
Hop into Docker Desktop and confirm that the Docker Extensions feature is enabled. Click the Settings gear > Extensions tab > check the “Enable Docker Extensions” box:
Installing the Parseable Docker extension
While we’re working to bring Parseable to the Extensions Marketplace, you’ll currently need to download it via the CLI. Launch your terminal and run the following command to clone the GitHub repository and install the Parseable Extension:
git clone https://github.com/parseablehq/parseable-docker-extension
cd parseable-docker-extension
make install-extension
The Parseable extension will appear in the Docker Dashboard’s left sidebar, under the Extensions heading.
Using Parseable
Parseable requires you to enter the following configuration settings and environment variables during the initial setup:
- Local Port Number (the port number you want Parseable listening on)
- Local Storage Path (the path within the container where Parseable stages data)
- Local Volume Path (the path where your local storage path is mounted)
- S3/MinIO URL
- S3/MinIO Bucket Name
- S3/MinIO Access Key
- S3/MinIO Secret Key
- S3/MinIO Region
Click “Deploy” after you’ve entered all required configuration details.
You should see the URL http://localhost:8000 within the extension window:
Next, Docker Desktop will redirect you to your browser’s login page. Your credentials are identical to what you provided in the Login Credentials section (default user/password: parseable, parseable):
After logging in, you’ll see the logs page with the option to select a log stream. If you used the default MinIO bucket embedded in the Extensions UI, some demo data is already present. Alternatively, if you’re using your own S3-compatible bucket, use the Parseable API to create a log stream and send logs to the log stream.
Once you’re done, you can choose a log stream and the time range for which you want the logs. You can even add filters and search fields:
Parseable currently supports data filtering by label, metadata, and specific column values. For example, you can choose a column and specify an operator or value for the column. Only the log data rows matching this filter will be shown. We’re working on improving this with support for multiple-column data types.
This entire process takes about a minute. To see it in action, check out this quick walkthrough video:
Try Parseable today!
In this post, we quickly showcased Parseable and its key features. You also learned how to locally run it with a single click using the extension. Finally, we explored how to ingest logs to your running Parseable instance and query those logs via the Parseable UI.
But, you can test drive Parseable for yourself, today! Follow our CLI workflow to install this extension directly. Plus, keep an eye out for Parseable’s launch on the Extensions Marketplace — it’s coming soon!
To learn more, join the Parseable community on Slack and help us spread the word by adding a star to the repo.
We really hope you enjoyed this article and this new approach to log data ingestion and query. Docker Extensions makes this single-click approach possible.
Contribute to the Parseable Docker extension
We’re committed to making Parseable more powerful for our developers and users — and we need help! We’re actively looking for contributors to the Parseable Docker extension project.
The current code is simple and easy to get started with, and we’re always around to give potential contributors a hand. This can be a great first project, so please feel free to share your ideas.