blob: 6e3ef2d2e2c0b49d1dc40f8fcce07b41db216d0d [file] [log] [blame] [view]
# Installation
`Banyand` is the daemon server of the BanyanDB database. This section will show several paths installing it in your environment.
## Get Binaries
### Released binaries
Get binaries from the [download](https://skywalking.apache.org/downloads/).
### Build From Source
#### Requirements
Users who want to build a binary from sources have to set up:
* Go 1.20
* Node 18.16
* Git >= 2.30
* Linux, macOS or Windows+WSL2
* GNU make
#### Windows
BanyanDB is built on Linux and macOS that introduced several platform-specific characters to the building system. Therefore, we highly recommend you use [WSL2+Ubuntu](https://ubuntu.com/wsl) to execute tasks of the Makefile.
#### Build Binaries
To issue the below command to get basic binaries of banyand and bydbctl.
```shell
$ make generate
...
$ make build
...
--- banyand: all ---
make[1]: Entering directory '<path_to_project_root>/banyand'
...
chmod +x build/bin/banyand-server
Done building banyand server
make[1]: Leaving directory '<path_to_project_root>/banyand'
...
--- bydbctl: all ---
make[1]: Entering directory '<path_to_project_root>/bydbctl'
...
chmod +x build/bin/bydbctl
Done building bydbctl
make[1]: Leaving directory '<path_to_project_root>/bydbctl'
```
The build system provides a series of binary options as well.
* `make -C banyand banyand-server` generates a basic `banyand-server`.
* `make -C banyand release` builds out a static binary for releasing.
* `make -C banyand debug` gives a binary for debugging without the complier's optimizations.
* `make -C banyand debug-static` is a static binary for debugging.
* `make -C bydbctl release` cross-builds several binaries for multi-platforms.
Then users get binaries as below
``` shell
$ ls banyand/build/bin
banyand-server
banyand-server-debug
banyand-server-debug-static
banyand-server-static
$ ls banyand/build/bin
bydbctl
```
## Setup Banyand
`Banyand` shows its available commands and arguments by
```shell
$ ./banyand-server
██████╗ █████╗ ███╗ ██╗██╗ ██╗ █████╗ ███╗ ██╗██████╗ ██████╗
██╔══██╗██╔══██╗████╗ ██║╚██╗ ██╔╝██╔══██╗████╗ ██║██╔══██╗██╔══██╗
██████╔╝███████║██╔██╗ ██║ ╚████╔╝ ███████║██╔██╗ ██║██║ ██║██████╔╝
██╔══██╗██╔══██║██║╚██╗██║ ╚██╔╝ ██╔══██║██║╚██╗██║██║ ██║██╔══██╗
██████╔╝██║ ██║██║ ╚████║ ██║ ██║ ██║██║ ╚████║██████╔╝██████╔╝
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═════╝
BanyanDB, as an observability database, aims to ingest, analyze and store Metrics, Tracing and Logging data
Usage:
[command]
Available Commands:
completion generate the autocompletion script for the specified shell
help Help about any command
standalone Run as the standalone mode
Flags:
-h, --help help for this command
-v, --version version for this command
Use " [command] --help" for more information about a command.
```
Banyand is running as a standalone process by
```shell
$ ./banyand-server standalone
██████╗ █████╗ ███╗ ██╗██╗ ██╗ █████╗ ███╗ ██╗██████╗ ██████╗
██╔══██╗██╔══██╗████╗ ██║╚██╗ ██╔╝██╔══██╗████╗ ██║██╔══██╗██╔══██╗
██████╔╝███████║██╔██╗ ██║ ╚████╔╝ ███████║██╔██╗ ██║██║ ██║██████╔╝
██╔══██╗██╔══██║██║╚██╗██║ ╚██╔╝ ██╔══██║██║╚██╗██║██║ ██║██╔══██╗
██████╔╝██║ ██║██║ ╚████║ ██║ ██║ ██║██║ ╚████║██████╔╝██████╔╝
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═════╝
***starting as a standalone server****
...
...
***Listening to**** addr::17912 module:LIAISON-GRPC
```
The banyand-server would be listening on the `0.0.0.0:17912` if no errors occurred.
To discover more options to configure the banyand by
```shell
$ ./banyand-server standalone -h
Usage:
standalone [flags]
Flags:
--addr string the address of banyand listens (default ":17912")
--cert-file string the TLS cert file
--etcd-listen-client-url string A URL to listen on for client traffic (default "http://localhost:2379")
--etcd-listen-peer-url string A URL to listen on for peer traffic (default "http://localhost:2380")
-h, --help help for standalone
--http-addr string listen addr for http (default ":17913")
--http-cert-file string the TLS cert file of http server
--http-grpc-addr string http server redirect grpc requests to this address (default "localhost:17912")
--http-grpc-cert-file string the grpc TLS cert file if grpc server enables tls
--http-key-file string the TLS key file of http server
--http-tls connection uses TLS if true, else plain HTTP
--key-file string the TLS key file
--logging-env string the logging (default "prod")
--logging-level string the root level of logging (default "info")
--logging-levels stringArray the level logging of logging
--logging-modules stringArray the specific module
--max-recv-msg-size bytes the size of max receiving message (default 10.00MiB)
--measure-buffer-size bytes block buffer size (default 4.00MiB)
--measure-encoder-buffer-size bytes block fields buffer size (default 12.00MiB)
--measure-idx-batch-wait-sec int index batch wait in second (default 1)
--measure-root-path string the root path of database (default "/tmp")
--measure-seriesmeta-mem-size bytes series metadata memory size (default 1.00MiB)
--metadata-root-path string the root path of metadata (default "/tmp")
-n, --name string name of this service (default "standalone")
--observability-listener-addr string listen addr for observability (default ":2121")
--pprof-listener-addr string listen addr for pprof (default ":6060")
--show-rungroup-units show rungroup units
--stream-block-buffer-size bytes block buffer size (default 8.00MiB)
--stream-global-index-mem-size bytes global index memory size (default 2.00MiB)
--stream-idx-batch-wait-sec int index batch wait in second (default 1)
--stream-root-path string the root path of database (default "/tmp")
--stream-seriesmeta-mem-size bytes series metadata memory size (default 1.00MiB)
--tls connection uses TLS if true, else plain TCP
-v, --version version for standalone
```