### Enable and Start Prometheus Service Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/installation Enables and starts the Prometheus service on the system using systemctl. ```bash sudo systemctl enable --now prometheus ``` -------------------------------- ### Enable and Start Prometheus Service (Bash) Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/manual-install Enables the Prometheus service to start on boot, starts the service immediately, and checks its status. ```bash sudo systemctl enable prometheus sudo systemctl start prometheus sudo systemctl status prometheus ``` -------------------------------- ### Start BindPlane Rollout with Options Source: https://docs.bindplane.com/cli/reference Example of starting a BindPlane rollout with specific parameters like maximum errors, initial agent count, and multipliers. Also shows how to start all rollouts. ```bash # Start rollout with options bindplane rollout start my-config --max-errors 5 --initial 10 --multiplier 2 --max 100 # Start all rollouts bindplane rollout start --all # Check status bindplane rollout status my-config ``` -------------------------------- ### Initialize Bindplane Installation Source: https://docs.bindplane.com/cli/reference Commands for initializing different aspects of a Bindplane installation, including server setup, client configuration, LDAP migration, authentication setup, and license key application. ```bash bindplane init server ``` ```bash bindplane init client ``` ```bash bindplane init ldap ``` ```bash bindplane init auth ``` ```bash bindplane init license ``` -------------------------------- ### Install Prometheus Binaries (Bash) Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/manual-install Copies the Prometheus and promtool binaries to /usr/bin for system-wide access. ```bash sudo cp prometheus/prometheus /usr/bin/prometheus sudo cp prometheus/promtool /usr/bin/promtool ``` -------------------------------- ### Start Minikube Source: https://docs.bindplane.com/how-to-guides/postgres/postgres-store Starts a Minikube cluster with specified resources. This command is used to set up a local Kubernetes environment for testing Bindplane deployments. Requires Minikube to be installed. ```bash minikube start \ --nodes 1 \ --cpus 4 \ --memory 12g ``` -------------------------------- ### Enable and Start Bindplane Service (Shell) Source: https://docs.bindplane.com/deployment/google-marketplace These commands are used to enable the Bindplane service to start automatically on boot and then start the service immediately. They require root privileges and utilize systemctl for service management. ```shell sudo systemctl enable bindplane sudo systemctl start bindplane ``` -------------------------------- ### Install Bindplane Client on Linux (AMD64) Source: https://docs.bindplane.com/cli/installation Installs the Bindplane Client on Linux for AMD64 architecture. It downloads the zip file, extracts it, and moves the binary to the system's PATH. ```bash mkdir bindplane curl -L -o bindplane/bindplane.zip https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/bindplane-ee-linux-amd64.zip unzip bindplane/bindplane.zip -d bindplane/ sudo mv bindplane/bindplane /usr/local/bin/bindplane mkdir -p ~/.bindplane/ ``` -------------------------------- ### Install Bindplane Prometheus Package Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/installation Installs the downloaded Bindplane Prometheus package using the appropriate package manager for Debian or RHEL-based systems. ```bash sudo apt-get install -f ./bindplane-prometheus.deb ``` ```bash sudo yum install bindplane-prometheus.rpm ``` -------------------------------- ### Install Bindplane Client on macOS (ARM64) Source: https://docs.bindplane.com/cli/installation Installs the Bindplane Client on macOS for ARM64 architecture. It downloads the zip file, extracts it, and moves the binary to the system's PATH. ```bash mkdir bindplane curl -L -o bindplane/bindplane.zip https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/bindplane-ee-darwin-arm64.zip unzip bindplane/bindplane.zip -d bindplane/ sudo mv bindplane/bindplane /usr/local/bin/bindplane mkdir -p ~/.bindplane/ ``` -------------------------------- ### Install Bindplane Client on macOS (AMD64) Source: https://docs.bindplane.com/cli/installation Installs the Bindplane Client on macOS for AMD64 architecture. It downloads the zip file, extracts it, and moves the binary to the system's PATH. ```bash mkdir bindplane curl -L -o bindplane/bindplane.zip https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/bindplane-ee-darwin-amd64.zip unzip bindplane/bindplane.zip -d bindplane/ sudo mv bindplane/bindplane /usr/local/bin/bindplane mkdir -p ~/.bindplane/ ``` -------------------------------- ### Download Prometheus Release (Bash) Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/manual-install Downloads the Prometheus release archive. Supports both AMD64 and ARM64 architectures using curl. ```bash curl -L \ -o prometheus.tar.gz \ https://github.com/prometheus/prometheus/releases/download/v2.47.2/prometheus-2.47.2.linux-amd64.tar.gz ``` ```bash curl -L \ -o prometheus.tar.gz \ https://github.com/prometheus/prometheus/releases/download/v2.47.2/prometheus-2.47.2.linux-arm64.tar.gz ``` -------------------------------- ### Populate prometheus.yml (Bash) Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/manual-install Populates the main Prometheus configuration file, specifying rule files and an empty scrape_configs section. ```bash sudo tee /etc/prometheus/prometheus.yml <<'EOF' scrape_configs: [] rule_files: [/etc/prometheus/rules.yml] EOF ``` -------------------------------- ### Install Bindplane Client on Windows (AMD64) Source: https://docs.bindplane.com/cli/installation Installs the Bindplane Client on Windows for AMD64 architecture using PowerShell. It creates a directory, adds it to the system PATH, downloads the zip, and extracts it. ```powershell $installPath = "$env:ProgramFiles\bindplane-cli" if (-not (Test-Path -Path $installPath)) { New-Item -Path $installPath -ItemType Directory Write-Host "Folder created successfully: $installPath" } else { Write-Host "Folder already exists: $installPath" } $currentMachinePath = [System.Environment]::GetEnvironmentVariable("Path", "Machine") if ($currentMachinePath -notlike "*$installPath*") { [System.Environment]::SetEnvironmentVariable("Path", "$currentMachinePath;$installPath", "Machine") } $downloadPath = Join-Path -Path "$env:USERPROFILE\Downloads" -ChildPath bindplane-ee-windows-amd64.zip Invoke-WebRequest -Uri https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/bindplane-ee-windows-amd64.zip -OutFile $downloadPath Expand-Archive -Path $downloadPath -DestinationPath $installPath -Force ``` -------------------------------- ### Download Bindplane Prometheus for RHEL/AMD64 Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/installation Downloads the RHEL package (AMD64 architecture) for Bindplane's Prometheus integration using curl. ```bash curl -L \ -o bindplane-prometheus.rpm \ https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/bindplane-prometheus_linux_amd64.rpm ``` -------------------------------- ### Download Bindplane Prometheus for RHEL/ARM64 Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/installation Downloads the RHEL package (ARM64 architecture) for Bindplane's Prometheus integration using curl. ```bash curl -L \ -o bindplane-prometheus.rpm \ https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/bindplane-prometheus_linux_arm64.rpm ``` -------------------------------- ### Configure Prometheus Directories and Permissions (Bash) Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/manual-install Creates configuration directories (/etc/prometheus) and storage directories (/var/lib/prometheus), sets permissions, and assigns ownership to the 'prometheus' user. ```bash sudo mkdir /etc/prometheus sudo touch \ /etc/prometheus/prometheus.yml \ /etc/prometheus/rules.yml \ /etc/prometheus/web.yml sudo chmod 0750 /etc/prometheus sudo chmod 0600 /etc/prometheus/prometheus.yml sudo chmod 0600 /etc/prometheus/rules.yml sudo chmod 0600 /etc/prometheus/web.yml sudo chown -R prometheus:prometheus /etc/prometheus sudo mkdir /var/lib/prometheus sudo mkdir /var/lib/prometheus/tsdb sudo mv prometheus/console_libraries /var/lib/prometheus sudo mv prometheus/consoles /var/lib/prometheus sudo chmod 0750 /var/lib/prometheus sudo chown -R prometheus:prometheus /var/lib/prometheus ``` -------------------------------- ### Terraform Configuration Example (Simple) Source: https://docs.bindplane.com/configuration/bindplane/terraform A simple example demonstrating the integration of Bindplane resources within a Terraform configuration. This showcases a basic setup. ```terraform terraform { required_providers { bindplane = { source = "observIQ/bindplane" version = "~> 0.1.0" } } } provider "bindplane" { url = "https://api.bindplane.com" token = "YOUR_API_TOKEN" } resource "bindplane_source_host" "default" { name = "host-source" path = "/var/log/messages" } ``` -------------------------------- ### Download Bindplane Prometheus for Debian/AMD64 Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/installation Downloads the Debian package (AMD64 architecture) for Bindplane's Prometheus integration using curl. ```bash curl -L \ -o bindplane-prometheus.deb \ https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/bindplane-prometheus_linux_amd64.deb ``` -------------------------------- ### Install Bindplane Server on Linux Source: https://docs.bindplane.com/deployment/virtual-machine/bindplane/install-bindplane-server This command downloads the latest Bindplane installation script for Linux, executes it for initialization, and then removes the script. Ensure you have a Bindplane license key and a PostgreSQL database set up before running this command. ```bash curl -fsSlL https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/install-linux.sh -o install-linux.sh && bash install-linux.sh --init && rm install-linux.sh ``` -------------------------------- ### Download Bindplane Prometheus for Debian/ARM64 Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/installation Downloads the Debian package (ARM64 architecture) for Bindplane's Prometheus integration using curl. ```bash curl -L \ -o bindplane-prometheus.deb \ https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/bindplane-prometheus_linux_arm64.deb ``` -------------------------------- ### Create Prometheus Systemd Service (Bash) Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/manual-install Creates a systemd service file for Prometheus, specifying user, group, execution path, configuration files, storage path, and web listen address. ```bash sudo touch /usr/lib/systemd/system/prometheus.service sudo chmod 0640 /usr/lib/systemd/system/prometheus.service sudo tee /usr/lib/systemd/system/prometheus.service <<'EOF' [Unit] Description=Prometheus Documentation=https://prometheus.io/docs/introduction/overview/ Wants=network-online.target After=network-online.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/bin/prometheus \ --config.file /etc/prometheus/prometheus.yml \ --web.config.file /etc/prometheus/web.yml \ --storage.tsdb.retention.time 2d \ --web.enable-remote-write-receiver \ --web.listen-address :9090 \ --storage.tsdb.path /var/lib/prometheus/tsdb \ --web.console.templates=/var/lib/prometheus/consoles \ --web.console.libraries=/var/lib/prometheus/console_libraries [Install] WantedBy=multi-user.target EOF ``` -------------------------------- ### Splunk Search Query Example Source: https://docs.bindplane.com/integrations/sources/splunk-search-api An example of a valid Splunk search query to be used as a source. The query must start with the 'search' command and should not include additional commands or time fields. ```Splunk search index=my_index ``` -------------------------------- ### Create Prometheus User and Group (Bash) Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/manual-install Creates a system user and group named 'prometheus' for running the Prometheus process, ensuring it runs with restricted privileges using /sbin/nologin. ```bash sudo groupadd --system prometheus sudo useradd -s /sbin/nologin --system -g prometheus prometheus ``` -------------------------------- ### Install Bindplane Source: https://docs.bindplane.com/how-to-guides/postgres/postgres-store Downloads and executes the Bindplane installation script for Linux. It specifies the version and initializes the configuration. Ensure you have `curl` and `bash` installed. ```bash curl \ -fsSlL https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/install-linux.sh \ -o install-linux.sh bash install-linux.sh \ --version 1.72.1 \ --init && rm install-linux.sh ``` -------------------------------- ### Manage Postgres Service (Bash) Source: https://docs.bindplane.com/how-to-guides/postgres/postgres-store Starts the PostgreSQL service and enables it to launch automatically on system boot. The `--now` flag ensures the service starts immediately after enabling. ```bash sudo systemctl start postgresql.service sudo systemctl enable --now postgresql.service ``` -------------------------------- ### Extract Prometheus Archive (Bash) Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/manual-install Extracts the downloaded Prometheus tarball into a 'prometheus' directory, stripping the top-level directory component. ```bash mkdir prometheus tar -xf prometheus.tar.gz --strip-components=1 -C prometheus ``` -------------------------------- ### Initialize Bindplane with License Key (Shell) Source: https://docs.bindplane.com/deployment/google-marketplace This command initializes Bindplane Enterprise with a license key after deployment if the key was not provided during the initial setup. It requires root privileges and specifies the configuration directory. ```shell sudo BINDPLANE_CONFIG_HOME=/var/lib/bindplane /usr/local/bin/bindplane init license --config /etc/bindplane/config.yaml ``` -------------------------------- ### Install Postgres 16 (Bash) Source: https://docs.bindplane.com/how-to-guides/postgres/postgres-store Updates the package list and installs PostgreSQL version 16 from the configured apt repository. This command fetches and installs the necessary database server files. ```bash sudo apt-get update sudo apt-get install postgresql-16 ``` -------------------------------- ### Troubleshoot Service Startup Failures Source: https://docs.bindplane.com/how-to-guides/collector-linux-username-migration Provides commands to diagnose and resolve issues if the collector service fails to start after the migration. This includes checking user existence, service logs, systemd configuration, and file permissions. ```bash id bdot journalctl -u observiq-otel-collector -f sudo systemctl cat observiq-otel-collector ls -la /opt/observiq-otel-collector/ ``` -------------------------------- ### Add BindPlane User Example Source: https://docs.bindplane.com/cli/reference Example demonstrating how to add a user to BindPlane with their email and username, and the flag to create the user if they are not already present. ```bash bindplane add user --email user@example.com --name username --create ``` -------------------------------- ### BindPlane Database Migration Examples Source: https://docs.bindplane.com/cli/reference Examples for performing BindPlane database migrations, including migrating to the latest version, a specific version, and performing a full vacuum without confirmation. ```bash # Migrate to latest bindplane migrate # Migrate to specific version bindplane migrate v1.30.0 # Non-interactive migration bindplane migrate -y ``` -------------------------------- ### Start Rollout - POST /v1/rollouts/{name}/start Source: https://docs.bindplane.com/api Starts a paused or pending rollout. ```HTTP POST /v1/rollouts/{name}/start ``` -------------------------------- ### BindPlane Secret Key Management Examples Source: https://docs.bindplane.com/cli/reference Examples for managing BindPlane secret keys, such as listing all keys, adding a new key, and setting a key as the default. ```bash # List all secret keys bindplane secret get # Add new secret key bindplane secret add # Set default key bindplane secret default my-key ``` -------------------------------- ### Bindplane Configuration Export Example Source: https://docs.bindplane.com/cli/reference Example of exporting Bindplane configurations to a file for backup or migration purposes. ```bash bindplane get configuration --export > backup.yaml ``` -------------------------------- ### Bindplane Postgres Configuration Example (YAML) Source: https://docs.bindplane.com/configuration/bindplane An example YAML configuration demonstrating how to set up Bindplane to use a local Postgres database as its storage backend. This includes basic connection details and security settings. ```yaml name: default apiVersion: bindplane.observiq.com/v1 auth: username: user password: password network: host: 0.0.0.0 port: '3001' remoteURL: http://10.99.1.10:3001 store: type: postgres postgres: host: localhost port: '5432' database: bindplane sslmode: disable username: postgres password: password maxConnections: 200 ``` -------------------------------- ### Standalone Extension Example Source: https://docs.bindplane.com/configuration/bindplane-otel-collector/extensions/go-performance-profiler Example of configuring the Go Performance Profiler as a standalone extension using YAML. ```APIDOC ## Standalone Extension Example ### Description Demonstrates how to configure the Go Performance Profiler as a standalone `Extension` resource. ### Request Example ```yaml apiVersion: bindplane.observiq.com/v1 kind: Extension metadata: name: go-pprof spec: type: pprof parameters: - name: listen_address value: 127.0.0.1 - name: tcp_port value: 1777 - name: block_profile_fraction value: 0 - name: mutex_profile_fraction value: 0 - name: should_write_file value: true - name: cpu_profile_file_name value: $OIQ_OTEL_COLLECTOR_HOME/observiq-otel-collector.pprof ``` ``` -------------------------------- ### Bindplane CLI Profile Usage Examples Source: https://docs.bindplane.com/cli/reference Demonstrates practical usage of Bindplane CLI profiles, including creating, using, and listing profiles. ```bash # Create and use a new profile bindplane profile create production bindplane profile use production # List all profiles bindplane profile list # Get current profile details bindplane profile get ``` -------------------------------- ### Install Bindplane using curl script Source: https://docs.bindplane.com/how-to-guides/multi-node-architecture-on-google-cloud This script downloads the latest Bindplane installation script from Google Cloud Storage, executes it, and then removes the script. It's designed for Linux environments. ```bash curl -fsSlL https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/install-linux.sh -o install-linux.sh && bash install-linux.sh && rm install-linux.sh ``` -------------------------------- ### Basic Bindplane Client Profile Setup Source: https://docs.bindplane.com/configuration/bindplane Commands to set up and use a basic client profile named 'basic'. This involves providing authentication details and the remote server URL. ```bash bindplane profile set basic \ --username myuser \ --password mypassword \ --remote-url http://192.168.1.10:3001 bindplane profile use basic ``` -------------------------------- ### Uninstall Bindplane Client on Windows Source: https://docs.bindplane.com/cli/installation Uninstalls the Bindplane Client on Windows using PowerShell. It removes the installation directory and cleans up the system PATH environment variable. ```powershell $installPath = "$env:ProgramFiles\bindplane-cli" Remove-Item -Path $installPath -Recurse -Force $currentMachinePath = [System.Environment]::GetEnvironmentVariable("Path", "Machine") $newMachinePathArray = $currentMachinePath.Split(';') | Where-Object { $_ -ne $installPath } [System.Environment]::SetEnvironmentVariable("Path", ($newMachinePathArray -join ';'), "Machine") ``` -------------------------------- ### AWS Cloudwatch Log Collection Names (Example) Source: https://docs.bindplane.com/integrations/sources/aws-cloudwatch Example of providing a list of exact log stream names to collect from AWS Cloudwatch. This is useful for targeting specific log files or instances. ```yaml names: - kube-apiserver-ea9c831555adca1815ae04b87661klasdj ``` -------------------------------- ### AWS Cloudwatch Log Collection Prefixes (Example) Source: https://docs.bindplane.com/integrations/sources/aws-cloudwatch Example of how to specify a prefix to filter discovered AWS Cloudwatch log groups. This helps limit the scope of log collection to specific directories or application components. ```yaml prefix: /aws/eks/ ``` -------------------------------- ### Uninstall Bindplane Client on macOS Source: https://docs.bindplane.com/cli/installation Removes the Bindplane Client binary and configuration directory from macOS. ```bash sudo rm -rf /usr/local/bin/bindplane rm -rf ~/.bindplane ``` -------------------------------- ### AWS Cloudwatch Log Collection Prefixes List (Example) Source: https://docs.bindplane.com/integrations/sources/aws-cloudwatch Example of providing a list of prefixes to filter log stream names for AWS Cloudwatch log collection. This allows for broader filtering based on common naming patterns. ```yaml prefixes: - kube-api-controller ``` -------------------------------- ### Uninstall Bindplane Client on Linux Source: https://docs.bindplane.com/cli/installation Removes the Bindplane Client binary from the system's PATH on Linux. ```bash sudo rm /usr/local/bin/bindplane ``` -------------------------------- ### Bindplane CLI Profile Setup Source: https://docs.bindplane.com/how-to-guides/gitops Commands to set up a Bindplane CLI profile for GitOps automation. This includes setting the remote URL, API key, listing profiles, and selecting a profile to use. It assumes a profile named 'gitflow'. ```bash bindplane profile set "gitflow" --remote-url http://:3001 --api-key bindplane profile list bindplane profile use "gitflow" bindplane get agents ``` -------------------------------- ### Example Bindplane Configuration File (INI) Source: https://docs.bindplane.com/configuration/bindplane/linux-package-configuration An example configuration file for Bindplane, demonstrating how to set options like skipping user creation, specifying the configuration home directory, and defining runtime user and group. ```ini # Skip user creation for LDAP integration BINDPLANE_SKIP_RUNTIME_USER_CREATION=true # Store Bindplane data in a custom location BINDPLANE_CONFIG_HOME=/opt/bindplane/data # Set runtime user and group to "bpserveru" and "bpserverg" BINDPLANE_USER=bpserveru BINDPLANE_GROUP=bpserverg ``` -------------------------------- ### Start and Manage Bindplane Services with Docker Compose Source: https://docs.bindplane.com/deployment/docker/server/install-bindplane-in-docker-compose Commands to start Bindplane services in detached mode, check their status, view logs, and stop the services. This includes options for stopping services with or without removing associated volumes. ```bash docker-compose up -d ``` ```bash docker-compose ps ``` ```bash docker compose logs -f ``` ```bash # Stop all services docker compose down # Stop and remove volumes (this will delete all data) docker compose down -v ``` -------------------------------- ### Uninstall Bindplane Prometheus Package Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/installation Removes the Bindplane Prometheus package from Debian or RHEL-based systems using their respective package managers. ```bash sudo apt-get remove bindplane-prometheus sudo apt-get purge bindplane-prometheus ``` ```bash sudo yum remove bindplane-prometheus ``` -------------------------------- ### Initialize Bindplane Server Source: https://docs.bindplane.com/how-to-guides/multi-node-architecture-on-google-cloud Initializes the Bindplane server by running the 'init server' command. This step requires specifying the configuration file path and prompts for various settings like license key, server host/port, remote URL, and database/event bus configurations. ```bash sudo BINDPLANE_CONFIG_HOME=/var/lib/bindplane /usr/local/bin/bindplane init server --config /etc/bindplane/config.yaml ``` -------------------------------- ### Starting BDOT Collector with Docker Compose Source: https://docs.bindplane.com/deployment/docker/collector/install-bdot-collector-in-docker-compose This command initiates the BDOT Collector service using Docker Compose in detached mode. ```bash docker compose up -d ``` -------------------------------- ### Agent Versions API Source: https://docs.bindplane.com/api Endpoints for managing agent versions, including listing, retrieving, getting install commands, syncing, and deleting agent versions. ```APIDOC ## List Agent Versions ### Description Retrieves a list of all available agent versions. ### Method GET ### Endpoint /v1/agent-versions ### Parameters (No parameters documented) ### Response #### Success Response (200) - **agentVersions** (array) - A list of agent version objects. #### Response Example ```json { "agentVersions": [ { "type": "fluentd", "version": "1.15.10" } ] } ``` ``` ```APIDOC ## Get Agent Version by Name ### Description Retrieves details for a specific agent version by its name (type and version). ### Method GET ### Endpoint /v1/agent-version/{name} ### Parameters #### Path Parameters - **name** (string) - Required - The name of the agent version (e.g., 'fluentd:1.15.10'). ### Response #### Success Response (200) - **type** (string) - The agent type. - **version** (string) - The agent version. #### Response Example ```json { "type": "fluentd", "version": "1.15.10" } ``` ``` ```APIDOC ## Get Install Command ### Description Retrieves the installation command for a specific agent type and version. ### Method GET ### Endpoint /v1/agent-versions/{type}/{version}/install-command ### Parameters #### Path Parameters - **type** (string) - Required - The type of the agent. - **version** (string) - Required - The version of the agent. ### Response #### Success Response (200) - **installCommand** (string) - The command to install the agent. #### Response Example ```json { "installCommand": "curl -fsSL https://bindplane.com/install.sh | sudo INSTALL_TYPE=fluentd INSTALL_VERSION=1.15.10 bash" } ``` ``` ```APIDOC ## Sync Agent Version ### Description Synchronizes a specific agent version, potentially pulling the latest files or metadata. ### Method POST ### Endpoint /v1/agent-versions/{type}/{version}/sync ### Parameters #### Path Parameters - **type** (string) - Required - The type of the agent. - **version** (string) - Required - The version of the agent to sync. ### Response #### Success Response (200) - **message** (string) - Confirmation message indicating the sync process has started. #### Response Example ```json { "message": "Agent version fluentd:1.15.10 sync initiated." } ``` ``` ```APIDOC ## Delete Agent Version ### Description Deletes a specific agent version by its name (type and version). ### Method DELETE ### Endpoint /v1/agent-version/{name} ### Parameters #### Path Parameters - **name** (string) - Required - The name of the agent version to delete (e.g., 'fluentd:1.15.10'). ### Response #### Success Response (200) - **message** (string) - Confirmation message indicating the agent version was deleted. #### Response Example ```json { "message": "Agent version fluentd:1.15.10 deleted successfully." } ``` ``` -------------------------------- ### Bindplane CLI Core Commands Source: https://docs.bindplane.com/cli/reference This section covers the fundamental commands for initializing and running the Bindplane server. ```APIDOC ## bindplane init / initialize ### Description Initializes a Bindplane installation. This command has several sub-commands for specific initialization tasks. ### Method CLI Command ### Endpoint N/A (CLI Command) ### Parameters #### Sub-commands - **server**: Initialize a new server installation. - **client**: Initialize a new client installation. - **ldap**: Initialize and migrate to LDAP configuration. - **auth**: Initialize and migrate authentication settings. - **license**: Set the license key in the configuration. ### Request Example ```bash bindplane init server bindplane init ldap ``` ## bindplane serve ### Description Starts the Bindplane server process. ### Method CLI Command ### Endpoint N/A (CLI Command) ### Parameters #### Flags - **--force-console-color** (boolean) - Optional - Forces colored output in the console. - **--skip-seed** (boolean) - Optional - Skips seeding resource types on startup. ### Request Example ```bash bindplane serve bindplane serve --force-console-color ``` ``` -------------------------------- ### Raw OpenTelemetry Configuration Example Source: https://docs.bindplane.com/how-to-guides/gitops An example of raw OpenTelemetry (OTEL) configuration in YAML format. This snippet shows an exporter configuration for Google Cloud, including a sensitive value placeholder for credentials. ```yaml exporters: googlecloud/google: credentials: (sensitive) ``` -------------------------------- ### Get BindPlane Account Configuration Source: https://docs.bindplane.com/how-to-guides/kubernetes/kubernetes-postgres-migration Retrieves the current BindPlane account configuration in YAML format and exports it. This is often used as a starting point for updates or backups. ```bash bindplane get account -o yaml --export > resources/ha-account.yaml ``` -------------------------------- ### Redis Log File Paths Source: https://docs.bindplane.com/integrations/sources/redis Specifies the file path to Redis log files, with examples provided for different operating systems and installation methods. ```text One-click installer: - "/var/log/redis/redis_6379.log" Ubuntu / Debian: - "/var/log/redis/redis-server.log" src: - "/var/log/redis_6379.log" CentOS / RHEL: - "/var/log/redis/redis.log" SLES: - "/var/log/redis/default.log" ``` -------------------------------- ### Validate Prometheus Running Status (Bash) Source: https://docs.bindplane.com/production-checklist/bindplane/high-availability/prometheus/manual-install Uses curl to send a request to the Prometheus metrics endpoint (localhost:9090/metrics) to verify that the service is running and responding. ```bash curl -v -s localhost:9090/metrics ``` -------------------------------- ### Bindplane Postgres Configuration Logs Source: https://docs.bindplane.com/how-to-guides/postgres/postgres-store Example log messages from Bindplane indicating successful Postgres configuration and startup. These logs are crucial for verifying that the database connection is established correctly. ```json {"level":"info","timestamp":"2024-09-18T00:34:22.670Z","message":"Using postgres store"} {"level":"info","timestamp":"2024-09-18T00:34:23.091Z","message":"Starting rollout updater"} {"level":"info","timestamp":"2024-09-18T00:34:23.093Z","message":"Metrics provider is NOP"} ``` -------------------------------- ### Example Bindplane Collector Configuration Source: https://docs.bindplane.com/configuration/bindplane-otel-collector/linux-package-configuration An example configuration file demonstrating various settings for the Bindplane OTEL Collector. This includes skipping user creation, setting a custom configuration home, enabling unprivileged mode, and defining a custom user and group. ```ini # Skip user creation for LDAP integration # Systemd administrator must pre-configure # the user. BDOT_SKIP_RUNTIME_USER_CREATION=true # Install collector in a custom location BDOT_CONFIG_HOME=/opt/custom-collector # Run collector as unprivileged user BDOT_UNPRIVILEGED=true # Run collector as user "otelu" and group "otelg" BDOT_USER=otelu BDOT_GROUP=otelg ``` -------------------------------- ### Set Bindplane Remote URL Source: https://docs.bindplane.com/deployment/kubernetes/server/installation Defines the environment variable BINDPLANE_REMOTE_URL, which is the service endpoint for Bindplane. This is typically used for deploying collectors within the Kubernetes cluster. ```bash BINDPLANE_REMOTE_URL=http://bindplane.bindplane.svc.cluster.local:3001 ``` -------------------------------- ### Upgrade Bindplane OTEL Collector Package Source: https://docs.bindplane.com/how-to-guides/collector-linux-username-migration Installs the Bindplane OTEL Collector v1.82.0. The script handles the user migration from 'observiq-otel-collector' to 'bdot' automatically during the upgrade process. ```bash sudo sh -c "$(curl -fsSlL 'https://github.com/observIQ/bindplane-agent/releases/download/v1.82.0/install_unix.sh')" install_unix.sh ``` ```bash sudo apt install -f ./observiq-otel-collector_v1.82.0_linux_amd64.deb ``` ```bash sudo yum install ./observiq-otel-collector_v1.82.0_linux_amd64.rpm # or for newer systems: sudo dnf install ./observiq-otel-collector_v1.82.0_linux_amd64.rpm ``` -------------------------------- ### Update Collector Manager Configuration (YAML) Source: https://docs.bindplane.com/configuration/bindplane/migration/migrate-collectors Example of the Bindplane collector's manager configuration file. This file requires updating the `endpoint` and `secret_key` to point to the new Bindplane server or project. ```yaml endpoint: 'ws://192.168.1.9:3001/v1/opamp' secret_key: '470b8fe1-8703-45f7-a76a-c15ec3ab8c48' agent_id: 0193df6b-1086-7097-b8ab-76c5687d8bd5 labels: install_id=bd36a20e-5fab-4c9a-8a19-c77f99cbd03d measurements_interval: 10s extra_measurements_attributes: agent: 0193df6b-1086-7097-b8ab-76c5687d8bd5 configuration: test interval: 10s version: v2 ``` ```yaml endpoint: 'wss://app.bindplane.com:443/v1/opamp' secret_key: '585f08db-6169-4b86-9cd0-38ff096fbf5e' ``` -------------------------------- ### GitHub Actions Workflow for Matrixed OTEL Distribution Build Source: https://docs.bindplane.com/how-to-guides/using-an-opentelemetry-distribution-with-bindplane This YAML workflow automates the build process for OpenTelemetry distributions using the `otel-distro-builder`. It's configured to run on tag pushes (e.g., v1.0.0) or manual triggers. The workflow utilizes GitHub Actions' strategy matrix to build distributions for multiple platform/architecture combinations concurrently, with specific include rules for defining OS, architecture, and artifact names. ```yaml name: Matrixed OpenTelemetry Distribution Build on: push: tags: - "v*" # Runs when a version tag is pushed (e.g., v1.0.0) workflow_dispatch: # Enables manual triggering from the GitHub UI permissions: contents: write # This is required for creating/modifying releases jobs: build: # Configure build matrix to run multiple platform builds in parallel strategy: matrix: # Define the platforms we want to build for platform: [linux/amd64, linux/arm64, darwin/arm64, windows/amd64] # Map platform identifiers to simpler names for artifact handling include: - platform: linux/amd64 os: linux arch: amd64 artifact_name: linux-amd64 - platform: linux/arm64 os: linux arch: arm64 artifact_name: linux-arm64 - platform: darwin/arm64 os: darwin arch: arm64 artifact_name: darwin-arm64 - platform: windows/amd64 os: windows arch: amd64 artifact_name: windows-amd64 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # Build the OpenTelemetry distribution for each platform - name: Build and Package uses: observiq/otel-distro-builder@main with: os: ${{ matrix.os }} arch: ${{ matrix.arch }} # Upload platform-specific artifacts with a unique name # These artifacts are available for download in the GitHub Actions UI - name: Upload Artifacts uses: actions/upload-artifact@v4 with: name: distribution-artifacts-${{ matrix.artifact_name }} path: | ``` -------------------------------- ### Environment Variable for OPAMP Endpoint Source: https://docs.bindplane.com/deployment/docker/collector/install-bdot-collector-in-docker-compose This snippet shows an example of how to set the `OPAMP_ENDPOINT` environment variable, specifying different values for Bindplane Cloud versus a self-hosted Bindplane server, including protocol and port considerations. ```yaml - name: OPAMP_ENDPOINT value: "ws://your-bindplane-server:3001/v1/opamp" # use "wss://app.bindplane.com/v1/opamp" for Bindplane Cloud ``` -------------------------------- ### Bindplane CLI Commands Overview Source: https://docs.bindplane.com/cli This section lists the available commands for the Bindplane CLI, such as 'apply', 'get', 'delete', and 'version', along with a brief description of each command's purpose. ```cli bindplane apply bindplane completion bindplane copy bindplane delete bindplane get bindplane help bindplane init bindplane install bindplane label bindplane profile bindplane serve bindplane sync bindplane update bindplane upload bindplane version bindplane rollout ``` -------------------------------- ### Re-using Manager YAML Configuration Source: https://docs.bindplane.com/deployment/docker/collector/install-bdot-collector-in-docker-compose This snippet demonstrates how to re-use the `manager.yaml` file by mounting a local directory instead of using the persistent volume. It also notes the requirement to clear the content of `manager.yaml` when starting new collectors. ```yaml volumes: # Replace the volume with a local directory # - bdot-collector-storage:/etc/otel/storage - ./storage:/etc/otel/storage ``` -------------------------------- ### Bindplane Destination Resource Example Source: https://docs.bindplane.com/how-to-guides/gitops An example YAML definition for a Bindplane Destination resource. This illustrates the structure for a Google Cloud destination, including parameters like project, auth_type, and credentials, with sensitive values masked. ```yaml apiVersion: bindplane.observiq.com/v1 kind: Destination metadata: id: google name: google spec: type: googlecloud parameters: - name: project value: my-project - name: auth_type value: json - name: credentials value: (sensitive) sensitive: true ``` -------------------------------- ### Update Systemd Override for User Change Source: https://docs.bindplane.com/how-to-guides/collector-linux-username-migration Edits the systemd service override file to change the collector's running user from 'observiq-otel-collector' to 'bdot'. This ensures the service starts with the new username after migration. ```bash sudo systemctl edit observiq-otel-collector ``` ```ini [Service] User=bdot ``` -------------------------------- ### Configure Postgres Apt Repository (Bash) Source: https://docs.bindplane.com/how-to-guides/postgres/postgres-store Adds the official PostgreSQL apt repository to the system's sources list and imports the repository signing key. This enables fetching Postgres packages. ```bash sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - ``` -------------------------------- ### Port Forward Bindplane Service Source: https://docs.bindplane.com/deployment/kubernetes/server/installation Uses kubectl to forward a local port (3001) to the Bindplane service port (3001) within the 'bindplane' namespace. This allows access to the Bindplane web interface from your workstation when not exposed via ingress. ```bash kubectl \ -n bindplane \ port-forward service/bindplane 3001:3001 ``` -------------------------------- ### Configure Bindplane for Offline Collector Upgrades Source: https://docs.bindplane.com/configuration/bindplane/offline-collector-package-installation-and-upgrades Enables offline mode in Bindplane to disable syncing with GitHub and allows uploading upgrade packages. This configuration example shows how to set 'offline: true' and specifies directories for upgrade artifacts. ```yaml name: default apiVersion: bindplane.observiq.com/v1 # Enables "offline" mode, which disables syncing collector versions with GitHub, and enables # uploading upgrade packages for bindplane to host collector upgrade and install artifacts. offline: true auth: # A random uuid which is used as a shared secret between bindplane and # deployed collectors. secretKey: your-secret-key # Basic auth should use a username other than # admin along with a secure password. username: admin password: password # A random uuid which is used for generating web ui session cookies. sessionSecret: your-session-secret network: # Listen on port 3001, all interfaces. host: 0.0.0.0 port: '3001' # Endpoint for which clients and collectors will interface # with the server's http interface. remoteURL: http://bindplane.c.bindplane.internal:3001 agentVersions: # The path where collector upgrades are stored when uploading collector upgrade packages in offline mode. agentUpgradesFolder: /var/lib/bindplane/agent-upgrades store: type: postgres postgres: database: bindplane eventBus: type: local logging: filePath: /var/log/bindplane/bindplane.log ``` -------------------------------- ### Bindplane CLI General Help Source: https://docs.bindplane.com/cli/reference Access detailed help for any Bindplane CLI command or subcommand. Use the --help flag for comprehensive information. ```bash bindplane --help bindplane --help ``` -------------------------------- ### macOS Agent Configuration Source: https://docs.bindplane.com/integrations/sources/macos This section details the configuration parameters for the macOS agent. You can specify the types of telemetry to collect, enable or disable the collection of system and install logs, and define the paths to these log files. It also includes settings for how often to scrape for metrics and from where to start reading log files. ```APIDOC ## macOS Agent Configuration ### Description Configuration parameters for the macOS agent, including telemetry types, log collection settings, and metrics collection interval. ### Method Not Applicable (Configuration) ### Endpoint Not Applicable (Configuration) ### Parameters #### Configuration Parameters - **telemetry_types** (`telemetrySelector`) - Required - Choose Telemetry Type. Accepted values: `["Logs", "Metrics"]`. - **enable_system_log** (`bool`) - Optional - Enable to collect macOS system logs. Default: `true`. - **system_log_path** (`string`) - Optional - The absolute path to the System log. Default: `"/var/log/system.log"`. - **enable_install_log** (`bool`) - Optional - Enable to collect macOS install logs. Default: `true`. - **install_log_path** (`string`) - Optional - The absolute path to the Install log. Default: `"/var/log/install.log"`. - **start_at** (`enum`) - Optional - Start reading the file from the 'beginning' or 'end'. Default: `end`. - **host_collection_interval** (`int`) - Optional - Sets how often (seconds) to scrape for metrics. Default: `60`. ### Request Example ```json { "telemetry_types": ["Logs", "Metrics"], "enable_system_log": true, "system_log_path": "/var/log/system.log", "enable_install_log": true, "install_log_path": "/var/log/install.log", "start_at": "end", "host_collection_interval": 60 } ``` ### Response #### Success Response (200) Configuration applied successfully. #### Response Example ```json { "message": "Configuration updated successfully." } ``` ``` -------------------------------- ### Start Bindplane Server Source: https://docs.bindplane.com/cli/reference Command to launch the Bindplane server process. It supports flags to control console output color and whether to seed resource types on startup. ```bash bindplane serve [--force-console-color] [--skip-seed] ``` -------------------------------- ### Bindplane Feature Guides Overview Source: https://context7_llms Provides comprehensive guides for various Bindplane features, including data processors, rollouts, metric filtering, audit trails, access control, and telemetry management. ```markdown - [Feature Guides](/feature-guides.md): Comprehensive guides for Bindplane features including processors, rollouts, metric filtering, audit trails, access control, and telemetry management ``` -------------------------------- ### Get Version - GET /v1/version Source: https://docs.bindplane.com/api Retrieves the current version of the BindPlane API. ```HTTP GET /v1/version ``` -------------------------------- ### Example Custom Processor Configuration (YAML) Source: https://docs.bindplane.com/integrations/processors/custom Demonstrates injecting a resource processor configuration with custom attributes using YAML for the Custom processor. ```yaml resource: attributes: - action: upsert key: custom value: true ```