diff --git a/docs/integration/database/.pages b/docs/integration/database/.pages index fcad1617..c68e6d5f 100644 --- a/docs/integration/database/.pages +++ b/docs/integration/database/.pages @@ -1,4 +1,11 @@ nav: - + - Database Integrations Overview: index.md - PostgreSQL: postgresql.md + - Oracle Database: oracle.md - Snowflake: snowflake.md + - MySQL: mysql.md + - MongoDB: mongodb.md + - Redis: redis.md + - Apache Zookeeper: zookeeper.md + - Cassandra: cassandra.md + - Aerospike: aerospike.md diff --git a/docs/integration/database/aerospike.md b/docs/integration/database/aerospike.md new file mode 100644 index 00000000..e3457724 --- /dev/null +++ b/docs/integration/database/aerospike.md @@ -0,0 +1,102 @@ +--- +title: Aerospike Metrics Integration Guide +description: Learn how to integrate Aerospike with OpenObserve using the OpenTelemetry Collector. +--- +# Aerospike Integration with OpenObserve + +This guide provides step-by-step instructions to collect and monitor Aerospike metrics using OpenTelemetry Collector and forward them to OpenObserve. + +## Overview + +Aerospike is a high-performance, distributed database designed for **low-latency, real-time data processing**. +By integrating **Aerospike with OpenTelemetry and OpenObserve**, you can: + +- Detect performance bottlenecks +- Gain insights into resource usage +- Monitor database health and metrics in real time + +## Steps to Integrate + +??? "Prerequisites" + - Running **Aerospike instance(s)** + - OpenObserve account ([Cloud](https://cloud.openobserve.ai/web/) or [Self-Hosted](../../../quickstart/#self-hosted-installation)) + +??? "Step 1: Install OpenTelemetry Collector Contrib" + + Download and install the latest release of `otelcol-contrib`: + + ```bash + curl --proto '=https' --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.115.1/otelcol-contrib_0.115.1_darwin_arm64.tar.gz + tar -xvf otelcol-contrib_0.115.1_darwin_arm64.tar.gz + sudo mv otelcol-contrib /usr/local/bin/ + otelcol-contrib --version + ``` + + > Replace `v0.115.1` with the latest version for your OS/architecture. + +??? "Step 2: Configure the Collector" + + Create a file named `config.yaml` with the following configuration: + + ```yaml + receivers: + aerospike: + endpoint: "localhost:3000" + + processors: + batch: + send_batch_size: 10000 + send_batch_max_size: 11000 + timeout: 10s + + exporters: + otlphttp/openobserve: + endpoint: https:///api/default + headers: + Authorization: Basic + stream-name: default + + service: + pipelines: + metrics: + receivers: [aerospike] + processors: [batch] + exporters: [otlphttp/openobserve] + ``` + + Replace `` and `` with your OpenObserve details. + + ![OpenObserve Redis Creds](../images/databases/otel-metrics-cred.png) + + +??? "Step 3: Run the Collector" + + Start the Collector with your configuration: + + ```bash + otelcol-contrib --config /path/to/config.yaml + ``` + + ![Run the Collector](../images/databases/otel-collector.png) + +??? "Step 4: Visualize in OpenObserve" + + 1. Open **OpenObserve → Streams** and select your metrics stream. + ![Visualize Aerospike Metrics](../images/databases/aerospike-stream.png) + 2. Explore the metrics, run queries , create dashboards for insights + ![Visualize Aerospike Metrics](../images/databases/aerospike-metric-explore.png) + + +## Troubleshooting + +??? "Collector not starting" + - Check the logs for misconfigurations: + + ```journalctl -u otel-collector -f + ``` + +??? "No metrics in OpenObserve" + + - Verify Aerospike is running: systemctl status aerospike + - Check if the Aerospike receiver is binding to the correct port (default: 3000). + - Confirm your OPENOBSERVE_TOKEN and OPENOBSERVE_STREAM are correct. \ No newline at end of file diff --git a/docs/integration/database/cassandra.md b/docs/integration/database/cassandra.md new file mode 100644 index 00000000..dd5974f1 --- /dev/null +++ b/docs/integration/database/cassandra.md @@ -0,0 +1,134 @@ +--- +title: Cassandra Metrics and Logs Integration Guide +description: This guide explains how to monitor Apache Cassandra by collecting metrics via the OpenTelemetry JMX receiver and logs via file-based collection, and forward them to OpenObserve for visualization and analysis. +--- + +# Integration with Cassandra Metrics and Logs + +This guide provides step-by-step instructions to collect and monitor Apache Cassandra metrics and logs using **OpenTelemetry Collector Contrib** and forward them to OpenObserve. + +## Overview + +Apache Cassandra is a highly scalable, distributed NoSQL database designed for applications that demand high availability and low-latency read/write operations. + +To effectively monitor Cassandra, we will set up OpenTelemetry (OTel) to collect both metrics and logs. OpenTelemetry’s JMX receiver helps gather JVM and Cassandra-specific metrics, while file-based log collection ensures log visibility. The collected logs and metrics will then be forwarded to Openobserve. + + +## Steps to Integrate + +??? "Prerequisites" + - Running **Apache Cassandra** instance(s) + - OpenObserve account ([Cloud](https://cloud.openobserve.ai/web/) or [Self-Hosted](../../../quickstart/#self-hosted-installation)) + +??? "Step 1: Download OpenTelemetry JMX Metrics JAR" + + 1. The JMX receiver is used to gather Cassandra and JVM metrics. Install it using the command: + + ```bash + wget https://github.com/open-telemetry/opentelemetry-java-contrib/releases/download/v1.32.0/opentelemetry-jmx-metrics.jar -O /opt/opentelemetry-java-contrib-jmx-metrics.jar + ``` + +??? "Step 2: Configure JMX Remote Access in Cassandra" + + 1. Edit `/etc/cassandra/cassandra-env.sh` and add: + ```bash + JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=9000" + JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=9000" + JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false" + JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false" + ``` + + 2. Restart Cassandra: + ```bash + systemctl restart cassandra + ``` + > Note: The file location may vary depending on your system. + +??? "Step 3: Configure the OpenTelemetry Collector" + + 1. Create or update `/etc/otel-collector-config.yaml`: + + ```yaml + receivers: + jmx: + jar_path: /opt/opentelemetry-java-contrib-jmx-metrics.jar + endpoint: localhost:9000 + target_system: cassandra,jvm + collection_interval: 60s + + filelog/std: + include: + - /var/log/cassandra/*.log #File location varies, example for macOS: /opt/homebrew/var/log/cassandra/*.log + start_at: beginning + + otlp: + protocols: + grpc: + http: + + processors: + resourcedetection: + detectors: ["system"] + system: + hostname_sources: ["os"] + batch: + + exporters: + otlphttp/openobserve: + endpoint: https:///api/default + headers: + Authorization: Basic + stream-name: cassandra + + service: + pipelines: + metrics: + receivers: [jmx] + processors: [resourcedetection, batch] + exporters: [otlphttp/openobserve] + + logs: + receivers: [filelog/std, otlp] + processors: [batch] + exporters: [otlphttp/openobserve] + ``` + + Replace `` and `` with values from OpenObserve’s **Data Sources → Metrics/Logs → Otel Collector**. + + ![OpenObserve Cassandra Creds](../images/databases/otel-metrics-cred.png) + +??? "Step 4: Restart the OpenTelemetry Collector" + + 1. Restart OpenTelemetry Collector + ```bash + systemctl restart otel-collector + ``` + + 2. Verify the service: + ```bash + systemctl status otel-collector + ``` + +??? "Step 5: Visualize in OpenObserve" + + 1. Go to **OpenObserve → Streams**. + 2. Explore metrics such as node health, read/write latency, and JVM performance. + ![Visualize Cassandra Metrics](../images/databases/cassandra-metrics.png) + 3. Explore logs to debug errors, failed queries, etc. + ![Visualize Cassandra Logs](../images/databases/cassandra-logs.png) + + +## Troubleshooting + +??? "No JMX Metrics Collected" + - Ensure JMX port (9000) is open and Cassandra was restarted after enabling JMX. + - Verify `jar_path` points to the correct JMX metrics jar. + +??? "Logs Not Appearing" + - Confirm Cassandra logs exist under `/var/log/cassandra/`. + - Ensure `filelog` receiver has read permissions. + +??? "No Data in OpenObserve" + - Double-check exporter endpoint and token. + - Ensure Collector can reach OpenObserve. + - Inspect Collector logs for errors. diff --git a/docs/integration/database/mongodb.md b/docs/integration/database/mongodb.md new file mode 100644 index 00000000..dd299789 --- /dev/null +++ b/docs/integration/database/mongodb.md @@ -0,0 +1,107 @@ +--- +title: MongoDB Metrics Integration Guide +description: This guide explains how to monitor MongoDB metrics using the OpenTelemetry Collector with the MongoDB receiver, and forward them to OpenObserve for visualization and analysis. +--- + +# Integration with MongoDB Metrics + +This guide provides step-by-step instructions to collect and monitor MongoDB metrics using **OpenTelemetry Collector Contrib** and forward them to OpenObserve. + +## Overview + +To effectively monitor MongoDB, we will utilize the OpenTelemetry Collector with the MongoDB receiver. This setup allows us to collect metrics from MongoDB instances and push them to OpenObserve, enabling us to visualize performance data and respond proactively to issues. + +Supported MongoDB versions: **4.0+**. + +## Steps to Integrate + +??? "Prerequisites" + - Running **MongoDB instance(s)** + - OpenObserve account ([Cloud](https://cloud.openobserve.ai/web/) or [Self-Hosted](../../../quickstart/#self-hosted-installation)) + +??? "Step 1: Install OpenTelemetry Collector Contrib" + + Download and install the latest release of `otelcol-contrib`: + + ```bash + curl --proto '=https' --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.115.1/otelcol-contrib_0.115.1_darwin_arm64.tar.gz + tar -xvf otelcol-contrib_0.115.1_darwin_arm64.tar.gz + sudo mv otelcol-contrib /usr/local/bin/ + otelcol-contrib --version + ``` + + > Replace `v0.115.1` with the latest version for your OS/architecture. + +??? "Step 2: Configure the Collector" + + Create a file named `config.yaml` with the following configuration: + + ```yaml + receivers: + mongodb: + hosts: + - endpoint: localhost:27017 + username: otel #the user with clusterMonitor permissions + password: password123 #password + collection_interval: 60s + initial_delay: 1s + tls: + insecure: true + insecure_skip_verify: true + + processors: + batch: + send_batch_size: 10000 + timeout: 10s + + exporters: + otlphttp/openobserve: + endpoint: https:///api/default + headers: + Authorization: Basic + stream-name: default + + service: + pipelines: + metrics: + receivers: [mongodb] + processors: [batch] + exporters: [otlphttp/openobserve] + ``` + + Replace `` and `` with your actual OpenObserve API endpoint and authentication token, which you can find in your Data Sources -> Databases -> MongoDB + + ![Collect OpenObserve Credentials](../images/databases/otel-metrics-cred.png) + +??? "Step 3: Run the Collector" + + Start the Collector with your configuration: + + ```bash + otelcol-contrib --config /path/to/config.yaml + ``` + ![Run the Collector](../images/databases/otel-collector.png) + +??? "Step 4: Visualize in OpenObserve" + + 1. Open **OpenObserve → Streams**. Select your metrics stream . + ![Visualize in OpenObserve](../images/databases/visualize-mongo-metrics.png) + 2. Explore MongoDB metrics in dashboards or create custom queries. + +## Troubleshooting + +??? "Authentication Errors" + - Double-check username/password in config. + +??? "Connection Refused" + - Verify MongoDB is running and accessible on the specified port. + - Check firewall or container networking settings. + +??? "TLS Issues" + - If using TLS, configure valid certs. + - Use `tls.insecure_skip_verify: true` for testing only. + +??? "No Metrics in OpenObserve" + - Check Collector logs for errors. + - Confirm `endpoint` and `Authorization` headers in the exporter are correct. + - Verify OpenObserve is reachable from the Collector. \ No newline at end of file diff --git a/docs/integration/database/mysql.md b/docs/integration/database/mysql.md new file mode 100644 index 00000000..17cf5879 --- /dev/null +++ b/docs/integration/database/mysql.md @@ -0,0 +1,96 @@ +--- +title: Monitor Your MySQL Database Metrics with OpenTelemetry and OpenObserve +description: Learn how to collect and monitor MySQL database metrics using the OpenTelemetry Collector and visualize them in OpenObserve. +--- + +# MySQL Integration with OpenObserve + +This guide provides step-by-step instructions to collect and monitor MySQL database metrics using OpenTelemetry Collector and forward them to OpenObserve. + +## Overview + +MySQL is one of the most widely used open-source relational databases, powering applications from startups to large-scale enterprises. Monitoring MySQL is critical for ensuring availability, performance, and query efficiency. + +With the **OpenTelemetry Collector** and **OpenObserve**, you can seamlessly ingest MySQL metrics, visualize database health, and set up proactive alerts. + +## Steps to Integrate + +??? "Prerequisites" + - Running **MySQL instance(s)** + - OpenObserve account ([Cloud](https://cloud.openobserve.ai/web/) or [Self-Hosted](../../../quickstart/#self-hosted-installation)) + +??? "Step 1: Install OpenTelemetry Collector Contrib" + + Download and install the latest release of `otelcol-contrib`: + + ```bash + curl --proto '=https' --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.115.1/otelcol-contrib_0.115.1_darwin_arm64.tar.gz + tar -xvf otelcol-contrib_0.115.1_darwin_arm64.tar.gz + sudo mv otelcol-contrib /usr/local/bin/ + otelcol-contrib --version + ``` + + > Replace `v0.115.1` with the latest version for your OS/architecture. + +??? "Step 2: Configure the Collector" + + Create a file named `config.yaml` with the following configuration: + + ```yaml + receivers: + mysql: + endpoint: "localhost:3306" + username: otel + password: ${env:MYSQL_PASSWORD} + + processors: + batch: + send_batch_size: 10000 + send_batch_max_size: 11000 + timeout: 10s + + exporters: + otlphttp/openobserve: + endpoint: https:///api/default + headers: + Authorization: Basic + stream-name: default + + service: + pipelines: + metrics: + receivers: [mysql] + processors: [batch] + exporters: [otlphttp/openobserve] + ``` + + Replace `` and `` with your OpenObserve details. + + ![OpenObserve Metrics Creds](../images/databases/otel-metrics-cred.png) + + +??? "Step 3: Run the Collector" + + Start the Collector with your configuration: + + ```bash + otelcol-contrib --config /path/to/config.yaml + ``` + + ![Run the Collector](../images/databases/otel-collector.png) + +??? "Step 4: Visualize in OpenObserve" + + 1. Open **OpenObserve → Streams** and select your metrics stream. + ![Visualize Mysql Metrics](../images/databases/mysql-metrics.png) + + +??? "Troubleshooting" + + If you encounter connection issues during setup, consider the following: + + - **Check MySQL Configuration**: Ensure that the MySQL instance is running and the configured user has the necessary privileges to read metrics. + - **Firewall and Network Settings**: Verify that your network allows traffic on the MySQL port (default: `3306`). + - **Authentication Issues**: Confirm that the username and password configured in the OpenTelemetry Collector match your MySQL credentials. + - **Endpoint Validation**: If running MySQL on a remote server, make sure you are using the correct hostname/IP in the `endpoint` field of your collector configuration. + - **Collector Logs**: Inspect the OpenTelemetry Collector logs for detailed error messages (`journalctl -u otel-collector -f` on Linux). These logs often indicate whether the issue is authentication, connectivity, or configuration related. diff --git a/docs/integration/database/oracle.md b/docs/integration/database/oracle.md new file mode 100644 index 00000000..cf7d79d4 --- /dev/null +++ b/docs/integration/database/oracle.md @@ -0,0 +1,151 @@ +--- +title: Monitor Your Oracle Database with OpenTelemetry and OpenObserve +description: Learn how to collect Oracle Database metrics and logs using the OpenTelemetry Collector and visualize them in OpenObserve. +--- + +# Oracle Database Integration with OpenObserve + +This guide provides step-by-step instructions to collect and monitor **Oracle Database metrics and logs** using the OpenTelemetry Collector and forward them to OpenObserve. + +## Overview + +Oracle Database is the backbone of many enterprise applications, handling mission-critical workloads. Monitoring Oracle is essential for: + +- Identifying performance bottlenecks (CPU, I/O, slow queries). +- Tracking resource usage (sessions, locks, tablespaces). +- Analyzing logs for troubleshooting, auditing, and compliance. + +With the **OpenTelemetry Collector** and **OpenObserve**, you can ingest Oracle Database metrics and logs, build dashboards, and set up alerts for proactive monitoring. + +## Steps to Integrate + +??? "Prerequisites" + - A running **Oracle Database instance** (local via Docker or remote). + - OpenObserve account ([Cloud](https://cloud.openobserve.ai/web/) or [Self-Hosted](../../../quickstart/#self-hosted-installation)). + +??? "Step 1: Configure Oracle Database" + + Once database is ready to use: + + 1. Connect via SQL*Plus: + ```bash + sqlplus system/password123@localhost:1521/XE + ``` + + 2. Create a monitoring user: + + ```sql + CREATE USER otel IDENTIFIED BY password123; + GRANT CONNECT, RESOURCE TO otel; + GRANT SELECT ON V_$SESSION TO otel; + GRANT SELECT ON V_$SYSSTAT TO otel; + GRANT SELECT ON V_$RESOURCE_LIMIT TO otel; + GRANT SELECT ON DBA_TABLESPACES TO otel; + GRANT SELECT ON DBA_DATA_FILES TO otel; + GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO otel; + EXIT; + ``` + +??? "Step 2: Install OpenTelemetry Collector Contrib" + + Download the latest release: + + ```bash + curl --proto '=https' --tlsv1.2 -fOL \ + https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.115.1/otelcol-contrib_0.115.1_darwin_arm64.tar.gz + tar -xvf otelcol-contrib_0.115.1_darwin_arm64.tar.gz + sudo mv otelcol-contrib /usr/local/bin/ + otelcol-contrib --version + ``` + + > Replace `v0.115.1` with the latest release for your OS/architecture. + +??? "Step 3: Configure the Collector" + + Create a file named `config.yaml`: + + ```yaml + receivers: + oracledb: + endpoint: localhost:1521 + username: otel + password: password123 + service: XE + collection_interval: 30s + timeout: 10s + + filelog: + include: + - /var/log/oracle/*.log # Adjust based on your Oracle setup + + processors: + batch: + send_batch_size: 10000 + timeout: 10s + + exporters: + otlphttp/openobserve: + endpoint: https:///api/default + headers: + Authorization: Basic + stream-name: default + + service: + pipelines: + metrics: + receivers: [oracledb] + processors: [batch] + exporters: [otlphttp/openobserve] + + logs: + receivers: [filelog] + processors: [batch] + exporters: [otlphttp/openobserve] + ``` + + Replace `` and `` with your OpenObserve details. + + ![OpenObserve Metrics Creds](../images/databases/otel-metrics-cred.png) + +??? "Step 4: Run the Collector" + + Start the Collector: + + ```bash + otelcol-contrib --config /path/to/config.yaml + ``` + + ![Run the Collector](../images/databases/otel-collector.png) + +??? "Step 5: Visualize in OpenObserve" + + 1. Open **OpenObserve → Streams** and select your Oracle metrics/logs stream. + ![Visualize Oracle Metrics](../images/databases/oracle-metrics.png) + 2. Create dashboards to track: + - Active sessions + - Tablespace usage + - Query executions & rollbacks + - CPU and I/O utilization + + > You can make use of pre-built dashboards [here](https://github.com/openobserve/dashboards/tree/main/OracleDB). + +## Troubleshooting + +Common issues and fixes: + +??? "Database Connectivity" + - Verify Oracle is running: `docker ps | grep oracle-xe` + - Test port: `telnet localhost 1521` + - SQL*Plus login: `sqlplus otel/password123@localhost:1521/XE` + +??? "Authentication Issues" + - Check user grants and password. + - Ensure correct service name (`XE`). + +??? "Logs Not Flowing" + - Verify log file paths (`docker exec -it oracle-xe ls /opt/oracle/diag/...`). + - Adjust `filelog.include` paths. + +??? "Collector Errors" + - Check startup logs: `otelcol-contrib --config config.yaml`. + - Increase `timeout` if queries are slow. \ No newline at end of file diff --git a/docs/integration/database/redis.md b/docs/integration/database/redis.md new file mode 100644 index 00000000..731ef46a --- /dev/null +++ b/docs/integration/database/redis.md @@ -0,0 +1,121 @@ +--- +title: Redis Metrics Integration Guide +description: This guide explains how to monitor Redis metrics using the OpenTelemetry Collector with the Redis receiver, and forward them to OpenObserve for visualization and analysis. +--- + +# Integration with Redis Metrics + +This guide provides step-by-step instructions to collect and monitor Redis metrics using **OpenTelemetry Collector Contrib** and forward them to OpenObserve. + +## Overview + +Redis is a powerful in-memory data structure store, widely used as a database, cache, and message broker. It supports diverse use cases like caching, session management, and real-time data streaming for applications such as chat systems and gaming. + +To monitor Redis, we will use the **OpenTelemetry Collector Redis receiver**, which fetches performance metrics using the `INFO` command and converts them into OpenTelemetry metrics that can be pushed to OpenObserve. + +## Steps to Integrate + +??? "Prerequisites" + - Running **Redis instance(s)** + - OpenObserve account ([Cloud](https://cloud.openobserve.ai/web/) or [Self-Hosted](../../../quickstart/#self-hosted-installation)) + - Basic understanding of OpenTelemetry concepts + +??? "Step 1: Prepare Your Redis Environment" + + Ensure your Redis server is running and accessible on `localhost:6379` (or your target host/port). + + To enable authentication, update `redis.conf`: + + ```conf + requirepass yourpassword + ``` + + Restart Redis after editing the config. + +??? "Step 2: Install OpenTelemetry Collector Contrib" + + Download and install the latest release of `otelcol-contrib`: + + ```bash + curl --proto '=https' --tlsv1.2 -fOL https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.115.1/otelcol-contrib_0.115.1_darwin_arm64.tar.gz + tar -xvf otelcol-contrib_0.115.1_darwin_arm64.tar.gz + sudo mv otelcol-contrib /usr/local/bin/ + otelcol-contrib --version + ``` + + > Replace `v0.115.1` with the latest version for your OS/architecture. + +??? "Step 3: Configure the Collector" + + Create a file named `config.yaml` with the following configuration: + + ```yaml + receivers: + redis: + endpoint: "localhost:6379" + collection_interval: 10s + password: ${env:REDIS_PASSWORD} + + processors: + batch: + send_batch_size: 10000 + send_batch_max_size: 11000 + timeout: 10s + + exporters: + otlphttp/openobserve: + endpoint: https:///api/default + headers: + Authorization: Basic + stream-name: default + + service: + pipelines: + metrics: + receivers: [redis] + processors: [batch] + exporters: [otlphttp/openobserve] + ``` + + Replace `` and `` with your OpenObserve details. + + ![OpenObserve Redis Creds](../images/databases/otel-metrics-cred.png) + + > A full list of metrics collected is available in the [Redis receiver documentation](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/redisreceiver). + +??? "Step 4: Run the Collector" + + Start the Collector with your configuration: + + ```bash + otelcol-contrib --config /path/to/config.yaml + ``` + + ![Run the Collector](../images/databases/otel-collector.png) + +??? "Step 5: Visualize in OpenObserve" + + 1. Open **OpenObserve → Streams** and select your metrics stream. + ![Visualize Redis Metrics](../images/databases/redis-stream.png) + ![Visualize Redis Metrics](../images/databases/redis-stream-explore.png) + + 2. Create dashboards to monitor Redis memory, connections, and operations. + +## Troubleshooting + +??? "Authentication Errors" + - Check that `requirepass` is set in `redis.conf` if using a password. + - Ensure `REDIS_PASSWORD` env variable matches your Redis configuration. + +??? "Connection Refused" + - Verify Redis is running and accessible on the specified host/port. + - Check firewall or container networking. + +??? "TLS Issues" + - If using TLS, configure `ca_file`, `cert_file`, and `key_file` properly. + - Use `tls.insecure_skip_verify: true` only for testing. + +??? "No Metrics in OpenObserve" + - Inspect Collector logs for errors. + - Verify exporter endpoint and token configuration. + - Ensure OpenObserve is reachable from the Collector. diff --git a/docs/integration/database/zookeeper.md b/docs/integration/database/zookeeper.md new file mode 100644 index 00000000..e72d8c78 --- /dev/null +++ b/docs/integration/database/zookeeper.md @@ -0,0 +1,106 @@ +--- +title: Zookeeper Metrics Integration Guide +description: This guide explains how to monitor Apache Zookeeper metrics using the OpenTelemetry Collector with the Zookeeper receiver, and forward them to OpenObserve for visualization and analysis. +--- + +# Integration with Zookeeper Metrics + +This guide provides step-by-step instructions to collect and monitor Apache Zookeeper metrics using **OpenTelemetry Collector Contrib** and forward them to OpenObserve. + +## Overview + +Apache Zookeeper is a centralized service for maintaining configuration information, naming, distributed synchronization, and group services. +Monitoring Zookeeper is critical to ensure **availability, performance, and stability** across distributed systems. + + +## Steps to Integrate + +??? "Prerequisites" + - Running **Apache Zookeeper instance(s)** + - OpenObserve account ([Cloud](https://cloud.openobserve.ai/web/) or [Self-Hosted](../../../quickstart/#self-hosted-installation)) + +??? "Step 1: Update Apache Zookeeper Configuration" + + > The main configuration file for Apache ZooKeeper is named zoo.cfg and is typically located in the /conf directory. + + 1. UpdateZookeeper config: + Add: + ```conf + 4lw.commands.whitelist=mntr,ruok,conf,envi,stat + ``` + + 2. Restart and check Zookeeper: + ```bash + /opt/zookeeper/bin/zkServer.sh start + /opt/zookeeper/bin/zkServer.sh status + ``` + +??? "Step 2: Install OpenTelemetry Collector Contrib" + + 1. Download and install `otelcol-contrib`: + ```bash + wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.116.1/otelcol-contrib_0.116.1_linux_amd64.deb + sudo dpkg -i otelcol-contrib_0.116.1_linux_amd64.deb + ``` + + 2. Start and check version: + ```bash + otelcol-contrib --version + ``` + +??? "Step 3: Configure the Collector" + + Edit `/etc/otelcol-contrib/config.yaml` with the following configuration: + + ```yaml + receivers: + zookeeper: + endpoint: "localhost:2181" + + exporters: + otlphttp/openobserve: + endpoint: https:///api/default + headers: + Authorization: Basic + stream-name: default + + service: + pipelines: + metrics: + receivers: [zookeeper] + exporters: [otlphttp/openobserve] + ``` + + Replace `` and `` with your actual OpenObserve details. + + ![OpenObserve Creds](../images/databases/otel-metrics-cred.png) + +??? "Step 4: Run the Collector" + + Start the Collector service: + + ```bash + sudo systemctl start otelcol-contrib + sudo systemctl status otelcol-contrib + ``` + +??? "Step 5: Visualize in OpenObserve" + + 1. Navigate to **OpenObserve → Streams** and select your metrics stream. + 2. Search for Zookeeper metrics. + ![Visualize Zookeeper Metrics](../images/databases/zookeeper-metrics.png) + 3. Visualize and Analyze data using Dashboards + > To make it easy, we have a prebuilt zookeeper dashboard that should help you get started with the metrics monitoring which can be found [here](https://github.com/openobserve/dashboards). + + + +## Troubleshooting + +??? "Collector Connection Issues" + - Verify `localhost:2181` is accessible from the Collector. + - Confirm the 4-letter words (`mntr`, `stat`) are whitelisted in `zoo.cfg`. + +??? "No Metrics in OpenObserve" + - Check Collector logs for parsing errors. + - Confirm correct endpoint and auth token. + - Ensure OpenObserve is reachable from your server. diff --git a/docs/integration/devops/.pages b/docs/integration/devops/.pages index aa57f78d..c01ca206 100644 --- a/docs/integration/devops/.pages +++ b/docs/integration/devops/.pages @@ -1,5 +1,5 @@ nav: - + - DevOps Integrations Overview: index.md - Jenkins: jenkins.md - Ansible: ansible.md - Terraform: terraform.md diff --git a/docs/integration/images/databases/aerospike-metric-explore.png b/docs/integration/images/databases/aerospike-metric-explore.png new file mode 100644 index 00000000..864b5ed2 Binary files /dev/null and b/docs/integration/images/databases/aerospike-metric-explore.png differ diff --git a/docs/integration/images/databases/aerospike-stream.png b/docs/integration/images/databases/aerospike-stream.png new file mode 100644 index 00000000..0b2d6278 Binary files /dev/null and b/docs/integration/images/databases/aerospike-stream.png differ diff --git a/docs/integration/images/databases/cassandra-logs.png b/docs/integration/images/databases/cassandra-logs.png new file mode 100644 index 00000000..232999ed Binary files /dev/null and b/docs/integration/images/databases/cassandra-logs.png differ diff --git a/docs/integration/images/databases/cassandra-metrics.png b/docs/integration/images/databases/cassandra-metrics.png new file mode 100644 index 00000000..8c1d8ed4 Binary files /dev/null and b/docs/integration/images/databases/cassandra-metrics.png differ diff --git a/docs/integration/images/databases/mysql-metrics.png b/docs/integration/images/databases/mysql-metrics.png new file mode 100644 index 00000000..50f69337 Binary files /dev/null and b/docs/integration/images/databases/mysql-metrics.png differ diff --git a/docs/integration/images/databases/openobserve-creds.png b/docs/integration/images/databases/openobserve-creds.png new file mode 100644 index 00000000..253c8fda Binary files /dev/null and b/docs/integration/images/databases/openobserve-creds.png differ diff --git a/docs/integration/images/databases/oracle-metrics.png b/docs/integration/images/databases/oracle-metrics.png new file mode 100644 index 00000000..7771558a Binary files /dev/null and b/docs/integration/images/databases/oracle-metrics.png differ diff --git a/docs/integration/images/databases/otel-collector.png b/docs/integration/images/databases/otel-collector.png new file mode 100644 index 00000000..a12140ef Binary files /dev/null and b/docs/integration/images/databases/otel-collector.png differ diff --git a/docs/integration/images/databases/otel-metrics-cred.png b/docs/integration/images/databases/otel-metrics-cred.png new file mode 100644 index 00000000..9701fa73 Binary files /dev/null and b/docs/integration/images/databases/otel-metrics-cred.png differ diff --git a/docs/integration/images/databases/redis-stream-explore.png b/docs/integration/images/databases/redis-stream-explore.png new file mode 100644 index 00000000..fa490c9c Binary files /dev/null and b/docs/integration/images/databases/redis-stream-explore.png differ diff --git a/docs/integration/images/databases/redis-stream.png b/docs/integration/images/databases/redis-stream.png new file mode 100644 index 00000000..20865540 Binary files /dev/null and b/docs/integration/images/databases/redis-stream.png differ diff --git a/docs/integration/images/databases/visualize-mongo-metrics.png b/docs/integration/images/databases/visualize-mongo-metrics.png new file mode 100644 index 00000000..45cfe2d3 Binary files /dev/null and b/docs/integration/images/databases/visualize-mongo-metrics.png differ diff --git a/docs/integration/images/databases/zookeeper-metrics.png b/docs/integration/images/databases/zookeeper-metrics.png new file mode 100644 index 00000000..a15c6c00 Binary files /dev/null and b/docs/integration/images/databases/zookeeper-metrics.png differ diff --git a/docs/integration/servers/.pages b/docs/integration/servers/.pages index 090114de..ca7d6dbd 100644 --- a/docs/integration/servers/.pages +++ b/docs/integration/servers/.pages @@ -1,5 +1,6 @@ nav: + - Servers Integrations Overview: index.md - Nginx: nginx.md \ No newline at end of file diff --git a/docs/sql-functions/approximate-aggregate/.pages b/docs/sql-functions/approximate-aggregate/.pages index 382edce0..069d3026 100644 --- a/docs/sql-functions/approximate-aggregate/.pages +++ b/docs/sql-functions/approximate-aggregate/.pages @@ -1,6 +1,6 @@ nav: -- Overview: index.md +- Approximate Aggregate Overview: index.md - approx_topk : approx-topk.md - approx-topk-distinct: approx-topk-distinct.md