Deploy OpenTelemetry LGTM with Faro

Deploy and Host the LGTM stack with Opentelemetry and Faro RUM

Deploy OpenTelemetry LGTM with Faro

Just deployed

/data/grafana

Just deployed

/data

/data

OpenTelemetry Collector

jratienza65/otel-lgtm-railway

Just deployed

/data

Deploy and Host OpenTelemetry LGTM with Faro on Railway

OpenTelemetry LGTM with Faro is the full observability stack — Loki, Grafana, Tempo, Prometheus and an OpenTelemetry Collector — with a Grafana Alloy service added in front to receive browser and mobile telemetry. Backend services send OTLP to the collector as usual, while frontends send Faro payloads to Alloy, which normalizes and forwards them through the same pipeline.

About Hosting OpenTelemetry LGTM with Faro

Hosting this stack means running six services: an OpenTelemetry Collector as the ingest hub, an Alloy service dedicated to the Faro protocol, and Loki, Tempo, Prometheus and Grafana behind them. Alloy is needed because the Faro Web SDK posts its own JSON payload that no collector build can accept; it parses that and hands OTLP to the collector, so every signal still passes through one place before reaching storage.

On Railway the backends take volumes, the collector and Alloy get public domains for ingest, and Grafana arrives with datasources, correlation and a frontend dashboard already provisioned.

Common Use Cases

  • OTLP-first observability that also needs browser RUM, without splitting into two stacks
  • Debugging a user-reported frontend error through to the backend trace that caused it
  • Monitoring services and frontends against a single retention and alerting policy
  • Migrating off a hosted observability vendor while keeping both server and browser telemetry

Dependencies for OpenTelemetry LGTM with Faro Hosting

  • OpenTelemetry Collector
  • Grafana Alloy
  • Grafana
  • Prometheus
  • Loki
  • Tempo

Deployment Dependencies

Implementation Details

OpenTelemetry Collector endpoints (internal Railway networking):

RAILWAY_LOKI_ENDPOINT="http://${{Loki.RAILWAY_PRIVATE_DOMAIN}}:3100/otlp"
RAILWAY_TEMPO_ENDPOINT="http://${{Tempo.RAILWAY_PRIVATE_DOMAIN}}:4318"
RAILWAY_PROMETHEUS_ENDPOINT="http://${{Prometheus.RAILWAY_PRIVATE_DOMAIN}}:9090/api/v1/otlp"

The collector's OTLP ingest requires credentials, one user:password line per producer so any single one can be revoked or rotated alone:

RAILWAY_OTEL_HTPASSWD="railway:${{ secret(32) }}"

The Alloy service receives Faro on port 12347 and forwards to the collector with its own credential line. PORT points Railway's health probe at Alloy's own HTTP server:

PORT=12345
FARO_API_KEY="${{ secret(32) }}"
FARO_CORS_ALLOWED_ORIGINS="https://app.example.com,http://localhost:3000"
OTEL_EXPORTER_OTLP_ENDPOINT="http://${{OpenTelemetry Collector.RAILWAY_PRIVATE_DOMAIN}}:4318"
OTEL_UPSTREAM_USERNAME="faro"
OTEL_UPSTREAM_PASSWORD="${{ secret(32) }}"

Grafana auto-wired data sources — the same variable names, but base URLs rather than OTLP paths:

RAILWAY_LOKI_ENDPOINT="http://${{Loki.RAILWAY_PRIVATE_DOMAIN}}:3100"
RAILWAY_TEMPO_ENDPOINT="http://${{Tempo.RAILWAY_PRIVATE_DOMAIN}}:3200"
RAILWAY_PROMETHEUS_ENDPOINT="http://${{Prometheus.RAILWAY_PRIVATE_DOMAIN}}:9090"

Frontend telemetry lands under service.namespace="faro", so it can be given its own retention and is what the bundled Frontend Observability dashboard queries.

Why Deploy OpenTelemetry LGTM with Faro on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying OpenTelemetry LGTM with Faro on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

More templates in this category

View Template
Pyroscope profiling
Protected continuous profiling with durable Pyroscope storage.

Anton Orel
1
View Template
SigOnly
Deploy SigNoz with a working demo app & config in one click

zoeyjones
22
View Template
Unwrapped Spotify Music Stats
Unwrapped Spotify Music Stats, Estatísticas de músicas disponíveis

Jorge Henrique
1