Observability

Logs, metrics, HTTP requests and OpenTelemetry traces for every Hangar service, with alerts on CPU, memory, error rate and latency.

Updated

Every service on Hangar comes with its logs, resource metrics and HTTP requests, collected for you with nothing to install. Add an OpenTelemetry SDK and you also get traces, and alerts on error rate and latency.

All of it is on the service's own tabs: Logs, Metrics and Traces.

Logs

The Logs tab has two views:

  • Live streams what the service writes to standard output and standard error, as it happens.
  • History keeps those lines, so you can go back to what happened during an incident. Search the text and filter by level: errors only, warnings and errors, info and above, or everything.

Write logs to standard output; there is no file to configure.

Metrics

The Metrics tab charts the service's CPU, memory, network traffic and disk reads and writes, from the last 15 minutes up to the last 7 days.

For a service with a domain, it also shows its HTTP requests, as the region's edge received them: how many, how many failed with a server error, and latency at p50 and p95. This works for any app, instrumented or not.

Traces

Hangar receives traces in the OpenTelemetry format, the open standard supported by every major language. To send them:

  1. Add the OpenTelemetry SDK for your language, with its automatic instrumentation if there is one.
  2. Deploy. Hangar sets OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_PROTOCOL and OTEL_EXPORTER_OTLP_HEADERS on the service, and OTEL_SERVICE_NAME if you have not set it.

The Traces tab lists traced requests with their duration, and you can filter by operation, such as GET /orders, or by slowness. Opening one shows the whole trace with its spans.

If the service already sets its own exporter variables, Hangar does not add its own, so your telemetry is never sent to two places by surprise.

Alerts

Alert rules live on the Metrics tab. A rule watches one signal over a window of 5, 15 or 60 minutes and fires when it goes above the threshold you set:

SignalMeasuresNeeds
CPUaverage CPU as a share of the service's limit, all replicas togethernothing
Memoryaverage memory as a share of the service's limitnothing
Error rateshare of traced requests that ended in erroran OpenTelemetry SDK and at least 20 requests in the window
p95 latency95th percentile of traced request durationan OpenTelemetry SDK and at least 20 requests in the window

Rules are checked every minute. Alerts go to the notification channels of your organization, set in Settings → Notifications: Slack, Discord, Microsoft Teams, Telegram, Mattermost, email and others, or any URL through a custom webhook. Turn on Service alerts on each channel that should receive them. You are told again when the alert resolves.

How long data is kept

How many days of logs, metrics and traces are kept, and how much telemetry an organization can send in a billing cycle, depend on your plan. Once the monthly amount is reached, new telemetry is dropped until the next cycle; your services keep running normally.

Telemetry is not billed by volume.

Frequently asked questions

Do I need to install an agent to see traces on Hangar?
No. Add an OpenTelemetry SDK to your app and leave the exporter unconfigured. Hangar sets the standard OTEL_EXPORTER_OTLP variables on every service, so the SDK sends traces to the platform with nothing else to set up.
Can I keep sending telemetry to Datadog, Honeycomb or another vendor?
Yes. If a service already sets any OTEL_EXPORTER_OTLP endpoint, headers or protocol variable, Hangar leaves the exporter alone and its telemetry goes where you configured it.

Deploy your app on Hangar

Connect a repository and it is live in minutes.

Start deploying