Convert Figma logo to code with AI

SigNoz logosignoz

SigNoz is an open-source observability platform native to OpenTelemetry with logs, traces and metrics in a single application. An open-source alternative to DataDog, NewRelic, etc. 🔥 🖥. 👉 Open source Application Performance Monitoring (APM) & Observability tool

18,321
1,165
18,321
1,200

Top Related Projects

63,808

The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

19,705

Your window into the Elastic Stack

The Prometheus monitoring system and time series database.

20,160

CNCF Jaeger, a Distributed Tracing Platform

APM, Application Performance Monitoring System

Quick Overview

SigNoz is an open-source application performance monitoring (APM) and observability platform. It provides developers with a comprehensive solution for monitoring and troubleshooting their applications, offering features like distributed tracing, metrics, and logs management in a single, unified interface.

Pros

  • All-in-one solution for metrics, traces, and logs
  • User-friendly interface with customizable dashboards
  • Open-source and self-hosted, providing better data control and privacy
  • Compatible with OpenTelemetry, making it easy to integrate with existing systems

Cons

  • Relatively new project, may have fewer features compared to established commercial APM tools
  • Self-hosting requires more setup and maintenance compared to SaaS solutions
  • Limited community support and documentation compared to more mature projects
  • May require additional resources for deployment and scaling in large environments

Getting Started

To get started with SigNoz, follow these steps:

  1. Clone the repository:
git clone https://github.com/SigNoz/signoz.git && cd signoz
  1. Run the install script:
./deploy/docker/install.sh
  1. Access the SigNoz UI at http://localhost:3301

  2. To send data to SigNoz, instrument your application with OpenTelemetry. Here's an example for a Node.js application:

const { NodeSDK } = require('@opentelemetry/sdk-node');
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
const { Resource } = require('@opentelemetry/resources');
const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions');

const sdk = new NodeSDK({
  resource: new Resource({
    [SemanticResourceAttributes.SERVICE_NAME]: 'my-service',
  }),
  traceExporter: new OTLPTraceExporter({
    url: 'http://localhost:4318/v1/traces',
  }),
});

sdk.start();

For more detailed instructions and language-specific examples, refer to the SigNoz documentation.

Competitor Comparisons

63,808

The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

Pros of Grafana

  • Extensive visualization options and customizable dashboards
  • Large ecosystem with numerous plugins and integrations
  • Mature project with a strong community and extensive documentation

Cons of Grafana

  • Steeper learning curve for complex configurations
  • Requires additional setup for full observability stack (e.g., Prometheus, Loki)

Code Comparison

Grafana (dashboard configuration):

{
  "panels": [
    {
      "type": "graph",
      "title": "CPU Usage",
      "datasource": "Prometheus",
      "targets": [
        { "expr": "node_cpu_usage_percent" }
      ]
    }
  ]
}

SigNoz (dashboard configuration):

{
  "panels": [
    {
      "type": "timeseries",
      "name": "CPU Usage",
      "query": "SELECT avg(cpu_usage_percent) FROM system_metrics"
    }
  ]
}

Summary

Grafana is a powerful and flexible visualization tool with a vast ecosystem, while SigNoz offers a more integrated, all-in-one observability solution. Grafana excels in customization and third-party integrations but may require more setup time. SigNoz provides a simpler, out-of-the-box experience for full-stack observability but may have fewer advanced features compared to Grafana's extensive plugin ecosystem.

19,705

Your window into the Elastic Stack

Pros of Kibana

  • Mature and widely adopted ecosystem with extensive documentation and community support
  • Powerful visualization capabilities and customizable dashboards
  • Seamless integration with other Elastic Stack components

Cons of Kibana

  • Steep learning curve and complex setup process
  • Resource-intensive, especially for large-scale deployments
  • Licensing costs for advanced features and enterprise support

Code Comparison

Kibana (JavaScript):

import { i18n } from '@kbn/i18n';
import { CoreSetup, CoreStart, Plugin } from '../../../core/public';
import { KibanaUsageCollectionSetup } from '../../../plugins/usage_collection/public';

export class MyPlugin implements Plugin {
  public setup(core: CoreSetup, plugins: { usageCollection?: KibanaUsageCollectionSetup }) {}
}

SigNoz (TypeScript):

import { Plugin, CoreSetup, CoreStart } from '../../../core/server';
import { PluginInitializerContext } from '../../../core/server';

export class SigNozPlugin implements Plugin {
  constructor(private readonly initializerContext: PluginInitializerContext) {}
  public async setup(core: CoreSetup) {}
}

Both repositories use similar plugin architectures, but SigNoz employs TypeScript for improved type safety. Kibana's codebase is more extensive due to its longer development history and broader feature set.

