signoz/README.md

89 lines
4.5 KiB
Markdown
Raw Normal View History

2021-04-20 01:28:06 +05:30
<p align="center">
<img src="https://res.cloudinary.com/dcv3epinx/image/upload/v1618862211/signoz-images/LogoGithub_wigjff.svg" alt="SigNoz-logo" width="240" />
2021-01-03 17:32:59 +05:30
2021-04-20 01:28:06 +05:30
<p align="center">Monitor your applications and troubleshoot problems in your deployed applications, an open-source alternative to DataDog, New Relic, etc.</p>
</p>
2021-02-08 00:53:14 +05:30
2021-04-20 01:28:06 +05:30
[![MIT](https://img.shields.io/badge/license-MIT-brightgreen)](LICENSE)
2021-01-03 17:32:59 +05:30
2021-04-20 01:28:06 +05:30
##
2021-01-05 13:22:23 +05:30
2021-04-20 01:28:06 +05:30
SigNoz is an opensource observability platform. SigNoz uses distributed tracing to gain visibility into your systems and powers data using [Kafka](https://kafka.apache.org/) (to handle high ingestion rate and backpressure) and [Apache Druid](https://druid.apache.org/) (Apache Druid is a high performance real-time analytics database), both proven in the industry to handle scale.
2021-01-05 13:22:23 +05:30
2021-04-20 01:28:06 +05:30
<!-- ![SigNoz Feature](https://signoz.io/img/readme_feature1.jpg) -->
2021-01-05 13:22:23 +05:30
2021-04-20 01:28:06 +05:30
![SigNoz Feature](https://res.cloudinary.com/dcv3epinx/image/upload/v1618861225/signoz-images/application-github-readme_rkpklh.jpg)
2021-02-08 00:53:14 +05:30
2021-01-05 13:22:23 +05:30
### Features:
2021-04-20 01:28:06 +05:30
2021-03-03 00:47:33 +05:30
- Application overview metrics like RPS, 50th/90th/99th Percentile latencies, and Error Rate
2021-01-05 13:22:23 +05:30
- 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
2021-04-20 01:28:06 +05:30
- Filter traces by service name, operation, latency, error, tags/annotations.
2021-01-05 13:22:23 +05:30
- Aggregate metrics on filtered traces. Eg, you can get error rate and 99th percentile latency of `customer_type: gold` or `deployment_version: v2` or `external_call: paypal`
- Unified UI for metrics and traces. No need to switch from Prometheus to Jaeger to debug issues.
- In-built workflows to reduce your efforts in detecting common issues like new deployment failures, 3rd party slow APIs, etc (Coming Soon)
- Anomaly Detection Framework (Coming Soon)
### Motivation:
2021-04-20 01:28:06 +05:30
2021-03-03 00:47:33 +05:30
- SaaS vendors charge an insane amount to provide Application Monitoring. They often surprise you with huge month end bills without any transparency of data sent to them.
2021-01-05 13:22:23 +05:30
- Data privacy and compliance demands data to not leave the network boundary
2021-03-03 00:47:33 +05:30
- Highly scalable architecture
2021-01-24 14:01:50 +05:30
- No more magic happening in agents installed in your infra. You take control of sampling, uptime, configuration.
- Build modules over SigNoz to extend business specific capabilities
2021-01-05 13:22:23 +05:30
# Getting Started
## Deploy using docker-compose
2021-01-05 13:22:23 +05:30
We have a tiny-cluster setup and a standard setup to deploy using docker-compose.
2021-04-20 01:28:06 +05:30
Follow the steps listed at https://signoz.io/docs/deployment/docker/.
The troubleshooting instructions at https://signoz.io/docs/deployment/docker/#troubleshooting may be helpful
2021-04-20 01:28:06 +05:30
## Deploy in Kubernetes using Helm.
2021-04-20 01:28:06 +05:30
Below steps will install the SigNoz in platform namespace inside your k8s cluster.
2021-01-05 13:22:23 +05:30
```console
2021-01-05 16:52:39 +05:30
git clone https://github.com/SigNoz/signoz.git && cd signoz
2021-01-05 13:22:23 +05:30
helm dependency update deploy/kubernetes/platform
kubectl create ns platform
helm -n platform install signoz deploy/kubernetes/platform
kubectl -n platform apply -Rf deploy/kubernetes/jobs
kubectl -n platform apply -f deploy/kubernetes/otel-collector
```
2021-04-20 01:28:06 +05:30
\*_You can choose a different namespace too. In that case, you need to point your applications to correct address to send traces. In our sample application just change the `JAEGER_ENDPOINT` environment variable in `sample-apps/hotrod/deployment.yaml`_
2021-01-03 17:32:59 +05:30
2021-01-05 13:22:23 +05:30
### Test HotROD application with SigNoz
2021-01-03 17:32:59 +05:30
2021-01-05 13:22:23 +05:30
```console
kubectl create ns sample-application
kubectl -n sample-application apply -Rf sample-apps/hotrod/
```
2021-01-03 17:32:59 +05:30
### How to generate load
2021-01-05 13:22:23 +05:30
`kubectl -n sample-application run strzal --image=djbingham/curl --restart='OnFailure' -i --tty --rm --command -- curl -X POST -F 'locust_count=6' -F 'hatch_rate=2' http://locust-master:8089/swarm`
2021-01-03 17:32:59 +05:30
2021-01-05 13:22:23 +05:30
### See UI
2021-04-20 01:28:06 +05:30
2021-01-05 13:22:23 +05:30
`kubectl -n platform port-forward svc/signoz-frontend 3000:3000`
2021-01-03 17:32:59 +05:30
### How to stop load
2021-01-05 13:22:23 +05:30
`kubectl -n sample-application run strzal --image=djbingham/curl --restart='OnFailure' -i --tty --rm --command -- curl http://locust-master:8089/stop`
# Documentation
2021-04-20 01:28:06 +05:30
2021-03-03 00:47:33 +05:30
You can find docs at https://signoz.io/docs/deployment/docker. 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.
2021-01-05 13:22:23 +05:30
2021-04-20 01:28:06 +05:30
# Why use SigNoz rather than Prometheus/Jaeger
2021-01-05 13:22:23 +05:30
# Community
2021-04-20 01:28:06 +05:30
2021-03-03 00:47:33 +05:30
Join the [slack community](https://app.slack.com/client/T01HWUTP0LT#/) to know more about distributed tracing, observability, or SigNoz and to connect with other users and contributors.
2021-01-05 13:26:44 +05:30
2021-03-03 00:47:33 +05:30
If you have any ideas, questions, or any feedback, please share on our [Github Discussions](https://github.com/SigNoz/signoz/discussions)