dlogify docs

OpenTelemetry (OTLP)

Send logs over OTLP/HTTP from any OpenTelemetry SDK, Collector or agent.

By the end of this page any OpenTelemetry SDK, the OpenTelemetry Collector, Vector or Fluent Bit sends its logs to dlogify with its standard OTLP exporter.

Endpoint

TransportEndpoint
OTLP/HTTPPOST https://api.dlogify.com/v1/logs, body application/x-protobuf or application/json, optionally Content-Encoding: gzip
OTLP/gRPCNot available on api.dlogify.com yet. Use OTLP/HTTP.

A successful export returns 200 with an ExportLogsServiceResponse in the request's format.

Authentication

Send your project API key in the Authorization header:

Authorization: Bearer lgf_live_…

Environment variables

Most OpenTelemetry SDKs and agents read the standard variables. Note that the logs endpoint variable takes the full URL, path included, and that the header value is URL-encoded (%20 for the space):

export OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://api.dlogify.com/v1/logs
export OTEL_EXPORTER_OTLP_LOGS_HEADERS="Authorization=Bearer%20lgf_live_…"
export OTEL_SERVICE_NAME=checkout

Field mapping

Each log record becomes one event:

dlogify fieldFromWhen missing
serviceresource attribute service.nameunknown_service
environmentresource attribute deployment.environment.name, else deployment.environmentdefault
releaseresource attribute service.versionempty
timestamptime_unix_nano, else observed_time_unix_nanothe time dlogify received it
levelseverity_text (and severity_number, see Level mapping)empty
messagethe record's body; a structured body is rendered as JSON<exception.type>: <exception.message> from the record's attributes; without either, the record is rejected
stack_tracerecord attribute exception.stacktraceempty
trace_id, span_idthe record's ids, as lowercase hexempty
attributesrecord attributes, then resource attributes, then otel.scope.name; on a duplicate key the record wins—

Values longer than the event limits are cut and the event is flagged as truncated (see Limits).

Partial success

A record with no body and no exception.type or exception.message is dropped. The rest of the export is accepted, and the response's partial_success reports rejected_log_records with an error_message. Rejected records do not count toward your rate limit or monthly quota. An export whose records are all rejected returns 400.

Errors

Errors are problems with the same statuses as REST. OTLP exporters retry 429, 502, 503 and 504, honoring Retry-After, and drop the rest, so watch for 413 payload-too-large: it means your batches are too big and the data was not sent.

OpenTelemetry Collector

To collect the logs of Docker containers or Kubernetes pods, use the ready-made Collector presets. To send from a Collector you already run, add an otlphttp exporter and keep batches within the limits:

exporters:
  otlphttp/dlogify:
    endpoint: https://api.dlogify.com
    headers:
      authorization: Bearer ${env:LOGIFY_API_KEY}
processors:
  batch:
    # At most 1,000 records and 1 MB (decompressed) per request. The default of
    # 8192 records would be rejected with 413 and not retried.
    send_batch_size: 1000
    send_batch_max_size: 1000
service:
  pipelines:
    logs:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp/dlogify]

The batch processor counts records, not bytes: 1,000 records of about 2 KB each exceed the 1 MB body limit. If your records are large, lower send_batch_max_size so the largest batch stays under the limit.

On this page