Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions docs/public/images/services/signoz.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
95 changes: 95 additions & 0 deletions docs/services/signoz.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
title: SigNoz
description: "An observability platform native to OpenTelemetry with logs, traces and metrics."
---

# Soketi

<ZoomableImage src="/docs/images/services/signoz.svg" alt="SigNoz logo" />

## What is Soketi

SigNoz is an open source observability platform native to OpenTelemetry with logs, traces and metrics.

## Configuring SigNoz

The following steps will guide you through the configuration of SigNoz once you have created the service in Coolify.

### URLs configuration

Coolify being a whole observability platform, multiple ports need to be exposed for it to work.
The first one is the URL of the UI. You can find it in the "Service URL" field of the Signoz service, for example: `https://signoz.example.com:8080`

Then, you need to expose the Otel Collector, a service which is responsible for receiving traces, metrics and logs from your applications and services.
It supports many different formats such as GRPC, HTTP formats, Prometheus metrics, and [many logs formats](https://signoz.io/docs/userguide/logs/) (FluentBit/FluentD, syslogs, logs from cloud services, ...).

A different port is exposed for each receiver and we need to expose the relevant port for each receiver.
You have two strategies to do so:
- Configuring a different URL for each receiver.
- Directly exposing the ports to the host and the outside world.

Which option you prefers depends on you security needs and how you architecture your domains.

#### One subdomain per receiver

This solution only requires you to map your subdomain to the Otel Collector service. We will cover the two default receivers, the HTTP and GRPC receivers.

1. Make sure your subdomains have been registered and point to your server, such as `https://signoz-grpc.example.com` and `https://signoz-http.example.com`.
2. Open the "Otel Collector" service settings.
3. Add your domains with the format `https://<subdomain>.example.com:<port in container>`, separated by commas. For example: `https://signoz-grpc.example.com:4317,https://signoz-http.example.com:4318`

If you want to expose additional ports / receivers, simply add a new address to the list.

#### Exposing the ports on the host

If you prefer to use a single domain for all receivers, you can edit the Docker Compose to directly expose the ports on the otel-collector container:

```yaml
services:
# ...
otel-collector:
image: signoz/signoz-otel-collector:latest
container_name: signoz-otel-collector
# ...
ports:
- 4317:4317 # GRPC Collector
- 4318:4318 # HTTP Collector

# ...
```

You can now append the port to your service URL to send data to receiver: `https://signoz.example.com:4318`

### Enabling SMTP emailing

SigNoz uses emailing for two things: inviting users and to [send alerts](https://signoz.io/docs/alerts/).

#### SigNoz emails

To enable SMTP emailing (including inviting new team members), you need to set the following variables from the Environment Variables tab of your Coolify service:

- `SIGNOZ_EMAILING_ENABLED` enables emailing capabilities in SigNoz.
- `SIGNOZ_EMAILING_SMTP_ADDRESS` is the address of the SMTP server to use, in the format `host:port`.
- `SIGNOZ_EMAILING_SMTP_FROM` is the email address to use in the From field.
- `SIGNOZ_EMAILING_SMTP_AUTH_USERNAME` and `SIGNOZ_EMAILING_SMTP_AUTH_PASSWORD` are used to authenticate with the SMTP server.

More environment variables are [available to use](https://signoz.io/docs/manage/administrator-guide/configuration/smtp-email-invitations/) to use authenticate via Identity / Secret or use TLS instead of SmartTLS. Read [Passing environment variables not included in the template](passing-environment-variables-not-included-in-the-template) to learn how to add them.

#### Alert Manager emails

Email alerts can only be sent if an SMTP server is configured specifically for the alert manager. The global SMTP configuration and the Alert Manager configuration use different environment variables.

**Note**: SigNoz has a current known issue preventing email alerting configuration from being saved. You can track the progress of this [issue in their bug tracker](https://github.com/SigNoz/signoz/issues/8478).

To enable email alerts, you need to set the following variables from the Environment Variables tab of your Coolify service:

- `SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__SMARTHOST` is the address of the SMTP server to use, in the format `host:port`.
- `SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__FROM` is the email address to use in the From field.
- `SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__AUTH__USERNAME` and `SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__AUTH__PASSWORD` are used to authenticate with the SMTP server.

More environment variables are [available to use](https://signoz.io/docs/manage/administrator-guide/configuration/alertmanager/) to use authenticate via Identity / Secret or use TLS instead of SmartTLS. Read [Passing environment variables not included in the template](passing-environment-variables-not-included-in-the-template) to learn how to add them.

## Links

- [Official Documentation](https://signoz.io/docs/introduction/)
- [OpenTelemetry Documentation](https://opentelemetry.io/)