1. Added DB metrics via otelsql.RegisterDBStatsMetrics() `db.sql.connection.open` `db.sql.connection.max_open` `db.sql.connection.wait` `db.sql.connection.wait_duration` `db.sql.connection.closed_max_idle` `db.sql.connection.closed_max_idle_time` `db.sql.latency.*` 2. renamed these metrics to signoz convention/expected names `db.sql.connection.open` -> `db.client.connection.usage` `db.sql.connection.max_open` -> `db.client.connection.max` `db.sql.connection.wait` -> `db.client.connection.wait_count` `db.sql.connection.wait_duration` -> `db.client.connection.wait_time` `db.sql.connection.closed_max_idle` -> `db.client.connection.idle.max` `db.sql.connection.closed_max_idle_time` -> `db.client.connection.idle.min` 3. created custom dashboard to display these metrics, (import via json) <img width="1580" height="906" alt="Screenshot 2026-03-19 at 2 44 43 PM" src="https://github.com/user-attachments/assets/f1b64ed6-e534-4490-8955-bc1205dd21d4" /> 4. Fixed metrics for service db dashboards Signoz expects `db.system` : Identifies the database type (e.g., postgresql, mysql, mongodb). `db.statement` : The actual query being executed (e.g., SELECT * FROM users). `db.operation` : The type of operation (e.g., SELECT, INSERT). `service.name` : The name of the service making the call. We needed to set the `db.system` attribute explicitly. `db.operation` is missing because otelsql doesn't capture this by default. Decided not to add this for now as the dashboards work without. Can be a future enhancement. <img width="1563" height="487" alt="Screenshot 2026-03-19 at 2 45 18 PM" src="https://github.com/user-attachments/assets/51028e16-ee2c-45a9-9025-26f17b0db67a" /> # Checklist for submitter ## Testing - [x] QA'd all new/changed functionality manually <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Added a new observability dashboard for database and connection performance metrics, including RPS, latency, connection pool saturation, and queue statistics. * Enhanced database metrics collection with automatic registration of connection and query performance indicators. * Standardized OpenTelemetry metric naming to align with industry conventions for improved observability compatibility. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|---|---|---|
| .. | ||
| database_custom_dashboard.json | ||
| README.md | ||
Running SigNoz locally with Fleet
SigNoz is an open-source observability platform that provides traces, metrics, and logs in a single UI. This guide explains how to run SigNoz locally for Fleet development with optimized settings for reduced latency.
Prerequisites
- Docker and Docker Compose
- A locally-built Fleet server (see Testing and local development)
Setup
- Clone the SigNoz repository at a specific release:
git clone --branch v0.110.1 --depth 1 https://github.com/SigNoz/signoz.git
cd signoz/deploy
- Modify the SigNoz UI port to avoid conflict with Fleet (which uses port 8080):
In docker/docker-compose.yaml, change the signoz service port mapping:
services:
signoz:
ports:
- "8085:8080" # Changed from 8080:8080 to avoid conflict with Fleet
- (Optional) For reduced latency during development, modify
docker/otel-collector-config.yaml:
processors:
batch:
send_batch_size: 10000
send_batch_max_size: 11000
timeout: 200ms # reduced from 10s for dev
# ...
signozspanmetrics/delta:
# ...
metrics_flush_interval: 5s # reduced from 60s for dev
- Start SigNoz:
cd docker
docker compose up -d
Give it a minute for all services to initialize. The SigNoz UI will be available at http://localhost:8085.
Configuring Fleet
Start the Fleet server with OpenTelemetry tracing and logging enabled:
export FLEET_LOGGING_TRACING_ENABLED=true
export FLEET_LOGGING_OTEL_LOGS_ENABLED=true
export OTEL_SERVICE_NAME=fleet
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
./build/fleet serve
Note: All log levels (including debug) are always sent to SigNoz regardless of the
--logging_debugflag. That flag only controls stderr output.
Low-latency configuration (optional)
For faster feedback during development, you can reduce the batch processing delays on the Fleet side:
# Batch span processor delay (default 5000ms)
export OTEL_BSP_SCHEDULE_DELAY=1000
# Log batch processor settings
export OTEL_BLRP_EXPORT_TIMEOUT=1000
export OTEL_BLRP_SCHEDULE_DELAY=500
export OTEL_BLRP_MAX_EXPORT_BATCH_SIZE=1
./build/fleet serve
Using SigNoz
After starting Fleet with the above configuration, you should start seeing traces, logs, and metrics in SigNoz UI at http://localhost:8085.