The Prometheus monitoring system and time series database.

Pros of Prometheus

  • Mature and widely adopted monitoring system with extensive ecosystem support
  • Powerful query language (PromQL) for flexible data analysis
  • Built-in alerting capabilities

Cons of Prometheus

  • Steep learning curve for complex setups and configurations
  • Limited long-term storage options without additional components
  • Lacks built-in distributed tracing functionality

Code Comparison

Prometheus configuration (prometheus.yml):

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'example'
    static_configs:
      - targets: ['localhost:8080']

SigNoz configuration (docker-compose.yml):

version: '3'
services:
  clickhouse:
    image: clickhouse/clickhouse-server:22.8.8
  otel-collector:
    image: signoz/otel-collector:0.76.1
  query-service:
    image: signoz/query-service:0.25.0
  frontend:
    image: signoz/frontend:0.25.0

SigNoz offers a more integrated approach with distributed tracing and metrics in a single platform, while Prometheus focuses primarily on metrics monitoring. Prometheus has a larger community and ecosystem, but SigNoz provides an easier setup for full-stack observability. Both have their strengths, and the choice depends on specific monitoring requirements and infrastructure complexity.

20,160

CNCF Jaeger, a Distributed Tracing Platform

Pros of Jaeger

  • More mature and widely adopted in the industry
  • Supports multiple storage backends (Cassandra, Elasticsearch, etc.)
  • Extensive documentation and community support

Cons of Jaeger

  • Requires additional components for a complete observability stack
  • Steeper learning curve for beginners
  • Limited built-in analytics and visualization capabilities

Code Comparison

Jaeger (Go):

tracer, closer := jaeger.NewTracer(
    "my-service",
    jaeger.NewConstSampler(true),
    jaeger.NewInMemoryReporter(),
)
defer closer.Close()

SigNoz (JavaScript):

const tracer = new opentelemetry.NodeTracerProvider({
  resource: new opentelemetry.Resource({
    [opentelemetry.SemanticResourceAttributes.SERVICE_NAME]: 'my-service',
  }),
});
tracer.register();

Both Jaeger and SigNoz are open-source distributed tracing systems, but they differ in their approach and features. Jaeger is a more established project with broader adoption and flexibility in storage options. However, it may require additional setup for a complete observability solution.

SigNoz, on the other hand, aims to provide a more comprehensive out-of-the-box experience with integrated metrics, traces, and logs. It offers a user-friendly interface and built-in analytics, making it easier for beginners to get started. However, it may have fewer storage options and a smaller community compared to Jaeger.

The code examples show the initialization of tracers in both systems, highlighting the different approaches and languages used (Go for Jaeger, JavaScript for SigNoz).

APM, Application Performance Monitoring System

Pros of Skywalking

  • More mature project with a larger community and ecosystem
  • Supports a wider range of programming languages and frameworks
  • Offers more advanced features like service mesh observability and continuous profiling

Cons of Skywalking

  • Steeper learning curve and more complex setup process
  • Requires more resources to run and maintain
  • UI can be overwhelming for beginners due to its extensive features

Code Comparison

SigNoz (JavaScript):

const { trace } = require('@opentelemetry/api');
const tracer = trace.getTracer('my-service');

tracer.startActiveSpan('my-operation', (span) => {
  // Your code here
  span.end();
});

Skywalking (Java):

import org.apache.skywalking.apm.toolkit.trace.ActiveSpan;
import org.apache.skywalking.apm.toolkit.trace.TraceContext;

ActiveSpan.tag("key", "value");
String traceId = TraceContext.traceId();
ActiveSpan.error(new RuntimeException("Something wrong"));

Both SigNoz and Skywalking are open-source application performance monitoring (APM) tools. SigNoz focuses on simplicity and ease of use, making it a good choice for smaller teams or those new to observability. Skywalking offers more advanced features and broader language support, suitable for larger enterprises with complex infrastructures. The code examples show how to create and manage spans in each system, with Skywalking providing more built-in functionality for tagging and error handling.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

SigNoz-logo

Monitor your applications and troubleshoot problems in your deployed applications, an open-source alternative to DataDog, New Relic, etc.

Downloads GitHub issues tweet

DocumentationReadMe in ChineseReadMe in GermanReadMe in PortugueseSlack CommunityTwitter

SigNoz helps developers monitor applications and troubleshoot problems in their deployed applications. With SigNoz, you can:

👉 Visualise Metrics, Traces and Logs in a single pane of glass

👉 You can see metrics like p99 latency, error rates for your services, external API calls and individual end points.

👉 You can find the root cause of the problem by going to the exact traces which are causing the problem and see detailed flamegraphs of individual request traces.

👉 Run aggregates on trace data to get business relevant metrics

