### Install and Start Quickwit UI Source: https://github.com/quickwit-oss/quickwit/blob/main/CONTRIBUTING.md Install UI dependencies and start the UI development server. Access the UI at http://localhost:3000/ui. ```bash yarn --cwd quickwit-ui install && yarn --cwd quickwit-ui start ``` -------------------------------- ### Install Quickwit CLI Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/get-started/tutorials/tutorial-hdfs-logs.md Download and install the Quickwit CLI. Navigate to the extracted directory after installation. ```bash curl -L https://install.quickwit.io | sh cd quickwit-v*/ ``` -------------------------------- ### Install Quickwit using Installer Script Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/get-started/quickstart.md Download and execute the Quickwit installer script. This method is suitable for supported OS/architectures and requires external dependencies. ```bash curl -L https://install.quickwit.io | sh ``` ```bash cd ./quickwit-v*/ ./quickwit --version ``` -------------------------------- ### Start Quickwit Server Source: https://github.com/quickwit-oss/quickwit/blob/main/CONTRIBUTING.md Start the Quickwit server locally. Ensure you are in the `quickwit` subdirectory and have a `qwdata` directory. ```bash cargo r run --config ../config/quickwit.yaml ``` -------------------------------- ### Example Log Output from Indexer Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/log-management/send-logs/using-otel-collector-with-helm.md This is an example of the log output you should see from the Quickwit indexer after the OpenTelemetry Collector has started sending logs. It indicates successful indexing and server startup. ```log 2022-11-30T18:27:37.628Z INFO spawn_merge_pipeline{index=otel-log-v0 gen=0}: quickwit_indexing::actors::merge_pipeline: Spawning merge pipeline. index_id=otel-log-v0 source_id=_ingest-api-source pipeline_ord=0 root_dir=/quickwit/qwdata/indexing/otel-log-v0/_ingest-api-source merge_policy=StableLogMergePolicy { config: StableLogMergePolicyConfig { min_level_num_docs: 100000, merge_factor: 10, max_merge_factor: 12, maturation_period: 172800s }, split_num_docs_target: 10000000 } 2022-11-30T18:27:37.628Z INFO quickwit_serve::grpc: Starting gRPC server. enabled_grpc_services={"otlp-log", "otlp-trace"} grpc_listen_addr=0.0.0.0:7281 2022-11-30T18:27:37.628Z INFO quickwit_serve::rest: Starting REST server. rest_listen_addr=0.0.0.0:7280 2022-11-30T18:27:37.628Z INFO quickwit_serve::rest: Searcher ready to accept requests at http://0.0.0.0:7280/ 2022-11-30T18:27:42.654Z INFO quickwit_indexing::actors::indexer: new-split split_id="01GK4WPTXK8GH3AGTRNBN9A8YG" partition_id=0 2022-11-30T18:27:52.643Z INFO quickwit_indexing::actors::indexer: send-to-index-serializer commit_trigger=Timeout split_ids=01GK4WPTXK8GH3AGTRNBN9A8YG num_docs=22 2022-11-30T18:27:52.652Z INFO index_batch{index_id=otel-log-v0 source_id=_ingest-api-source pipeline_ord=0}:packager: quickwit_indexing::actors::packager: start-packaging-splits split_ids=["01GK4WPTXK8GH3AGTRNBN9A8YG"] 2022-11-30T18:27:52.652Z INFO index_batch{index_id=otel-log-v0 source_id=_ingest-api-source pipeline_ord=0}:packager: quickwit_indexing::actors::packager: create-packaged-split split_id="01GK4WPTXK8GH3AGTRNBN9A8YG" 2022-11-30T18:27:52.653Z INFO index_batch{index_id=otel-log-v0 source_id=_ingest-api-source pipeline_ord=0}:uploader: quickwit_indexing::actors::uploader: start-stage-and-store-splits split_ids=["01GK4WPTXK8GH3AGTRNBN9A8YG"] 2022-11-30T18:27:52.733Z INFO index_batch{index_id=otel-log-v0 source_id=_ingest-api-source pipeline_ord=0}:uploader:stage_and_upload{split=01GK4WPTXK8GH3AGTRNBN9A8YG}:store_split: quickwit_indexing::split_store::indexing_split_store: store-split-remote-success split_size_in_megabytes=0.018351 num_docs=22 elapsed_secs=0.07654519 throughput_mb_s=0.23974074 is_mature=false ``` -------------------------------- ### List sources in an index Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/reference/cli.md Lists all configured sources for a given index. Requires the index ID. The example shows how to list sources after starting the Quickwit server. ```bash # Start a Quickwit server. quickwit run --service metastore --config=./config/quickwit.yaml # Open a new terminal and run: quickwit source list --endpoint=http://127.0.0.1:7280 --index wikipedia ``` -------------------------------- ### Start Quickwit Metastore Service Source: https://github.com/quickwit-oss/quickwit/blob/main/quickwit/quickwit-metastore-utils/src/bin/README.md Command to start the quickwit metastore service. This is a prerequisite for running the replay utility. ```bash ./quickwit run --service metastore ``` -------------------------------- ### Start Quickwit Server with CLI Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/log-management/send-logs/using-vector.md Starts a Quickwit server instance using the command-line interface. Ensure the data directory is created beforehand. ```bash # Create Quickwit data dir. mkdir qwdata ./quickwit run ``` -------------------------------- ### Install any latest Quickwit release Source: https://github.com/quickwit-oss/quickwit/blob/main/CONTRIBUTING.md Manually pull and execute the installation script with the --allow-any-latest-version flag to install alpha, beta, or rc releases. ```bash ./install.sh --allow-any-latest-version ``` -------------------------------- ### Start Quickwit Server Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/distributed-tracing/send-traces/using-otel-collector.md Run the Quickwit server locally. This command is used to start the Quickwit instance before sending traces. ```bash ./quickwit run ``` -------------------------------- ### Start PostgreSQL for Testing Source: https://github.com/quickwit-oss/quickwit/blob/main/quickwit/quickwit-metastore/README.md Starts the PostgreSQL service using the provided Makefile for comprehensive testing, including PostgresqlMetastore. ```bash $ make docker-compose-up DOCKER_SERVICES=postgres ``` -------------------------------- ### Install rust-license-tool Source: https://github.com/quickwit-oss/quickwit/blob/main/CONTRIBUTING.md Install the rust-license-tool from its Git repository to manage project licenses. ```bash cargo install --git https://github.com/DataDog/rust-license-tool ``` -------------------------------- ### Start Quickwit for End-to-End Testing Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/internals/BENCHMARKING.md Start Quickwit in release mode with a specified configuration file to prepare for end-to-end performance testing. ```bash cargo run --release -p quickwit-cli -- run --config ../config/quickwit.yaml ``` -------------------------------- ### Install sqlx-cli Source: https://github.com/quickwit-oss/quickwit/blob/main/quickwit/quickwit-metastore/README.md Installs the sqlx-cli command-line tool, which can be used for managing database migrations. ```bash cargo install sqlx-cli ``` -------------------------------- ### Install build dependencies on Ubuntu Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/get-started/installation.md Installs necessary development dependencies for compiling Quickwit on Ubuntu. ```bash apt install -y clang protobuf-compiler libssl-dev pkg-config cmake ``` -------------------------------- ### Start Fluentbit service Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/log-management/send-logs/using-fluentbit.md Start the Fluent Bit service using the specified configuration file to begin sending logs. ```bash fluent-bit -c fluent-bit.conf ``` -------------------------------- ### Start Indexer and Metastore Services Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/reference/cli.md Starts the indexer and metastore services for Quickwit. The '--endpoint' flag specifies the address for the REST API. ```bash quickwit run --service indexer --service metastore --endpoint=http://127.0.0.1:7280 ``` -------------------------------- ### Verify Quickwit installation with Docker Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/get-started/installation.md Use this command to pull the Quickwit Docker image and verify the installation by checking the version. This is a quick way to get started if you use Docker. ```bash docker run --rm quickwit/quickwit --version ``` -------------------------------- ### Initialize and Apply Example Stack Source: https://github.com/quickwit-oss/quickwit/blob/main/distribution/ecs/README.md Run these commands in the ./example directory to deploy the Quickwit stack, including the bastion host and Quickwit cluster. This will provision all necessary AWS resources. ```bash terraform init terraform apply ``` -------------------------------- ### Get Index Metadata Request Example Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/reference/rest-api.md Use this GET request to retrieve the metadata for a specific index. Replace `` with the actual index identifier. ```http GET api/v1/indexes/ ``` -------------------------------- ### Display Help Information Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/reference/cli.md Use 'quickwit' or 'quickwit --help' to see available commands. Use ' --help' for specific command documentation and examples. ```bash quickwit --help ``` ```bash quickwit --help ``` -------------------------------- ### Setup Python Virtual Environment with Pipenv Source: https://github.com/quickwit-oss/quickwit/blob/main/quickwit/rest-api-tests/README.md Activates a Pipenv shell and installs project dependencies within a virtual environment. ```bash pipenv shell pipenv install ``` -------------------------------- ### Start Quickwit Server Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/ingest-data/kinesis.md Launches the Quickwit service in server mode to begin indexing and searching. ```bash # Finally, execute this command to start Quickwit in server mode. ./quickwit server ``` -------------------------------- ### Create Kafka Source Configuration Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/reference/rest-api.md Example JSON payload for creating a new Kafka source. Ensure the version matches your Quickwit installation and the source_id is unique. ```json { "version": "0.8", "source_id": "kafka-source", "source_type": "kafka", "params": { "topic": "quickwit-fts-staging", "client_params": { "bootstrap.servers": "kafka-quickwit-server:9092" } } } ``` -------------------------------- ### Pulsar Indexing Pipeline Log Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/ingest-data/pulsar.md Example log output indicating that Quickwit has started an indexing pipeline for the Pulsar source. This confirms the source is active and consuming data. ```bash INFO spawn_pipeline{index=stackoverflow gen=0}:pulsar-consumer{subscription_name="quickwit-stackoverflow-pulsar-source" params=PulsarSourceParams { topics: ["stackoverflow"], address: "pulsar://localhost:6650", consumer_name: "quickwit", authentication: None } current_positions={}}: quickwit_indexing::source::pulsar_source: Seeking to last checkpoint positions. positions={} ``` -------------------------------- ### Setup and Run Pulsar Data Ingestion Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/ingest-data/pulsar.md These commands download the dataset, install the Pulsar Python client (requires Python < 3.11), and execute the data ingestion script. ```bash # Download the first 10_000 Stackoverflow posts articles. curl -O https://quickwit-datasets-public.s3.amazonaws.com/stackoverflow.posts.transformed-10000.json # Install pulsar python client. # Requires a python version < 3.11 pip3 install 'pulsar-client==2.10.1' wget https://raw.githubusercontent.com/quickwit-oss/quickwit/main/config/tutorials/stackoverflow/send_messages_to_pulsar.py python3 send_messages_to_pulsar.py ``` -------------------------------- ### Start Searcher and Metastore Services for Search Queries Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/reference/cli.md Launches the searcher and metastore services to enable search requests. Assumes index creation and data ingestion are done separately. A curl command demonstrates making a search request. ```bash quickwit run --service searcher --service metastore --config=./config/quickwit.yaml # Make a request. curl "http://127.0.0.1:7280/api/v1/wikipedia/search?query=barack+obama" ``` -------------------------------- ### Basic Actor Ping-Pong Example Source: https://github.com/quickwit-oss/quickwit/blob/main/quickwit/quickwit-actors/README.md Demonstrates a simple actor setup with a sender and receiver. The sender periodically sends a 'Ping' message to the receiver and prints the 'Pong' reply. It also schedules itself to send messages after a delay. ```rust use std::time::Duration; use async_trait::async_trait; use quickwit_actors::{Handler, Actor, Universe, ActorContext, ActorExitStatus, Mailbox}; #[derive(Default)] struct PingReceiver; impl Actor for PingReceiver { type ObservableState = (); fn observable_state(&self) -> Self::ObservableState {} } #[async_trait] impl Handler for PingReceiver { type Reply = String; async fn handle( &mut self, _msg: Ping, _ctx: &ActorContext, ) -> Result { Ok("Pong".to_string()) } } struct PingSender { peer: Mailbox, } #[derive(Debug)] struct Loop; #[derive(Debug)] struct Ping; #[async_trait] impl Actor for PingSender { type ObservableState = (); fn observable_state(&self) -> Self::ObservableState {} async fn initialize(&mut self, ctx: &ActorContext) -> Result<(),ActorExitStatus> { ctx.send_self_message(Loop).await?; Ok(()) } } #[async_trait] impl Handler for PingSender { type Reply = (); async fn handle( &mut self, _: Loop, ctx: &ActorContext, ) -> Result<(), ActorExitStatus> { let reply_msg = ctx.ask(&self.peer, Ping).await.unwrap(); println!("{reply_msg}"); ctx.schedule_self_msg(Duration::from_secs(1), Loop).await; Ok(()) } } #[tokio::main] async fn main() { let universe = Universe::new(); let (recv_mailbox, _) = universe.spawn_actor(PingReceiver::default()).spawn(); let ping_sender = PingSender { peer: recv_mailbox }; let (_, ping_sender_handler) = universe.spawn_actor(ping_sender).spawn(); ping_sender_handler.join().await; } ``` -------------------------------- ### Run UI Tests Source: https://github.com/quickwit-oss/quickwit/blob/main/CONTRIBUTING.md Install UI dependencies and run the UI tests. This should be executed from the `quickwit` directory. ```bash yarn --cwd quickwit-ui install && yarn --cwd quickwit-ui test ``` -------------------------------- ### Start Control Plane, Metastore, and Janitor Services Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/reference/cli.md Initiates the control plane, metastore, and janitor services using a specified configuration file. ```bash quickwit run --service control_plane --service metastore --service janitor --config=./config/quickwit.yaml ``` -------------------------------- ### Install TLA+ Toolbox via Homebrew Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/internals/specs/tla/README.md Installs the TLA+ Toolbox using Homebrew. Ensure Java is installed separately. ```bash brew install tlaplus ``` -------------------------------- ### Get Index Template GET Request Source: https://github.com/quickwit-oss/quickwit/blob/main/docs/reference/rest-api.md Retrieve a specific index template configuration by its ID using a GET request to this endpoint. ```http GET api/v1/templates/