Signoz

Is available at apm.perma.health.

Credentials: developer@permaplant.net:OYD@ayu6@SV@Omd0rczMy#vrIlVn#IVt


1. Metrics (Service Health & Infrastructure)

SigNoz aggregates metrics via the OTel Collector. This section is used for high-level monitoring and performance profiling.

  • Dashboards: Pre-built or custom JSON-defined dashboards using ClickHouse as the storage engine. You can query metrics using PromQL or the Clickhouse Query builder.

  • Key Views: * Service Overview: Automatically calculated RED metrics (Rate, Errors, Duration) derived from span data.

  • DB/External Calls: Latency and throughput for downstream dependencies (SQL queries, Redis commands, HTTP egress).

  • Usage: Use this to set Alerts on P99 latency thresholds or error rate percentage spikes.

2. Traces (Distributed Request Context)

The Traces tab provides a granular view of request flow across distributed systems.

  • Search & Filter: Filter by tags like http.status_code, db.system, or custom business logic attributes injected into the span context.
  • Flamegraphs & Gantt Charts: Analyze the execution path of a single TraceId. You can identify synchronous blocking calls or inefficient sequential processing.
  • Span Details: View raw metadata for each operation, including the service.name, operation, and any associated Events (like exceptions) attached to the span.
  • Usage: Essential for identifying tail latency and debugging failures in complex microservice orchestrations.

3. Logs (Structured Event Data)

SigNoz uses a columnar storage format (ClickHouse) for logs, making high-cardinality searches significantly faster than traditional text-based stores.

  • Log Management: Supports structured logging (JSON). Fields like severity_text, body, and attributes are automatically indexed.
  • Trace-Log Correlation: This is the "killer feature." If your application logs include the trace_id and span_id, SigNoz provides a one-click pivot from a specific log line to the distributed trace that generated it (and vice versa).
  • Usage: Searching for stack traces, specific user_id contexts, or debugging internal state transitions that aren't captured by spans.