Ingestion Overview
Overview
SigNoz is designed with an OpenTelemetry-first approach, natively supporting the OpenTelemetry Protocol. In addition to OpenTelemetry compatibility, SigNoz also provides custom in-house endpoints for enhanced functionality.
Get Started
- If you haven't already done so, sign up for a SigNoz Cloud account.
- After logging into your SigNoz Cloud account, create an Ingestion Key.
Endpoint
Based on your SigNoz Cloud environment, you must configure your applications to use the relevant endpoint and port from the table below:
Region | Endpoint | Port |
---|---|---|
United States (US) |
| 443 |
Europe (EU) |
| 443 |
India (IN) |
| 443 |
Notes
- SigNoz uses port 443 for both OTLP/HTTP and OTLP/gRPC protocols, consolidating traffic through a single port. This approach diverges from the conventional use of separate ports (4317 for OTLP/gRPC and 4318 for OTLP/HTTP) typically seen in OpenTelemetry documentation.
Language SDK Configuration
Configuration typically involves setting the OTEL_EXPORTER_OTLP_ENDPOINT
environment variable. Refer to the SigNoz instrumentation docs for language-specific details.
If you are using the signal agnostic environment variable (OTEL_EXPORTER_OTLP_ENDPOINT
), you can simply set OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.<region>.signoz.cloud:443
and the exporter should append the appropriate path for the signal type (such as v1/traces or v1/metrics). Similarly, if you are using OTLP/GRPC, setting the variable OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.<region>.signoz.cloud:443
(replace with your endpoint from the above table).
OpenTelemetry Collector Configuration
Configure the OpenTelemetry exporter in your collector configuration file to point to the appropriate SigNoz endpoint.
exporters:
<otlp|otlphttp>:
endpoint: <endpoint>
The following endpoints are deprecated:
- ingest.signoz.io
- ingest-in.signoz.io
- ingest-eu.signoz.io
Authentication Methods
All endpoints are protected by header based key authentication. The header signoz-ingestion-key
must be set to the value of your ingestion key in order to successfully ingest data. Additionally, SigNoz also supports basic authentication which means that the header authorization
may also additionally be used to ingest data.
Language SDK Configuration
The mechanism to configure headers will vary, but OpenTelemetry language SDKs generally support setting the OTEL_EXPORTER_OTLP_HEADERS=signoz-ingestion-key=<key>
environment variable. Refer to the SigNoz instrumentation docs for language-specific details.
OpenTelemetry Collector Configuration
Configure the OpenTelemetry exporter in your collector configuration with the appropriate header values.
exporters:
<otlp|otlphttp>:
headers:
signoz-ingestion-key: <key>
The following ways of authentication are deprecated:
- Using the
signoz-access-token
header with the value set to your Ingestion key. - Using the
signoz-access-token
header with the value setBearer <key>
to your Ingestion key. - Using the
signoz-access-token
header for basic authentication. - Using the
authorization
header with the value setBearer <key>
to your Ingestion key.
Important Considerations
Payload Size Limit: In order to send data to SigNoz, your payloads must be smaller than the 16MB maximum payload size. Larger payloads will be rejected with an error status code.
Cross-Origin Resource Sharing (CORS): CORS is enabled on all SigNoz endpoints if you wish to send telemetry from your frontend applications.
Timeouts: Requests generally take longer when payloads are larger or networks are slower. If your application produces large payloads due to high telemetry volume or long export intervals, you may need to increase the default timeout settings to avoid export errors.
Compression: Enable compression while sending OTLP data. SigNoz supports gzip compression on all OTLP endpoints. Note that this compression does not apply to any custom endpoints supported by SigNoz.
Retries: Implement retry mechanisms to handle transient errors and reduce data loss.
Language SDK Configuration
OpenTelemetry SDKs generally support setting the following environment variables (see OpenTelemetry docs for more info):
OTEL_BSP_*
for spansOTEL_METRIC_EXPORT_*
for metricsOTEL_BLRP_*
for logs
Increase the default timeout settings using the
OTEL_EXPORTER_OTLP_TIMEOUT
environment variable. The value should be set in milliseconds. Example:OTEL_EXPORTER_OTLP_TIMEOUT=30000
. This sets the timeout to 30 seconds.Configure compression using the
OTEL_EXPORTER_OTLP_COMPRESSION=gzip
environment variable.For retries, configuration methods vary by language and SDK. Some SDKs support environment variables (e.g., Java:
OTEL_EXPERIMENTAL_EXPORTER_OTLP_RETRY_ENABLED=true
). Programmatic configuration may be necessary in some cases. Refer to your specific SDK's documentation for detailed retry configuration options
OpenTelemetry Collector Configuration
Configure the OpenTelemetry otlpexporter or otlphttpexporter in your collector configuration with the appropriate values. The defaults of these exporters can be found below:
exporters:
<otlp|otlphttp>:
...
timeout: 5s
compression: gzip
retry_on_failure:
enabled: true
initial_interval: 5s
max_interval: 30s
max_elapsed_time: 300s
sending_queue:
enabled: true
num_consumers: 10
queue_size: 1000