👉 Filter and query logs, build dashboards and alerts based on attributes in logs

👉 Record exceptions automatically in Python, Java, Ruby, and Javascript

👉 Easy to set alerts with DIY query builder

Application Metrics

application_metrics

Distributed Tracing

distributed_tracing_2 2 distributed_tracing_1

Logs Management

logs_management

Infrastructure Monitoring

infrastructure_monitoring

Exceptions Monitoring

exceptions_light

Alerts

alerts_management



Join our Slack community

Come say Hi to us on Slack 👋



Features:

  • Unified UI for metrics, traces and logs. No need to switch from Prometheus to Jaeger to debug issues, or use a logs tool like Elastic separate from your metrics and traces stack.
  • Application overview metrics like RPS, 50th/90th/99th Percentile latencies, and Error Rate
  • Slowest endpoints in your application
  • See exact request trace to figure out issues in downstream services, slow DB queries, call to 3rd party services like payment gateways, etc
  • Filter traces by service name, operation, latency, error, tags/annotations.
  • Run aggregates on trace data (events/spans) to get business relevant metrics. e.g. You can get error rate and 99th percentile latency of customer_type: gold or deployment_version: v2 or external_call: paypal
  • Native support for OpenTelemetry Logs, advanced log query builder, and automatic log collection from k8s cluster
  • Lightning quick log analytics (Logs Perf. Benchmark)
  • End-to-End visibility into infrastructure performance, ingest metrics from all kinds of host environments
  • Easy to set alerts with DIY query builder



Why SigNoz?

Being developers, we found it annoying to rely on closed source SaaS vendors for every small feature we wanted. Closed source vendors often surprise you with huge month end bills without any transparency.

We wanted to make a self-hosted & open source version of tools like DataDog, NewRelic for companies that have privacy and security concerns about having customer data going to third party services.

Being open source also gives you complete control of your configuration, sampling, uptimes. You can also build modules over SigNoz to extend business specific capabilities

Languages supported:

We support OpenTelemetry as the library which you can use to instrument your applications. So any framework and language supported by OpenTelemetry is also supported by SigNoz. Some of the main supported languages are:

  • Java
  • Python
  • Node.js
  • Go
  • PHP
  • .NET
  • Ruby
  • Elixir
  • Rust

You can find the complete list of languages here - https://opentelemetry.io/docs/



Getting Started

Deploy using Docker

Please follow the steps listed here to install using docker

The troubleshooting instructions may be helpful if you face any issues.

 

Deploy in Kubernetes using Helm

Please follow the steps listed here to install using helm charts



Comparisons to Familiar Tools

SigNoz vs Prometheus

Prometheus is good if you want to do just metrics. But if you want to have a seamless experience between metrics and traces, then current experience of stitching together Prometheus & Jaeger is not great.

Our goal is to provide an integrated UI between metrics & traces - similar to what SaaS vendors like Datadog provides - and give advanced filtering and aggregation over traces, something which Jaeger currently lack.

 

SigNoz vs Jaeger

Jaeger only does distributed tracing. SigNoz supports metrics, traces and logs - all the 3 pillars of observability.

Moreover, SigNoz has few more advanced features wrt Jaeger:

  • Jaegar UI doesn’t show any metrics on traces or on filtered traces
  • Jaeger can’t get aggregates on filtered traces. For example, p99 latency of requests which have tag - customer_type='premium'. This can be done easily on SigNoz

 

SigNoz vs Elastic

  • SigNoz Logs management are based on ClickHouse, a columnar OLAP datastore which makes aggregate log analytics queries much more efficient
  • 50% lower resource requirement compared to Elastic during ingestion

We have published benchmarks comparing Elastic with SigNoz. Check it out here

 

SigNoz vs Loki

  • SigNoz supports aggregations on high-cardinality data over a huge volume while loki doesn’t.
  • SigNoz supports indexes over high cardinality data and has no limitations on the number of indexes, while Loki reaches max streams with a few indexes added to it.
  • Searching over a huge volume of data is difficult and slow in Loki compared to SigNoz

We have published benchmarks comparing Loki with SigNoz. Check it out here



Contributing

We ❤️ contributions big or small. Please read CONTRIBUTING.md to get started with making contributions to SigNoz.

Not sure how to get started? Just ping us on #contributing in our slack community

Project maintainers

Backend

Frontend

DevOps



Documentation

You can find docs at https://signoz.io/docs/. If you need any clarification or find something missing, feel free to raise a GitHub issue with the label documentation or reach out to us at the community slack channel.



Community

Join the slack community to know more about distributed tracing, observability, or SigNoz and to connect with other users and contributors.

If you have any ideas, questions, or any feedback, please share on our Github Discussions

As always, thanks to our amazing contributors!